GeoDjango Kullanımı


9

Haritada coğrafi verileri görüntüleyen bir web sitesi oluşturuyoruz (şu anda Google Maps js API'sını kullanıyor). Şu anda postgres + postGIS + php kullanıyoruz. GeoDjango kullanımına bakmam tavsiye edildi. GeoDjango postGIS zaten mevcut olan ne ek coğrafi fonksiyonellik belirleme konusunda sorun yaşıyorum (yani puan, linestrings, çokgenler, mesafe hesaplamaları, alan hesaplamaları, "içinde" mantık vb).

GeoDjango ek işlevsellik sağlıyor mu veya mevcut coğrafi işlevsellik kullanımını basitleştirmek mi istiyor?

Teşekkürler!

Yanıtlar:


11

GeoDjango ayrıca çok sayıda katma değerli, kullanıma hazır özellik sunar.

  • Coğrafi olarak etkinleştirilmiş yönetici sitesi: Bu genel olarak Django'nun en sevdiğim özelliklerinden biri. Django otomatik olarak oldukça hoş görünümlü yönetici sayfaları oluşturur. GeoDjango bunu bir adım daha ileri götürür ve bir Openlayers haritası kullanarak coğrafi uzamsal verileri kolayca görüntülemenize ve düzenlemenize olanak tanır.
  • GeoRSS / GeoAtom yayınları: GeoRSS / GeoAtom yayınları oluşturmak nispeten kolaydır.
  • KML / GML / GeoJSON desteği: GeoDjango KML, GML ve GeoJSON serileştirmeyi destekler. Bir feragatname olarak, Django ile birkaç REST-API'ler yaptım ve bunun için GeoDjango'da yerleşik yetenekleri kullanmadığımı buldum.
  • Üçüncü taraf kitaplıkları: OLWidgets, GeoDjango için etkileşimli harita oluşturmayı kolaylaştıran bir üçüncü taraf kitaplığına örnektir. Ayrıca, çok çeşitli Python kitaplıklarına erişebilirsiniz. Örnek olarak, tam metin arama özelliği sağlayan Haystack adlı bir proje var. Solr veya Elasticsearch gibi harici bir arama dizini kullanıyorsanız, coğrafi olarak etkinleştirilmiş tam metin aramaları yapmak için Django'yu kullanabilirsiniz. Şahsen, Elasticsearch, mekansal aramalar için PostGIS yerine mükemmel bir alternatiftir. Postgis'in tüm özelliklerine sahip değildir, ancak çoğu kullanım durumunda iyi bir iş çıkarır.
  • Farklı veritabanları arasında hareket etmeyi gerçekten kolaylaştırır. Şahsen GeoDjango'yu Spatialite ve Postgis ile kullandım.

Genel değerlendirmem Django ve Python'un web geliştirme için çok daha iyi olduğudur. Hepimizin kişisel önyargısı var, ancak Python'un geniş bir coğrafi ve sayısal kütüphane koleksiyonu var. Bu, karmaşık jeo-uzamsal algoritmaları uygulamanız gerektiğinde iyi bir seçimdir.


3

Evet. bu doğru. mevcut coğrafi işlevsellik kullanımını temel işlevlerle basitleştirmek niyetindedir. ve aşağıdaki resimde gösterildiği gibi bazı veritabanlarıyla birçok coğrafi işlev sağlar;

uzaysal

buna ek olarak, bir paragraf fonksiyonu ile daha tatmin edici bir sonuç elde etmek zor değildir. bu kod size 5 km yarıçapındaki nesneleri verir.

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

Eğer geodjango hakkında daha fazla bilgi almak istiyorsanız, burada aynı konu ile ilgili cevabımı kontrol edebilirsiniz .

umarım sana yardımcı olur ...


Bir =işarete ihtiyacın var :qs = Events.objects.filter(point__distance_lte=(pnt, D(km=5)))
Francis Yaconiello
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.