【发布时间】:2017-12-01 18:49:14
【问题描述】:
问题:什么算法/或算法s 使用spatial databases 来检查地理点(纬度和经度)是否属于“地理矩形”(4 个由经线和平行线连接的地理点)?
一开始我以为是简单的投影加算法 二维平面索引,类似于 r-tree,但是 那么这些数据库如何处理靠近南极/北极和/或-180和180经度的点。
比如让我们的点是(0, E 180),矩形是(N 1, W 179), (N 1, E 179), (S 1, E 179), (S 1, E 179),
其中 N = 北,E = 东,W = 西,S = 南。
如果将矩形映射到Mercator,那么我们得到:
(-126799830, 5434036),
(139214148, 6832332),
(-126799830, -16488164)
(139214148, -17886459),
我们的观点是 (142452996, -5527064)。
并且在这样的投影点不属于矩形, 虽然它实际上属于。
实际上没有一个投影可以帮助解决这种情况,因为它应该 将地理点映射到几个不同的位置,以处理以下情况 矩形跨越 E 180、W 180、N 90、S 90 以及矩形不跨越这些边界时。
那么空间数据库如何检查地理点是否属于地理矩形?
【问题讨论】:
-
通过投影:proj4.org/faq.html(例如)
-
@wildplasser 但是在这种情况下到底使用了什么样的投影?
标签: algorithm postgresql gis geospatial postgis