【发布时间】: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