GeoDjango - osm2geojson - IllegalArgumentException: Shell is not a LinearRing

Django выбрасывает IllegalArgumentException: Shell is not a LinearRing, когда я пытаюсь преобразовать osm json в geojson с помощью osm2geojson. Исключение возникает только тогда, когда osm2geoson пытается создать MultiPolygon из отношения. Он возвращает geojson, но без координат. Точки преобразуются правильно.

Мы решили это!

Мы выяснили, что 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

отсутствует libgeos_c.so на OSX

... сказал нам переустановить geos и т.д.

Затем нам нужно было назначить geos_library_path в django.setting.

GEOS_LIBRARY_PATH="/usr/local/Cellar/geos/3.9.1/lib/libgeos_c.dylib"

Однако изображение так и не было найдено. Только после того, как мы скопировали папку lib в папку conda lib.

После этого все заработало!

Вернуться на верх