首页 文章

java web应用程序中的地理围栏

提问于
浏览
1

我正在编写与 Geo-fencing 相关的服务器端java应用程序 .

  • 我的商店有纬度,经度和半径

  • 我也有人的当前位置(就纬度和经度而言) .

如果他到达地理围栏内,即在商店的半径范围内,我必须发出警报 . 我用Google搜索解决方案,并且有一些方法可以识别人在栅栏内(圆圈)或栅栏外 .

  • 计算商店纬度,经度和人的当前纬度和经度之间的距离,如果 Distance < radius 那么人就在栅栏外的栅栏内 .

  • 使用 Polygon Geofencing

任何人都可以建议我从上面哪种方法最好 .

提前致谢

4 回答

  • 1

    在你的情况下,只需要半径(即到商店的距离),我肯定会选择半径搜索(你的第一个命题) .

    我认为,Polygon Geofencing正在使用Ray-Casting Algrithm,它迭代多边形的每个部分 . 这将花费更多时间并且可能导致在圆的情况下的一些近似(取决于算法的应用方式) .

  • 0

    我原以为在这里使用的最佳方法是半径距离计算,假设您需要知道距离'as the crow flies'可以这么说 . 所以地理距离而不是旅行距离 . 这将是最高效和最简单的实现 . 示例herehere .

    如果后者是这种情况(我希望你的缘故,它不是't), then I would imagine you would need to use polygon geofencing or perhaps Google' s distance Matrix API .

  • 1

    这取决于您的需求 . 如果你想知道一个人是否在1km半径的商店内,那么你需要一个圆搜索 . 在这里,商店的位置是枢轴 . 您可以根据需要更改半径 .

    当您需要搜索特定区域中的人员时,无论距离任何地方有多远,都会使用多边形搜索 . 巴黎,纽约或伊斯坦布尔地区的人们,不是商店半径1公里范围内的人 .

  • 0

    谢谢你的所有答案 . 在我的项目中,我已经集成了两种方法(多边形和距离) . 如果用户进入多边形,他将收到通知,并且像半径一样 . 我已将多边形坐标和半径存储到我的数据库中 .

相关问题