我正在迁移PostGIS系统中的所有信息,其中包含有关数千个运动空间的完整信息。对于所有这些空间,我得到纬度和经度值,而PostGis需要一个几何值,此列已经在我的表“位置”中。
该应用程序的SRID为23030。
我一直在寻找如何从经度和纬度计算几何值,我发现:
update location set point=ST_GeomFromText('POINT('|| longitud || ' ' || latitud ||')',23030);
UPDATE georrepositorio.geometria SET point = ST_SetSRID(ST_Point( longitud, latitud),23030);
UPDATE georrepositorio.geometria SET POINT = ST_SetSRID(ST_MakePoint(longitud,latitud),23030);
我总是得到一个字符串:"0101000020F6590000894327550B97114104EA99EA599D4E41"
在我正在构建的Web应用程序中,如果我标记要找到空间的点,它会在表“location”中插入一个类似于"0101000020F659000000000020DFB115C00000008053244240"
的字符串,它看起来类似于我使用这些函数获得的字符串。
问题是我无法找到每个空间,因为有太多,所以我需要大量迁移,并使用这些函数来计算几何列不起作用。因为确定,这些函数会计算一个geom值,但是当你查询应用程序时没有显示它们。
有人知道如何从纬度和经度计算几何学吗?任何
答案 0 :(得分:2)
首先,几何图形存储为二进制文件,您可以将其视为" 0101000020 ...",称为well-known binary (WKB)。对于POINT几何,您可以使用经度ST_X(point)
和纬度ST_Y(point)
提取坐标序数。您还可以使用ST_AsText(point)
进行人类可读的WKT表示。
EPSG:23030是一个投影空间参考系统(SRS),东边和北边以米为单位。但是,如果您的坐标数据是纬度和经度,则需要使用不同的SRS,例如EPSG:4326。正确存储后,可以使用ST_Transform(point, 23030)
为应用程序重新投影数据。