首先,先放一个示例方便大家了解一下使用场景:大疆限飞区查询
这也是我在做新项目中用到的优化方法,不用本地缓存和大带宽一次性请求回所以数据!!
在高德地图中,根据当前可视区进行动态请求并展示数据,一般可以通过以下步骤实现:
- 获取当前可视区范围:使用高德地图的API可以获取当前可视区范围,如通过
getBounds
方法获取当前可视区的经纬度坐标范围。 - 根据可视区范围筛选数据:将需要展示的数据按照地理位置进行筛选,只保留在当前可视区范围内的数据。
- 动态请求数据:根据筛选后的数据范围,使用高德地图的API或其他合适的方式(如调用后端接口)动态请求数据。
- 展示数据:将获取到的数据在地图上进行可视化展示,如添加标记、绘制线段等。
// 初始化地图
var map = new AMap.Map('container', {
zoom: 10, // 初始缩放级别
center: [116.397428, 39.90923] // 初始地图中心点坐标
});
// 获取当前可视区范围
var bounds = this.map.getBounds();
console.log("东北", [bounds.northEast.lng, bounds.northEast.lat]);
console.log("西南", [bounds.southWest.lng, bounds.southWest.lat]);
// 根据可视区范围请求后端接口、筛选数据、处理数据···