Django,Python:坐标正在从 db 自动转换
Django, Python: coordinates are getting converted automatically from db
早上好,
在我的 django 应用程序中,我有第二个数据库(我只能从中读取,而不是我自己的),它内置于我的 settings.py.
其中一列的点坐标类似于...
POINT (390002.1610814564 6001433.406049595)
从数据库中选择数据时...
try:
with connections['db_second'].cursor() as cursor:
cursor.execute("SELECT * from ...")
row = cursor.fetchall()
except Exception as e:
cursor.close()
...此数据已转换为...
0101000020E964000022936245FEDA1741A4A29D5E0DE85641
有谁知道如何停止这种(自动)转换?或者我是否必须手动将这些数据转换回所需的坐标系?如果是这样:有谁知道这种转换类型是如何调用的?
注:
数据来自postgres-db。
感谢您的帮助,祝您今天愉快!
与您预期的 Well-Known Text (WKT) 相比,这是 Well-Known Binary (WKB) 格式。 Postgis(管理空间数据的 Postgresql 扩展)能够将一种格式转换为另一种格式,因此您可以这样编写查询:
SELECT ST_AsText(geometry) as geometry_wkt
FROM ...
我不知道在 django 中有任何自动执行此操作的方法,但是使用关键字您可以自己找到它。
另请注意,您不必手动编写 SQL 查询,使用 Geo-Django 您可以将 PointField
添加到您的模型并进行类似 django 的查询。看:
https://docs.djangoproject.com/en/3.1/ref/contrib/gis/tutorial/
早上好,
在我的 django 应用程序中,我有第二个数据库(我只能从中读取,而不是我自己的),它内置于我的 settings.py.
其中一列的点坐标类似于...
POINT (390002.1610814564 6001433.406049595)
从数据库中选择数据时...
try:
with connections['db_second'].cursor() as cursor:
cursor.execute("SELECT * from ...")
row = cursor.fetchall()
except Exception as e:
cursor.close()
...此数据已转换为...
0101000020E964000022936245FEDA1741A4A29D5E0DE85641
有谁知道如何停止这种(自动)转换?或者我是否必须手动将这些数据转换回所需的坐标系?如果是这样:有谁知道这种转换类型是如何调用的?
注:
数据来自postgres-db。
感谢您的帮助,祝您今天愉快!
与您预期的 Well-Known Text (WKT) 相比,这是 Well-Known Binary (WKB) 格式。 Postgis(管理空间数据的 Postgresql 扩展)能够将一种格式转换为另一种格式,因此您可以这样编写查询:
SELECT ST_AsText(geometry) as geometry_wkt
FROM ...
我不知道在 django 中有任何自动执行此操作的方法,但是使用关键字您可以自己找到它。
另请注意,您不必手动编写 SQL 查询,使用 Geo-Django 您可以将 PointField
添加到您的模型并进行类似 django 的查询。看:
https://docs.djangoproject.com/en/3.1/ref/contrib/gis/tutorial/