我正在使用postGIS,我的客户会向我发送一个地理定位点的lat,lng
。
我将这些点作为GEOMETRY
存储在数据库中的geometry
列中。
现在,我需要客户端接收点,我想知道除了geometry
之外还存储lat
和lng
是否有意义,这样每次我就不必使用postgis函数来计算几何图形中的点,尤其是对于具有点的实体列表。
好吧,这完全取决于应用程序对坐标的处理。如果您不需要对这些点执行任何复杂的操作,那么将它们作为分隔列中的数值就足够了——数字索引非常有效。
但是,使用geometry
或geography
数据类型有什么优点?
-
坐标基于特定的
SRS
,若省略信息,则可以使用几何值(假定为WGS84(对其进行编码。如果你的客户使用的是不寻常的参考系统,那么仅仅看到两个数值是无法知道的。参见ST_SRID
。 -
PostGIS提供了1.3k个非常方便的功能,如
ST_Distance
或ST_DWithin
,并具有高效的spatial index
。 -
通过WFS(Web Feature Services(或WMS(Web Map Service(等OGC标准,使用
GeoServer
等应用程序发布几何图形。 -
轻松地将数据导入GIS,如
QGIS
或ArcGIS。
我认为使用geometry
或geography
数据类型几乎总是最好的选择,但在上述所有功能都不相关的情况下,可以使用数值。在您的情况下,我将坚持使用geometry
数据类型,并使用PostGIS函数提供x,y坐标,就像您现在所做的那样。