ГИС-приложение с картами Django и Google с помощью mongodb - PullRequest
5 голосов
/ 16 января 2012

Я занимаюсь разработкой ГИС-приложения с использованием API карт Google. В настоящее время я использую Postgis db.

Я думаю о переходе на mongodb, и у меня есть следующие вопросы по этому поводу,

  1. Является ли mongodb жизнеспособным выбором для хранения данных ГИС. (Любой другой движок NoSQL жизнеспособен?)

  2. Изменил ли django-nonrel модуль django.contrib.gis для поддержки mongodb? и насколько хорошо это работает?

Заранее спасибо:)

Ответы [ 3 ]

5 голосов
/ 16 января 2012

Как заявил Серхио Туленцев, MongoDB имеет пространственные индексы.Но не все типы геометрии могут быть сохранены.Насколько я знаю, в настоящее время могут быть сохранены только точки.Однако вы можете делать запросы, используя многоугольник.

Поскольку MongoDB очень гибок, вы можете хранить геометрию как текст, но также как объект JSON.Например, вы можете сохранить координату, например: {lon: 52.1234, lat: 14.1245}.Вы можете интерпретировать это в своем собственном приложении так, как вам нравится.

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

Есть CouchDB, который имеет дополнение GeoSpatial.Не знаю, как это работает / что поддерживает.

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

4 голосов
/ 16 января 2012

Разработчик Django MongoDB Engine здесь.

Мы не получили никакой реальной поддержки ГИС-функций MongoDB.Тем не менее, можно выполнять геопространственные запросы, «работая вокруг Джанго» (см. http://django -mongodb.org / themes / lowerlevel.html - первый пример на самом деле касается гео-индексов).

Однако должно быть возможно реализовать встроенную поддержку Django GIS в бэкэнд MongoDB.Мы действительно рады наставлять любого, кто хочет выполнить эту задачу!

3 голосов
/ 16 января 2012

Я работал с MongoDb, сохраняя точки интереса в БД, затем делал точки в поли-запросах вместе с радиус-запросами, и Mongo был на порядок выше, чем PostGres. У меня было гораздо более быстрое время отклика с сотнями тысяч предметов.

Однако я бы сказал, что в зависимости от сложности ваших запросов (например, если вы делаете что-то за пределами точки в поли, радиуса вокруг точки), вам может потребоваться более тяжелая база данных GIS, такая как postgres ... вы просто собираетесь чтобы получить дополнительный вес postgres.

Извините, я не могу говорить ни о чем и о Джанго.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...