隐藏

js 高德地图 获取2公里内的海量点

发布:2024/3/7 13:29:02作者:管理员 来源:本站 浏览次数:158

要使用JavaScript调用高德地图API来获取2公里范围内的海量点数据,可以按照以下步骤进行操作。


   首先,在HTML文件中引入高德地图的JS API库:


<script src="https://webapi.amap.com/maps?v=1.4.15&key=your_api_key"></script>


其中your_api_key需要替换为自己申请到的高德地图开发者密钥。


   创建一个包含地图容器的div元素,并设置好样式:


<div id="mapContainer" style="width: 800px; height: 600px;"></div>


这将会显示一个大小为800x600像素的地图容器。


   编写JavaScript代码来初始化地图、添加标记等功能:


// 初始化地图对象

var map = new AMap.Map('mapContainer', {

   zoom: 13 // 默认缩放级别

});


// 定义查询参数

var queryParams = {

   keywords: '海量点', // 关键字,根据需求修改

   citylimit: true, // 限制城市边界内检索

   extensions: 'all' // 返回所有信息

};


// 发起POI搜索请求

AMap.plugin(['AMap.PlaceSearch'], function () {

   var placeSearch = new AMap.PlaceSearch();

   

   // 设置搜索结果展示类型为列表

   placeSearch.setDefaultCity("全国");

   placeSearch.search(queryParams);

   

   // 处理搜索结果

   placeSearch.on('complete', function (result) {

       if (result && result.pois) {

           for (var i = 0; i < result.pois.length; i++) {

               var poi = result.pois[i];

               

               // 判断当前位置与目标位置之间的距离是否小于2公里

               var distance = getDistanceBetweenPoints([poi.location.getLng(), poi.location.getLat()], [targetPoint.lng, targetPoint.lat]);

               if (distance <= 2 * 1000) {

                   console.log(poi); // 输出符合条件的海量点信息

               }

           }

       } else {

           console.error('未找到相应的海量点');

       }

   });

});


// 计算两个经纬度之间的直线距离(单位:米)

function getDistanceBetweenPoints(point1, point2) {

   return Math.sqrt((point1[0] - point2[0]) ** 2 + (point1[1] - point2[1]) ** 2);

}


上面的代码通过调用高德地图提供的POI搜索接口,传入指定的关键字和搜索参数,然后根据每个POI的经纬度与目标位置之间的距离进行筛选,最后打印出符合条件的海量点信息。


注意事项:


   your_api_key需要替换成自己申请到的高德地图开发者密钥;


   targetPoint变量需要根据实际情况设置为目标位置的经纬度坐标。