4

我正在使用PostgreSQL,SQLAlchemyGeoAlchemy2库在数据库中存储一些地理空间坐标。

我使用 Python 将数据库中的数据库列定义如下:

import sqlalchemy as sa
import geoalchemy2 as ga
geo = sa.Column(ga.Geography('POINT', srid=4326))  # 4326 = WGS84 Lat Long

我可以通过如下转换来添加地理坐标:

self.geo = 'POINT({} {})'.format(latitude, longitude)

这会将其编码为字符串,例如:0100002076ED....

我的问题是:如何在 python 中将此字符串转换回纬度和经度?

4

1 回答 1

1

选择时,您将其转换为选择表达式的一部分,例如:

select ST_X(some_loc_col::geometry), ST_Y(some_loc_col::geometry) from mytable

使用 SQLAlchemy,您可以直接执行这样的语句,从文本中准备它(参见sqlalchemy.sql.text()),或者使用 SQLAlchemy 和 GeoAlchemy2 中的函数构建表达式。

于 2021-12-11T19:48:58.503 回答