开发 地图 JS API 1.4 教程 地图 地图状态

地图状态 最后更新时间: 2021年01月22日

地图状态包括地图中心点、缩放级别等内容。本章为您介绍设置 / 获取地图状态的常用方法,包括

  1. 设置 / 获取地图中心点和缩放级别的方法
  2. 根据覆盖物范围调整视野
  3. 常用方法列表

设置 / 获取地图中心点和级别 

设置、获取地图中心点(setCentergetCenter):

// 传入经纬度,设置地图中心点
var position = new AMap.LngLat(116, 39);  // 标准写法
// 简写 var position = [116, 39]; 
map.setCenter(position); 
// 获取地图中心点
var currentCenter = map.getCenter(); 

设置、获取地图缩放级别(setZoomgetZoom):

// 设置地图级别,级别为数字。
// 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)等。  

示例


返回顶部 示例中心 常见问题 智能客服 公众号
二维码