GeoDjango - osm2geojson - IllegalArgumentException: Shell 不是 LinearRing
GeoDjango - osm2geojson - IllegalArgumentException: Shell is not a LinearRing
当我尝试使用 osm2geojson 将 osm json 转换为 geojson 时,Django 抛出 IllegalArgumentException: Shell is not a LinearRing
。
仅当 osm2geoson 试图从关系中创建 MultiPolygon 时才会抛出异常。它 returns 一个地理 json,但没有坐标。
点已正确转换。
我的设置:
MAC OS, IntelliJ, 但该项目 运行 在 conda 环境中。
奇怪的事情:
我的同事正在使用 conda Environment 开展完全相同的项目,安装了相同的软件包并且没有出现任何错误。唯一的区别是他在 Linux 上工作。
不过应该没什么影响吧?!
我们解决了!
我们发现 Shapely 抛出了异常。
然后我们在 Shapely 文档中发现了以下条目。
https://pypi.org/project/Shapely/
来源分布:
pip install shapely --no-binary shapely
在安装没有二进制文件的 shapely 之前,您必须卸载它。
在没有二进制文件的情况下安装 shapely 后,我们抛出了以下错误:
OSError at / dlopen(/usr/local/lib/libgeos_c.so, 6): image not found
missing libgeos_c.so on OSX
...告诉我们重新安装 geos 等
然后我们必须将 geos_library_path 分配给 django.setting。
GEOS_LIBRARY_PATH="/usr/local/Cellar/geos/3.9.1/lib/libgeos_c.dylib"
但是,还是找不到图片。只有在我们将 lib 文件夹复制到 conda lib 文件夹之后。
之后终于成功了!
当我尝试使用 osm2geojson 将 osm json 转换为 geojson 时,Django 抛出 IllegalArgumentException: Shell is not a LinearRing
。
仅当 osm2geoson 试图从关系中创建 MultiPolygon 时才会抛出异常。它 returns 一个地理 json,但没有坐标。
点已正确转换。
我的设置: MAC OS, IntelliJ, 但该项目 运行 在 conda 环境中。
奇怪的事情: 我的同事正在使用 conda Environment 开展完全相同的项目,安装了相同的软件包并且没有出现任何错误。唯一的区别是他在 Linux 上工作。 不过应该没什么影响吧?!
我们解决了!
我们发现 Shapely 抛出了异常。
然后我们在 Shapely 文档中发现了以下条目。 https://pypi.org/project/Shapely/
来源分布:
pip install shapely --no-binary shapely
在安装没有二进制文件的 shapely 之前,您必须卸载它。
在没有二进制文件的情况下安装 shapely 后,我们抛出了以下错误:
OSError at / dlopen(/usr/local/lib/libgeos_c.so, 6): image not found
missing libgeos_c.so on OSX
...告诉我们重新安装 geos 等
然后我们必须将 geos_library_path 分配给 django.setting。
GEOS_LIBRARY_PATH="/usr/local/Cellar/geos/3.9.1/lib/libgeos_c.dylib"
但是,还是找不到图片。只有在我们将 lib 文件夹复制到 conda lib 文件夹之后。
之后终于成功了!