地图状态 最后更新时间: 2021年01月22日
地图状态包括地图中心点、缩放级别等内容。本章为您介绍设置 / 获取地图状态的常用方法,包括
- 设置 / 获取地图中心点和缩放级别的方法
- 根据覆盖物范围调整视野
- 常用方法列表
设置 / 获取地图中心点和级别
设置、获取地图中心点(setCenter
、getCenter
):
// 传入经纬度,设置地图中心点
var position = new AMap.LngLat(116, 39); // 标准写法
// 简写 var position = [116, 39];
map.setCenter(position);
// 获取地图中心点
var currentCenter = map.getCenter();
设置、获取地图缩放级别(setZoom
、getZoom
):
// 设置地图级别,级别为数字。
// PC上,参数zoom可设范围:[3,18];
// 移动端:参数zoom可设范围:[3,19]
map.setZoom(13);
// 获取地图级别
var currentZoom = map.getZoom();
同时设置地图中心点和缩放级别(setZoomAndCenter
):
// 同时传入缩放级别和中心点经纬度
map.setZoomAndCenter(14, [116.205467, 39.907761]);
根据覆盖物范围调整视野
地图上覆盖物较多的情况下,如果需要保证所有覆盖物都在视野范围内, 需要将地图调整到合适的缩放等级和中心点,我们可以调用setFitView()
方法,以实现该效果。
// 创建一条折线覆盖物
var path = [
new AMap.LngLat("116.368904","39.913423"),
new AMap.LngLat("116.382122","39.901176"),
new AMap.LngLat("116.387271","39.912501"),
new AMap.LngLat("116.398258","39.904600")
];
var polyline = new AMap.Polyline({
path: path,
borderWeight: 2, // 线条宽度,默认为 1
strokeColor: 'red', // 线条颜色
lineJoin: 'round' // 折线拐点连接处样式
});
map.add(polyline);
// 创建两个点标记
var marker1 = new AMap.Marker({
position: new AMap.LngLat(117.39, 39.9), // 经纬度对象,如 new AMap.LngLat(116.39, 39.9); 也可以是经纬度构成的一维数组[116.39, 39.9]
title: '北京'
});
var marker2 = new AMap.Marker({
position: new AMap.LngLat(118.39, 39.9), // 经纬度对象,如 new AMap.LngLat(116.39, 39.9); 也可以是经纬度构成的一维数组[116.39, 39.9]
title: '北京'
});
map.add(marker1);
map.add(marker2);
// 自动适配到合适视野范围
// 无参数,默认包括所有覆盖物的情况
map.setFitView();
// 传入覆盖物数组,仅包括polyline和marker1的情况
map.setFitView([polyline,marker1]);
更多详情请查看参考手册和示例
常用方法列表
下表所列为常用设置 / 获取地图状态方法,更多详情请查看Map类的全部方法
方法 | 说明 |
---|---|
getZoom( ) | 获取当前地图缩放级别,在PC上,默认取值范围为[3,18];在移动设备上,默认取值范围为[3-19]。3D地图会返回浮点数,2D视图为整数。 |
setZoom(level:Number) | 设置地图显示的缩放级别,在PC上,参数zoom可设范围:[3,18];在移动端:参数zoom可设范围:[3,19]。3D地图下,可将zoom设置为浮点数。 |
getCenter( ) | 获取地图中心点经纬度坐标值。 |
setCenter(position: LngLat) | 设置地图显示的中心点。 |
setZoomAndCenter(zoomLevel:Number,center:LngLat) | 地图缩放至指定级别并以指定点为地图显示中心点。 |
getBounds( ) | 获取当前地图视图范围。3D地图下返回类型为AMap.ArrayBounds,2D地图下仍返回AMap.Bounds 。 |
setBounds(bound:Bounds) | 指定当前地图显示范围,参数bounds为指定的范围。 |
getCity(callback:function(result)) | 获取地图中心点所在区域,回调函数返回对象属性分别对应为{省,市,区/县}。 |
setCity(city:String,callback:Functon) | 按照行政区名称或adcode来设置地图显示的中心点。行政区名称支持中国、省、市、区/县名称,如遇重名的情况,会按城市编码表顺序返回第一个。adcode请在城市编码表中查询。建议不要同时使用center/setCenter()和setCity(),如一起使用程序将以setCity()作为最后结果。 |
panTo(positon:LngLat) | 地图中心点平移至指定点位置。 |
setStatus(status:Object) | 设置当前地图显示状态,包括是否可鼠标拖拽移动地图、地图是否可缩放、地图是否可旋转(rotateEnable)、是否可双击放大地图、是否可以通过键盘控制地图旋转(keyboardEnable)等。 |