Zastosowanie GeoDjango

9

Tworzymy stronę internetową, która wyświetla dane geograficzne na mapie (obecnie za pomocą API Google Maps js). Obecnie używamy postgres + postGIS + php. Zalecono, abym przyjrzał się korzystaniu z GeoDjango. Mam problem z określeniem, jakie dodatkowe funkcje geograficzne zapewnia GeoDjango powyżej tego, co jest już dostępne w postGIS (tj. Punkty, linie, wielokąty, obliczenia odległości, obliczenia powierzchni, logika „wewnątrz” itp.).

Czy GeoDjango zapewnia dodatkową funkcjonalność, czy też zamierza uprościć korzystanie z istniejących funkcji geograficznych?

Dzięki!

geouser
źródło

Odpowiedzi:

11

GeoDjango zapewnia także wiele gotowych funkcji o wartości dodanej.

  • Witryna administratora z włączoną funkcją geoprzestrzenną: Jest to jedna z moich ulubionych funkcji Django w ogóle. Django automatycznie tworzy całkiem ładne strony administracyjne. GeoDjango posuwa się o krok dalej i zapewnia sposób łatwego przeglądania i edytowania danych geoprzestrzennych za pomocą mapy Openlayers.
  • Kanały GeoRSS / GeoAtom: Tworzenie kanałów GeoRSS / GeoAtom jest stosunkowo łatwe.
  • Obsługa KML / GML / GeoJSON: GeoDjango obsługuje serializację KML, GML i GeoJSON. Chociaż jako zastrzeżenie, zrobiłem kilka interfejsów API REST z Django i stwierdziłem, że nie używam do tego wbudowanych funkcji GeoDjango.
  • Biblioteki innych firm: OLWidgets to przykład biblioteki innej firmy dla GeoDjango, która ułatwia tworzenie interaktywnych map. Ponadto masz dostęp do szerokiej gamy bibliotek Python. Na przykład istnieje projekt o nazwie Haystack, który zapewnia funkcję wyszukiwania pełnotekstowego. Jeśli korzystasz z zewnętrznego indeksu wyszukiwania, takiego jak Solr lub Elasticsearch, możesz użyć Django do wyszukiwania geograficznie włączonego wyszukiwania pełnotekstowego. Osobiście Elasticsearch jest doskonałym zamiennikiem PostGIS do wyszukiwania przestrzennego. Nie ma wszystkich funkcji Postgis, ale sprawdza się w większości przypadków użycia.
  • Ułatwia to przemieszczanie się między różnymi bazami danych. Osobiście korzystałem z GeoDjango ze Spatialite i Postgis.

Moja ogólna ocena jest taka, że ​​Django i Python są znacznie lepsze do tworzenia stron internetowych. Wszyscy mamy swoje osobiste nastawienie, ale Python ma duży zbiór bibliotek geoprzestrzennych i numerycznych. To sprawia, że ​​jest to dobry wybór, jeśli chcesz wdrożyć złożone algorytmy geoprzestrzenne.

Shawn H.
źródło
3

tak. tak jest. jego celem jest uproszczenie wykorzystania istniejącej funkcjonalności geograficznej z podstawowymi funkcjami. i zapewnia wiele funkcji geograficznych z niektórymi bazami danych, jak pokazano na poniższym obrazie;

przestrzenny

ponadto nie jest trudno uzyskać bardziej satysfakcjonujący wynik za pomocą jednej funkcji akapitu. ten kod daje ci obiekty w promieniu 5 km.

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

jeśli chcesz uzyskać więcej informacji o geodjango, możesz sprawdzić moją odpowiedź tutaj na ten sam temat.

Mam nadzieję, że Ci to pomoże...

Aragonia
źródło
Chyba potrzebujesz =znaku:qs = Events.objects.filter(point__distance_lte=(pnt, D(km=5)))
Francis Yaconiello