postgresql - Postgis 经度、纬度转几何 postgresql

标签 postgresql google-maps gps postgis

我正在迁移 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”

在我正在构建的网络应用程序中,如果我标记点来定位空间,它会在表“location”中插入一个字符串,例如:“0101000020F659000000000020DFB115C00000008053244240”,它看起来类似于字符串I开始使用这些功能。

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

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

最佳答案

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

关于postgresql - Postgis 经度、纬度转几何 postgresql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18977839/

相关文章:

javascript - 什么是javascript mvc/oop结构中的原型(prototype)

ios - 如何获取 GMSPolygon 中的 GMSMarker

postgresql - 抽象 PSQL 写查询

python - Docker 公开容器之间的端口

python - SQLAlchemy 不插入默认值

ionic-framework - switchToLocationSettings()后如何检测gps是否启用?

android - 通过 Android 应用程序即时获取 GPS 位置

django - 创建 dockerfile 以构建新图像

java - 以当前位置为圆心在google map 上画四个圆圈

android - 仅通过 wifi 获取 Android 位置不起作用