【问题标题】:Postgis longitude, latitude to geometry postgresqlPostgis经度,纬度到几何postgresql
【发布时间】:2013-09-29 10:43:07
【问题描述】:

我正在迁移 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 值,但是当您查询应用程序时不会显示它们。

请问有人知道如何根据经纬度计算几何吗?任何东西

【问题讨论】:

    标签: postgresql google-maps gps postgis


    【解决方案1】:

    首先,几何图形以二进制形式存储,您可以将其视为“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) 为应用程序重新投影数据。

    【讨论】:

      猜你喜欢
      • 2018-09-13
      • 2015-07-08
      • 2019-11-05
      • 1970-01-01
      • 2014-12-03
      • 1970-01-01
      • 1970-01-01
      • 2015-11-13
      • 2012-04-19
      相关资源
      最近更新 更多