【问题标题】:PostgreSQL performance on polygon vs circle geofence lookupPostgreSQL 在多边形与圆形地理围栏查找上的性能
【发布时间】:2015-03-23 14:15:00
【问题描述】:

我必须使用 Postgres 并且对 SQL 数据库相当陌生。我必须实现一个地理围栏数据库,该数据库存储围栏的所有点,无论是多边形还是圆形。我发现 Postgres 有一个几何函数叫做 circle(polygon) http://www.postgresql.org/docs/8.3/interactive/functions-geometry.html

问题1)因为从逻辑上看,如果一个点在一组多边形类型的地理围栏内,与圆形相比,查找一个点的计算量似乎更大。是否有一个额外的列更好地预先计​​算出这些多边形的边界圆。有什么建议 ?

还可以随意提出有关制作地理围栏数据库的任何建议,例如是否需要使用 POSTGIS。

【问题讨论】:

  • 你用的是8.3-manual,你确定是这个版本吗?它很旧且不受支持。帮个忙,使用最新版本的 PostgreSQL。
  • 性能取决于太多因素,例如行数、索引的存在、空间运算符的类型、几何的复杂性等。
  • 就个人而言,我会使用 PostGIS。许多函数(如 st_contains)会自动计算多边形的边界框以加快查询性能,因此您无需担心。

标签: postgresql indexing polygon postgis geofencing


【解决方案1】:

一个圆不能只包含一个多边形。考虑两个相邻的多边形包围在一个圆圈中 - 两个圆圈会重叠,从而在重叠区域中产生歧义。

【讨论】:

    猜你喜欢
    • 2013-08-31
    • 2014-07-10
    • 1970-01-01
    • 2015-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多