【问题标题】:Handling multiple geofence in google map在谷歌地图中处理多个地理围栏
【发布时间】:2013-05-06 18:45:54
【问题描述】:

我在 DB 中定义并存储了大约 100 个地理围栏(多边形)。我的跟踪设备每分钟更新一次位置。检查给定 LatLng 在这些地理围栏中的最佳方法是什么?我想在设备处于这些地理围栏中时触发警报。

我能想到的是,在从跟踪设备接收到位置后的每一分钟,我必须从数据库或数组中查询地理围栏信息并一次比较一个。但这似乎计算成本很高。

任何想法和帮助,请..

【问题讨论】:

  • 感谢您的链接。我可以检查该点是否在选定的多边形中。但这里的问题是我有几个多边形,我不知道我必须检查哪个多边形。因此,要检查所有多边形,这会减慢 javascript。我正在寻找一种有效的方法来做到这一点。

标签: google-maps google-maps-api-3


【解决方案1】:

假设存储的地理围栏是相对静态的(即不经常修改/添加/删除),您可以通过选择使用合适的空间数据结构来表示您的地理围栏来用存储空间换取点查找时间。

例如,R-Trees (https://en.wikipedia.org/wiki/R-tree) 可用于存储哪些地理围栏可能适用于给定的点位置,以便只需要检查这些围栏的子集以确定该点是否位于其中.

实际上,您最好使用已经存在的启用空间的数据库,例如 PostgreSQL+PostGIS (http://postgis.net/),它允许您根据空间关系(在您的应用程序中可能是 ST_Within 或 ST_Contains)有效地发布查询

【讨论】:

    猜你喜欢
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 2013-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-18
    • 1970-01-01
    相关资源
    最近更新 更多