【发布时间】:2011-11-27 18:11:20
【问题描述】:
Spatialite 能够使用Distance() 函数计算两个几何图形之间的距离。还有其他 functions 可以处理 LINESTRING。但是我不知道它返回的单位是什么。是米吗?如果我有 2 个点,如何在空间查询中计算它们之间的距离?
(作为记录,我使用的是 SRID 4326,即 WSG 86,即旧的传统纬度和经度)。
【问题讨论】:
标签: sqlite gis distance spatialite
Spatialite 能够使用Distance() 函数计算两个几何图形之间的距离。还有其他 functions 可以处理 LINESTRING。但是我不知道它返回的单位是什么。是米吗?如果我有 2 个点,如何在空间查询中计算它们之间的距离?
(作为记录,我使用的是 SRID 4326,即 WSG 86,即旧的传统纬度和经度)。
【问题讨论】:
标签: sqlite gis distance spatialite
ST_Distance()、ST_Length() 和 ST_Area() 返回的单位 正是由相应的 SRID 定义的那个。
因此,如果您使用纬度和经度 (SRID=4326, WGS 84),任何长度都以度为单位,任何面积以 平方度数。
如果您有兴趣提供更传统的 单位(米,平方米),你只需要投影 将您的几何图形转换为一些适当的“平面”CRS(例如 UTM) 使用 ST_Transform()
【讨论】:
在 2.4.4 及更高版本中,有一个函数 PtDistWithin() 返回米以进行距离查询。见文档。 “距离关系的 SQL 函数”部分: http://www.gaia-gis.it/spatialite-2.4.0-4/spatialite-sql-2.4-4.html#p13
【讨论】: