Использование GeoDjango

9

Мы создаем веб-сайт, который отображает географические данные на карте (в настоящее время используется Google Maps js API). В настоящее время мы используем postgres + postGIS + php. Было рекомендовано изучить использование GeoDjango. У меня возникают проблемы с определением того, какие дополнительные географические функции GeoDjango предоставляет выше того, что уже доступно в postGIS (то есть точки, линии линий, полигоны, вычисления расстояний, вычисления площади, логика «внутри» и т. Д.).

Предоставляет ли GeoDjango дополнительную функциональность или намерен упростить использование существующих географических функций?

Спасибо!

geouser
источник

Ответы:

11

GeoDjango также предоставляет множество дополнительных функций, готовых к использованию.

  • Административный сайт с географической поддержкой: это одна из моих любимых функций в Django в целом. Django автоматически создает красивые страницы администратора. GeoDjango делает этот шаг дальше и предоставляет вам возможность легко просматривать и редактировать геопространственные данные с помощью карты Openlayers.
  • Каналы GeoRSS / GeoAtom: Создание каналов GeoRSS / GeoAtom относительно простое.
  • Поддержка KML / GML / GeoJSON: GeoDjango поддерживает сериализацию KML, GML и GeoJSON. Хотя в качестве оговорки я сделал несколько REST-API с Django и обнаружил, что я не использую встроенные возможности GeoDjango для этого.
  • Сторонние библиотеки: OLWidgets - это пример сторонней библиотеки для GeoDjango, которая упрощает создание интерактивных карт. Кроме того, у вас есть доступ к широкому спектру библиотек Python. Например, есть проект Haystack, который предоставляет возможность полнотекстового поиска. Если вы используете внешний поисковый индекс, такой как Solr или Elasticsearch, вы можете использовать Django для выполнения полнотекстового поиска с географической поддержкой. Лично Elasticsearch является отличной заменой PostGIS для пространственного поиска. Он не обладает всеми функциями Postgis, но хорошо подходит для большинства случаев использования.
  • Это позволяет легко перемещаться между различными базами данных. Я лично использовал GeoDjango со Spatialite и Postgis.

Моя общая оценка состоит в том, что Django и Python намного лучше для веб-разработки. У всех нас есть свой личный уклон, но у Python есть большая коллекция геопространственных и числовых библиотек. Это делает его хорошим выбором, если вам нужно реализовать сложные геопространственные алгоритмы.

Шон Х
источник
3

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

пространственный

в дополнение к этому, нетрудно получить более удовлетворительный результат с помощью одной функции абзаца. этот код дает вам объекты в радиусе 5 км.

qs = Events.objects.filter(point__distance_lte(pnt, D(km=5)))

Если вы хотите получить больше информации о геоджанго, вы можете проверить мой ответ здесь на ту же тему.

я надеюсь, что это поможет вам ...

Арагон
источник
Мне =qs = Events.objects.filter(point__distance_lte=(pnt, D(km=5)))
кажется