地图状态包括地图中心点、缩放级别等内容。本章为您介绍设置 / 获取地图状态的常用方法,包括
设置、获取地图中心点(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)等。 |