【问题标题】:Geo-fencing in java web applicationjava web应用程序中的地理围栏
【发布时间】:2014-02-12 18:31:39
【问题描述】:

我正在编写一个与 地理围栏 相关的服务器端 Java 应用程序。

  • 我有一家商店,上面有他们的纬度、经度和半径
  • 我还有人的当前位置(以纬度和经度表示)。

如果他到达地理围栏内,即在商店的半径内,我必须发出警报。我用谷歌搜索了解决方案,有一些方法可以识别人是在栅栏内(圆圈)还是在栅栏外。

  1. 计算商店经纬度与人当前经纬度之间的距离,如果Distance < radius 则人在围栏内,否则人在围栏外。
  2. 使用多边形地理围栏

谁能建议我从上面哪种方法最好。

提前致谢

【问题讨论】:

    标签: java web-services google-maps geofencing


    【解决方案1】:

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

    当您需要搜索特定区域中的人员时使用多边形搜索,无论该区域与任何地方相距多远。巴黎、纽约或伊斯坦布尔地区的人,而不是商店 1 公里半径内的人。

    【讨论】:

      【解决方案2】:

      在您的情况下,只需要半径(即到商店的距离),我肯定会选择半径搜索(您的第一个提议)。

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

      【讨论】:

        【解决方案3】:

        我原以为在这里使用的最佳方法是计算半径距离,假设您需要知道“乌鸦飞翔”的距离。所以地理距离而不是旅行距离。这将是最高效且最容易实现的。示例可用herehere

        如果是后者(我希望不是为了你),那么我想你可能需要使用多边形地理围栏或者谷歌的distance Matrix API

        【讨论】:

          【解决方案4】:

          感谢您的所有回答。在我的项目中,我集成了两种方法(多边形和距离)。如果用户进入多边形,他会收到一条通知,类似半径。我已将多边形坐标和半径存储到我的数据库中。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2018-05-17
            • 2017-06-18
            • 1970-01-01
            • 1970-01-01
            • 2014-07-25
            • 1970-01-01
            • 1970-01-01
            • 2016-09-30
            相关资源
            最近更新 更多