設(shè)置縮放的方法
臨洮ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!
mBaiduMap.setMapStatus(MapStatusUpdateFactory.newMapStatus(new MapStatus.Builder().zoom(15).build()));
//設(shè)置縮放級別
或者是
float zoomLevel = Float.parseFloat(t.getText().toString());
MapStatusUpdate u = MapStatusUpdateFactory.zoomTo(zoomLevel);
mBaiduMap.animateMapStatus(u);
以上是百度的示例程序BaiduMapsApiDemo(在百度LBS開放平臺-》android SDK有下載)中,MapControlDemo.java中的一段,用來設(shè)置地圖縮放比例的
直接給你一個類,直接套用就好了
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.awt.image.ColorModel;
import java.awt.image.WritableRaster;
import java.io.File;
import javax.imageio.ImageIO;
public class Resize {
BufferedImage bufImage;
int width;
int height;
public Resize() {
// TODO Auto-generated constructor stub
}
public Resize(String srcPath,int width,int height) {
this.width = width;
this.height = height;
try{
this.bufImage = ImageIO.read(new File(srcPath));
}catch(Exception e){
e.printStackTrace();
}
}
public static BufferedImage rize(BufferedImage srcBufImage,int width,int height){
BufferedImage bufTarget = null;
double sx = (double) width / srcBufImage.getWidth();
double sy = (double) height / srcBufImage.getHeight();
int type = srcBufImage.getType();
if(type == BufferedImage.TYPE_CUSTOM){
ColorModel cm = srcBufImage.getColorModel();
WritableRaster raster = cm.createCompatibleWritableRaster(width,
height);
boolean alphaPremultiplied = cm.isAlphaPremultiplied();
bufTarget = new BufferedImage(cm, raster, alphaPremultiplied, null);
}else
bufTarget = new BufferedImage(width, height, type);
Graphics2D g = bufTarget.createGraphics();
g.setRenderingHint(RenderingHints.KEY_RENDERING,
RenderingHints.VALUE_RENDER_QUALITY);
g.drawRenderedImage(srcBufImage, AffineTransform.getScaleInstance(sx, sy));
g.dispose();
return bufTarget;
}
}
把下面的代碼加到您最后面的javascript里
var navigationControl = new BMap.NavigationControl({
// 靠左上角位置
anchor: BMAP_ANCHOR_TOP_LEFT,
// LARGE類型
type: BMAP_NAVIGATION_CONTROL_LARGE,
// 啟用顯示定位
enableGeolocation: true
});
map.addControl(navigationControl);
// 添加定位控件
var geolocationControl = new BMap.GeolocationControl();
geolocationControl.addEventListener("locationSuccess", function(e){
// 定位成功事件
var address = '';
address += e.addressComponent.province;
address += e.addressComponent.city;
address += e.addressComponent.district;
address += e.addressComponent.street;
address += e.addressComponent.streetNumber;
alert("當前定位地址為:" + address);
});
geolocationControl.addEventListener("locationError",function(e){
// 定位失敗事件
alert(e.message);
});
map.addControl(geolocationControl);
此代碼時控制地圖縮放的代碼
雙擊事件發(fā)生時,計算鼠標位置。然后根據(jù)當前地圖左上頂點和地圖比例計算目標地點。
然后發(fā)送異步請求到服務(wù)器,服務(wù)器根據(jù)目標地點的左邊計算更精確地圖的左上角的頂點,然后取地圖的一部分發(fā)送過來。
異步請求的回調(diào)函數(shù)收取到服務(wù)器返回的圖片后,更新地圖。
放大圖像不會導致失真,而縮小圖像將不可避免的失真。
Java中也同樣是這樣。
但java提供了4個縮放的微調(diào)選項。
image.SCALE_SMOOTH //平滑優(yōu)先
image.SCALE_FAST//速度優(yōu)先
image.SCALE_AREA_AVERAGING //區(qū)域均值
image.SCALE_REPLICATE //像素復(fù)制型縮放
image.SCALE_DEFAULT //默認縮放模式
調(diào)用方法
Image new_img=old_img.getScaledInstance(1024, 768, Image.SCALE_SMOOTH);
得到一張縮放后的新圖。