任意多边形的地理围栏

原创
2015/06/02 22:23
阅读数 396

百度地图和高德地图支持的地理围栏都是一个圆,通过指定一个中心和半径来定义地理围栏。但是很多时候,我们需要一个多边形,而不是圆形。比如一个园区,它肯定可以用多边形表示,但圆形可能误差就太大了。

先看看效果图,首先我们选择一些顶点来定义一个多边形。下面是选定五个顶点后的效果:

第六个顶点选定为起点。这样就确定了一个多边形区域。

这里通过点击模拟一个GPS经纬度。首先点击外围,通过判断经纬度是不是在多边形内确定是否已经进入围栏。首先模拟没有进入围栏。

再模拟进入围栏。

构建一个多边形地理围栏,需要注意两点:

  1. 在构建封闭多边形时,最后的顶点和起点需要容忍一定的误差。因为在地图上,几乎不可能点击到同一个经纬度两次。一个解决办法,就是将以起点为中心,半径为N(例如50)像素内的点击看做终点。

  2. 如何判断一个点在多边形内。经典的算法是射线法。射线法的原理很简单,如果在多边形内,那么由点出发的射线一定会与多边形有奇数个重合点。经典的实现参考http://alienryderflex.com/polygon/。


展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
2 收藏
0
分享
返回顶部
顶部