高德地图 JS API 的地图状态

高德地图 JS API 的地图状态

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

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

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

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

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

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

JavaScript
// 设置地图级别,级别为数字。
// PC上,参数zoom可设范围:[3,18];
// 移动端:参数zoom可设范围:[3,19]
map.setZoom(13); 
// 获取地图级别
var currentZoom = map.getZoom(); 

同时设置地图中心点和缩放级别(setZoomAndCenter):

JavaScript
// 同时传入缩放级别和中心点经纬度
map.setZoomAndCenter(14, [116.205467, 39.907761]);

地图上覆盖物较多的情况下,如果需要保证所有覆盖物都在视野范围内, 需要将地图调整到合适的缩放等级和中心点,我们可以调用setFitView()

方法,以实现该效果。

JavaScript
// 创建一条折线覆盖物
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)等。  示例
0 0 投票数
文章评分
订阅评论
提醒
0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x