我正在编写与地理围栏相关的服务器端Java应用程序。
如果他到达地理围栏内,即在商店的半径范围内,我必须发出警报。我用Google搜索解决方案&有一些识别人的方法是在围栏内(圆圈)或围栏外。
Distance < radius
,那么人就在篱笆外面的栅栏内。任何人都可以建议我从上面采用哪种方法。
提前致谢
答案 0 :(得分:1)
这取决于您的需求。如果你想知道一个人是否在商店半径1公里范围内,那么你需要一个圆圈搜索。这里,商店的位置是枢轴。您可以根据需要更改半径。
当您需要搜索特定区域的人时,无论距离任何地方的距离多远,都会使用多边形搜索。巴黎,纽约或伊斯坦布尔地区的人们,而不是商店半径1公里范围内的人。
答案 1 :(得分:1)
在你的情况下,只需要半径(即到商店的距离),我肯定会选择半径搜索(你的第一个命题)。
我认为,Polygon Geofencing正在使用Ray-Casting Algrithm迭代多边形的每个片段。这将花费更多时间,并且可能导致在圆圈的情况下进行一些近似(取决于算法的应用方式)。
答案 2 :(得分:0)
我原本以为在这里使用的最佳方法是半径距离计算,假设您需要知道距离'如乌鸦飞'可以这么说。所以地理距离而不是旅行距离。这将是最高效和最简单的实现。可用示例here和here。
如果后者是这种情况(我希望它不是这样),那么我想你需要使用多边形地理围栏或Google distance Matrix API。
答案 3 :(得分:0)
感谢您的所有答案。在我的项目中,我已经集成了两种方法(Polygon&amp; Distance)。如果用户进入多边形,他将收到通知,并且像半径一样。我已将多边形坐标和半径存储到我的数据库中。