GeoDjango слишком много для этого проекта? - PullRequest
3 голосов
/ 24 февраля 2012

В настоящее время я создаю свое первое приложение на основе Django, которое продолжается довольно хорошо, пока. Одна из целей - позволить пользователям публиковать информацию (текст, фото, видео) и чтобы приложение могло автоматически определять место, где они разместили эту информацию (т. е. извлечение информации о местоположении из браузера). Эти данные в идеале иметь возможность отфильтровать позже, например, просмотр сообщений, которые были сделаны в определенный радиус.

Я немного читал о GeoDjango, и это звучит интригующе, если возможно более сложный, чем требования этого проекта. Запрашивающие аспекты кажутся многообещающими.
Однако коллега предложил все, что можно сделать, используя GeoDjango одинаково эффективно использует API Карт Google с JavaScript или JQuery для получения правильных координат.

По сути, я смотрю, какие преимущества предлагает GeoDjango это довольно простой проект, использующий только API Карт Google. Если я уже начал проект в основном Django; включает в себя GeoDjango проблематично? Я все еще пытаюсь освоить основы Джанго и Вступление в GeoDjango может быть слишком много для начинающего разработчика. Или нет.

Любое понимание приветствуется.

1 Ответ

3 голосов
/ 25 февраля 2012

Чтобы точно найти геолокационные посты в пределах заданного радиуса местоположения, вам необходимо рассчитать расстояния между географическими местоположениями. Расчеты не тривиальны. Процитируем Django docs (с незначительной грамматической коррекцией):

Расчеты расстояния с пространственными данными сложны, потому что, к сожалению, Земля не плоская.

К счастью, использование GeoDjango скрывает эту сложность. Дистанционные запросы так же просты, как следующие:

qs = SouthTexasCity.objects.filter(point__distance_lte=(pnt, 7000))

Хотя эту логику можно запрограммировать с помощью JavaScript / JQuery, я не вижу причины для этого, потому что вы уже используете Django. Если только вы:

  1. невозможно использовать пространственную базу данных. Дистанционные запросы GeoDjango доступны только в том случае, если вы используете PostGIS, Oracle или SpatiaLite в качестве базы данных. (т.е. MySQL не поддерживает дистанционные запросы)

  2. невозможно установить геопространственные библиотеки , от которых зависит GeoDjango.

...