2

我正在迁移 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 应用程序中,如果我标记该点以定位空间,它会在表“位置”中插入一个字符串,如:"0101000020F659000000000020DFB115C00000008053244240"它看起来类似于我使用这些函数获得的字符串。

问题是我无法定位每个空间,因为空间太多,所以我需要大规模迁移,并且使用这些函数来计算几何列是行不通的。因为好的,这些函数会计算一个 geom 值,但是当您查询应用程序时不会显示它们。

请问有谁知道如何根据经纬度计算几何吗?任何事物

4

1 回答 1

2

首先,几何图形以二进制形式存储,您可以将其视为“0101000020...”,这称为众所周知的二进制 (WKB)ST_X(point)对于 POINT 几何,您可以使用经度和ST_Y(point)纬度提取坐标序数。您还可以使用ST_AsText(point)人类可读的 WKT 表示。

EPSG:23030是一个投影空间参考系统 (SRS),具有以米为单位的东向和北向。但如果您的坐标数据是经纬度,则需要使用不同的 SRS,例如EPSG:4326。正确存储后,可以使用ST_Transform(point, 23030).

于 2013-09-25T00:43:43.177 回答