高德地图和百度地图判断一个点是否在一个区域内

本文介绍如何使用高德地图和百度地图的API来判断一个点是否位于特定的地理区域内,包括圆形和多边形。高德地图通过Circle对象的contains()方法实现,而百度地图则利用GeoUtils.js库提供的isPointInPolygon方法完成。
高德地图:

通过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。

  1. 在index.html中引入GeoUtils.js。
<script src="./static/js/libs/bdmap/GeoUtils.js"></script>
  1. 在webpack.base.config.js中将BMapLib添加到externals中:
externals: {
  "BMapLib": "BMapLib"
}
  1. 在组件中使用:
if (BMapLib.GeoUtils.isPointInPolygon(point, polygon)) {
    alert("在多边形内")
}else{
	alert("不在多边形内")
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值