Використання GeoDjango


9

Ми створюємо веб-сайт, який відображає географічні дані на карті (на даний момент використовує API Карт Google js). Зараз ми використовуємо postgres + postGIS + php. Рекомендували вивчити використання GeoDjango. У мене виникають проблеми з визначенням додаткової географічної функціональності GeoDjango, що є вище, ніж це доступно в postGIS (тобто точки, рядки, полігони, обчислення відстані, обчислення площі, логіка тощо).

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

Дякую!

Відповіді:


11

GeoDjango також пропонує безліч функцій із доданою вартістю, що випускаються поза коробкою.

  • Сайт адміністратора, що підтримується геопатією: Це одна з моїх улюблених особливостей Джанго загалом. 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)))

якщо ви хочете отримати більше інформації про geodjango, ви можете ознайомитись з моєю відповіддю на цю тему.

я сподіваюся, що це допоможе тобі ...


Мені потрібен =знак:qs = Events.objects.filter(point__distance_lte=(pnt, D(km=5)))
Френсіс Яконіелло
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.