Penggunaan GeoDjango

9

Kami membuat situs web yang menampilkan data geografis di peta (saat ini menggunakan Google Maps js API). Kami saat ini menggunakan postgres + postGIS + php. Direkomendasikan agar saya melihat penggunaan GeoDjango. Saya mengalami kesulitan menentukan fungsi geografis tambahan apa yang GeoDjango sediakan di atas apa yang sudah tersedia di postGIS (yaitu titik, linestrings, poligon, perhitungan jarak, perhitungan area, "dalam" logika dll).

Apakah GeoDjango menyediakan fungsionalitas tambahan atau maksudnya untuk menyederhanakan penggunaan fungsionalitas geografis yang ada?

Terima kasih!

geouser
sumber

Jawaban:

11

GeoDjango juga menyediakan banyak fitur bernilai tambah, out-of-the-box.

  • Situs admin yang diaktifkan secara geospasial: Ini adalah salah satu fitur favorit saya dari Django secara umum. Django secara otomatis membuat halaman admin yang cukup bagus. GeoDjango mengambil langkah ini lebih jauh dan memberi Anda cara untuk dengan mudah melihat dan mengedit data geospasial menggunakan peta Openlayers.
  • Umpan GeoRSS / GeoAtom: Membuat umpan GeoRSS / GeoAtom relatif mudah.
  • Dukungan KML / GML / GeoJSON: GeoDjango mendukung serialisasi KML, GML, dan GeoJSON. Meskipun sebagai penafian, saya telah melakukan beberapa REST-API dengan Django dan menemukan bahwa saya tidak menggunakan kemampuan bawaan di GeoDjango untuk ini.
  • Perpustakaan pihak ketiga: OLWidgets adalah contoh perpustakaan pihak ketiga untuk GeoDjango yang membuat pembuatan peta interaktif lebih mudah. Juga, Anda memiliki akses ke berbagai pustaka Python. Sebagai contoh, ada proyek bernama Haystack yang menyediakan kemampuan pencarian teks lengkap. Jika Anda menggunakan indeks pencarian eksternal seperti Solr atau Elasticsearch, Anda dapat menggunakan Django untuk melakukan pencarian teks lengkap yang diaktifkan secara geospasial. Secara pribadi, Elasticsearch adalah pengganti yang hebat untuk PostGIS untuk pencarian spasial. Itu tidak memiliki semua fitur Postgis, tetapi melakukan pekerjaan dengan baik untuk sebagian besar kasus penggunaan.
  • Itu membuatnya sangat mudah untuk berpindah di antara database yang berbeda. Saya pribadi telah menggunakan GeoDjango dengan Spatialite dan Postgis.

Penilaian keseluruhan saya adalah bahwa Django dan Python jauh lebih baik untuk pengembangan web. Kita semua memiliki bias pribadi, tetapi Python memiliki banyak koleksi perpustakaan geospasial dan numerik. Ini membuatnya menjadi pilihan yang baik jika Anda perlu mengimplementasikan algoritma geospasial yang kompleks.

Shawn H
sumber
3

Iya. itu benar. ini dimaksudkan untuk menyederhanakan penggunaan fungsi geografis yang ada dengan fungsi dasar. dan menyediakan banyak fungsi geografis dengan beberapa basis data seperti yang ditunjukkan pada gambar berikut;

spasial

selain itu, tidak sulit untuk mendapatkan hasil yang lebih memuaskan dengan fungsi satu paragraf. kode ini memberi Anda objek dalam radius 5 km.

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

jika Anda ingin mendapatkan informasi lebih lanjut tentang geodjango, Anda dapat memeriksa jawaban saya di sini tentang topik yang sama.

Saya harap ini membantu Anda ...

Aragon
sumber
Saya kira Anda perlu =tanda:qs = Events.objects.filter(point__distance_lte=(pnt, D(km=5)))
Francis Yaconiello