地图状态 |
您所在的位置:网站首页 › 高德地图关闭通知中心 › 地图状态 |
本文介绍设置、获取地图状态的常用方法,包括: 地图中心点和缩放级别根据覆盖物范围调整视野1、设置、获取地图中心点和级别 1.1 设置地图中心点setCenter()var position = new AMap.LngLat(116.681212,39.852698); //传入经纬度 //var position = [116.681212,39.852698]; //另一种写法 map.setCenter(position); //简写 设置地图中心点 //map.setCenter(position, false, 2000); //另一种写法setCenter(center, immediately, duration)方法有默认开启过渡动画效果,如果你想关闭动画或对动画有自定义需求,可以使用下面的参数: center:地图中心点的位置坐标。 immediately:是否立即跳转到目标位置(设置为true,表示会立即跳转。为false时,则是在一段时间内平滑过渡到目标位置)。 duration:动画过渡时长,单位是毫秒(ms),这个参数可以用来控制动画过渡的速度(当immediately参数为false时,此参数才生效)。 1.2 获取地图中心点getCenter()var map = new AMap.Map("container", { center: [116.397686, 39.909154], //地图中心点 }); var currentCenter = map.getCenter().toJSON(); //获取地图中心点 console.log(currentCenter); //输出[116.397686, 39.909154]注意getCenter()方法获取的是地图的实时中心点数据。由于setCenter()方法具有默认的过渡效果,因此如果在调用setCenter()方法后立即使用getCenter()方法来获取地图的中心点数据,可能不会得到预期的结果,因为地图可能还在进行中心点的过渡动画。为了解决这个问题,可以通过监听地图的moveend事件来获取地图中心点数据,这样就可以确保在地图中心点真正改变后再获取其数据。 var position = new AMap.LngLat(116.681212,39.852698); //传入经纬度 map.setCenter(position); //设置地图中心点 map.on("moveend", function () { var currentCenter = map.getCenter().toJSON(); //获取地图中心点 console.log(currentCenter); //输出[116.681212,39.852698] });1.3 设置地图缩放级别setZoom()//设置地图缩放级别,级别为数字。 map.setZoom(13); //参数 zoom 可设范围:[2 , 20]; //map.setZoom(13, false, 2000); //另一种写法setZoom(zoom, immediately, duration)方法有默认开启过渡动画效果,如果你想关闭动画或对动画有自定义需求,可以使用下面的参数: zoom:地图的缩放级别。 immediately:是否立即跳转到目标级别(设置为true,表示会立即跳转。为false时,则是在一段时间内平滑过渡到目标级别)。 duration:动画过渡时长,单位是毫秒(ms),这个参数可以用来控制动画过渡的速度(当immediately为false时,此参数才生效)。 1.4 获取地图缩放级别getZoom()var map = new AMap.Map("container", { zoom: 11, //地图级别 }); var currentZoom = map.getZoom(); //获取地图级别 console.log(currentZoom); //输出11注意getZoom()方法获取的是地图的实时级别数据。由于getZoom()方法具有默认的过渡效果,因此如果在调用setZoom()方法后立即使用getZoom()方法来获取地图的级别,可能不会得到预期的结果,因为地图可能还在进行缩放的过渡动画。为了解决这个问题,可以通过监听地图的zoomend事件来获取地图级别数据,这样就可以确保在地图缩放级别真正改变后再获取其数据。 map.setZoom(13); //设置地图级别 map.on("zoomend", function () { var currentZoom = map.getZoom(); //获取地图级别 console.log(currentZoom); //输出13 });1.5 同时设置地图中心点和缩放级别setZoomAndCenter()//同时传入缩放级别和中心点经纬度 map.setZoomAndCenter(14, [116.205467, 39.907761]); //map.setZoomAndCenter(14, [116.205467, 39.907761], false, 2000); //另一种写法setZoomAndCenter(zoom, center, immediately, duration)方法有默认开启过渡动画效果,如果你想关闭动画或对动画有自定义需求,可以使用下面的参数: zoom:地图的缩放级别。 center:地图中心点的位置坐标。 immediately:是否立即跳转到目标级别和中心点坐标(设置为true,表示会立即跳转。为false时,则是在一段时间内平滑过渡到目标级别和中心点坐标)。 duration:动画过渡时长,单位是毫秒(ms),这个参数可以用来控制动画过渡的速度(当immediately为false时,此参数才生效)。 相关示例 2、根据覆盖物范围调整视野根据地图上覆盖物分布情况,使用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), //经纬度对象 }); var marker2 = new AMap.Marker({ position: new AMap.LngLat(118.39, 39.9), }); map.add(marker1); map.add(marker2); //自动适配到合适视野范围 //无参数,默认包括所有覆盖物的情况 map.setFitView(); //传入覆盖物数组,仅包括 polyline 和 marker1 在地图视野范围,marker2 不在地图视野范围 map.setFitView([polyline, marker1]); //简写 //map.setFitView([polyline, marker1], false, [60, 60, 60, 60], 12); //完整写法setFitView(overlays, immediately, avoid, maxZoom)方法接收4个参数,参数均可缺省。 overlays:地图视野上展示的覆盖物。 immediately:是否需要动画过程。 avoid:上下左右的像素避让宽度。 maxZoom:地图的最大缩放级别。 查看AMap.Map全部参数 3、本章涉及的属性及方法说明3.1 AMap.Map参数/方法 说明 类型 map.setCenter() 该方法传入参数时调用,为设置地图的中心点,忽略参数调用时返回值为当前地图的中心点信息 Function map.getZoom() 该方法传入参数时调用,为设置地图的缩放级别,忽略参数调用时返回值为当前地图的缩放级别 Function map.setZoomAndCenter() 地图缩放至指定级别并以指定点为地图显示中心点 Function map.setFitView() 根据地图上添加的覆盖物分布情况,自动缩放地图到合适的视野级别,忽略参数时默认包括所有覆盖物 Function 查看所有AMap.Map属性和方法 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |