Ошибка «Инициализация геометрии из ввода JSON требует GDAL»

#json #django #leaflet #geojson #gdal

#json #django #листовка #geojson #gdal

Вопрос:

Я делаю проект Django и хочу сохранить полигоны, которые представляют интересующие области на карте. Я пытаюсь использовать django-leaflet и django-geojson. Моделью для фигур является:

 #models.py
...
from django.contrib.gis.db import models as gismodels
...
class MushroomShape(gismodels.Model):
    name = models.CharField(max_length=256)
    geom = gismodels.PolygonField()
    objects = gismodels.GeoManager()
    def __unicode__(self):
        return self.name
    def __str__(self):
        return self.name
 

Я пытаюсь создать многоугольные фигуры в администраторе, используя виджет листовки, для добавления в базу данных:

 #admin.py
...
from leaflet.admin import LeafletGeoAdmin
from .models import MushroomShape
...
admin.site.register(MushroomShape, LeafletGeoAdmin)
 

Запуск сервера на моем компьютере, когда я рисую многоугольник в форме администратора и пытаюсь его отправить:
Клиентская сторона сообщает «Недопустимое значение геометрии». а серверная сторона сообщает:

Ошибка при создании геометрии из значения ‘{«type»:»Polygon»,»coordinates»:[[[-87.58575439453125,41.83375828633243],[-87.58575439453125,42.002366213375524],[-86.74942016601562,42.002366213375524],[-86.74942016601562,41.83375828633243],[-87.58575439453125,41.83375828633243]]]}’ ( Инициализация геометрии из входных данных JSON требуется GDAL.)

Небольшой толчок, помогающий понять, где я должен искать, чтобы решить эту ошибку, был бы действительно потрясающим.

Ответ №1:

Извините, если это плохой этикет (публикация ответа на мой вопрос вместо удаления), но я нашел свой ответ на официальной странице Django для библиотек geo:

https://docs.djangoproject.com/el/1.10/ref/contrib/gis/install/geolibs/

Я не знал, что GDAL необходим для некоторых функций geojson, которые я пытался использовать для работы. Я следовал их инструкциям и установил его с помощью

 sudo apt-get install binutils libproj-dev gdal-bin
 

и моя ошибка исчезла.