问题描述
我正在使用geodjango并按以下方式加载shapefile:
datasource = DataSource("/path/to/shape.shp")
for each in datasource[0]:
geo = each.geom
geo.transform(4326)
我在这里要做的是将几何转换为4326,以便可以将其记录在使用此SRID的数据库中。但是,发生了一件相当奇怪的事情。当我在本地运行此命令(使用GDAL 2.4.0,Django 3.0.6)时,此方法运行良好。这是经过变换的多边形的示例。
输入:
POLYGON((141192.63413501 167690.231242441,141198.39365501 167695.515882441 ...
然后将其转换为:
POLYGON((4.24376514198078 50.8195815928706,4.24384675060931 50.819629186136 ...
这很好。但是,当它在生产环境中运行(GDAL 3.0.4,Django 3.0.3)时,这将以非常奇怪的方式失败。没有错误消息,transform()函数完成了它的工作……但它会颠倒纬度和经度!所以我的输出变成:
POLYGON((50.8195818670687 4.24376485512428,50.8196294603646 4.24384646375124 ...
我无法理解为什么会这样...?!一切似乎都很好,请期待这种非常奇怪的经/纬度交换。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)