【发布时间】:2015-08-29 16:45:47
【问题描述】:
我在将 SRID 4326 坐标从地理编码器转换为 SRID 3857 以便存储在我的 postgres-postgis 数据库中时遇到了困难。我正在使用以下代码来测试 SRID 之间的转换:
from django.contrib.gis.gdal import SpatialReference, CoordTransform
from django.contrib.gis.geos import Point
gcoord = SpatialReference(4326)
mycoord = SpatialReference(3857)
trans = CoordTransform(gcoord, mycoord)
pnt = Point(47.61, -122.33, srid=4326)
print 'x: %s; y: %s; srid: %s' % (pnt.x, pnt.y, pnt.srid)
x:47.61;是:-122.33; srid: 4326
pnt.transform(trans)
print 'x: %s; y: %s; srid: %s' % (pnt.x, pnt.y, pnt.srid)
django.contrib.gis.gdal.error.GDALException: OGR 失败。
在 Django 中,我收到更有用的错误消息:
转换:无法投影点 (47.61 -122.33 0):纬度或经度超出限制 (-14)
我已经进行了一些初步测试,并确定 0-90 之外的纬度/经度坐标会触发这种情况。将 Django 中的 Point 字段设置为 srid=4326 并迁移数据库仍会导致 Point 转换为 SRID 3857。
【问题讨论】:
标签: django python-2.7