高德地图:
通过contains()方法。
var lnglat = new AMap.LngLat(116.39,39.9);
var circle = new AMap.Circle({
center: new AMap.LngLat(116.39,39.6),
radius: 200, //半径
zIndex: 50,
})
var isContain=circle.contains(lnglat);
if(isContain){
alert("在圆内")
}else{
alert("不在圆内")
}
百度地图:
百度地图的BMapLib是基础类,另外提供了多个lib库,快速实现在地图上添加Marker、自定义信息窗口、标注相关开发、鼠标绘制工具等功能。每个功能对应的库需要自己按需单独引用进来。
百度地图JavaScript开源库,是一套基于百度地图API二次开发的开源的代码库。目前提供多个lib库。
GeoUtils.js提供若干几何算法,用来帮助用户判断点与矩形、 圆形、多边形线、多边形面的关系,并提供计算折线长度和多边形的面积的公式。 主入口类是GeoUtils。
- 在index.html中引入GeoUtils.js。
<script src="./static/js/libs/bdmap/GeoUtils.js"></script>
- 在webpack.base.config.js中将BMapLib添加到externals中:
externals: {
"BMapLib": "BMapLib"
}
- 在组件中使用:
if (BMapLib.GeoUtils.isPointInPolygon(point, polygon)) {
alert("在多边形内")
}else{
alert("不在多边形内")
}
本文介绍如何使用高德地图和百度地图的API来判断一个点是否位于特定的地理区域内,包括圆形和多边形。高德地图通过Circle对象的contains()方法实现,而百度地图则利用GeoUtils.js库提供的isPointInPolygon方法完成。
6140

被折叠的 条评论
为什么被折叠?



