Utilisation de GeoDjango

9

Nous créons un site Web qui affiche les données géographiques sur la carte (actuellement en utilisant l'API Google Maps js). Nous utilisons actuellement postgres + postGIS + php. Il a été recommandé que j'examine l'utilisation de GeoDjango. J'ai du mal à déterminer quelles fonctionnalités géographiques supplémentaires GeoDjango fournit au-dessus de ce qui est déjà disponible dans postGIS (c'est-à-dire les points, les lignes linéaires, les polygones, les calculs de distance, les calculs de zone, la logique "dans" etc.).

GeoDjango fournit-il des fonctionnalités supplémentaires ou son intention est-elle de simplifier l'utilisation des fonctionnalités géographiques existantes?

Merci!

geouser
la source

Réponses:

11

GeoDjango fournit également de nombreuses fonctionnalités prêtes à l'emploi à valeur ajoutée.

  • Site d'administration géospatialement activé: C'est l'une de mes fonctionnalités préférées de Django en général. Django crée automatiquement des pages d'administration assez belles. GeoDjango va plus loin et vous offre un moyen de visualiser et de modifier facilement les données géospatiales à l'aide d'une carte Openlayers.
  • Flux GeoRSS / GeoAtom: La création de flux GeoRSS / GeoAtom est relativement facile.
  • Prise en charge de KML / GML / GeoJSON: GeoDjango prend en charge la sérialisation KML, GML et GeoJSON. Bien que comme avertissement, j'ai fait quelques API REST avec Django et j'ai constaté que je n'utilise pas les capacités intégrées dans GeoDjango pour cela.
  • Bibliothèques tierces: OLWidgets est un exemple de bibliothèque tierce pour GeoDjango qui facilite la création de cartes interactives. De plus, vous avez accès à une grande variété de bibliothèques Python. Par exemple, il existe un projet appelé Haystack qui fournit une fonction de recherche en texte intégral. Si vous utilisez un index de recherche externe comme Solr ou Elasticsearch, vous pouvez utiliser Django pour effectuer des recherches de texte intégral géospatiales. Personnellement, Elasticsearch est un excellent remplacement pour PostGIS pour les recherches spatiales. Il n'a pas toutes les fonctionnalités de Postgis, mais fait un bon travail pour la plupart des cas d'utilisation.
  • Cela facilite grandement le déplacement entre différentes bases de données. J'ai personnellement utilisé GeoDjango avec Spatialite et Postgis.

Mon évaluation globale est que Django et Python sont bien meilleurs pour le développement web. Nous avons tous notre parti pris personnel, mais Python possède une grande collection de bibliothèques géospatiales et numériques. Cela en fait un bon choix si vous devez implémenter des algorithmes géospatiaux complexes.

Shawn H
la source
3

Oui. c'est vrai. il vise à simplifier l'utilisation des fonctionnalités géographiques existantes avec des fonctions de base. et il fournit un bon nombre de fonctions géographiques avec quelques bases de données comme montré à l'image suivante;

spatial

en plus de cela, il n'est pas difficile d'obtenir un résultat plus satisfaisant avec une fonction de paragraphe. ce code vous donne des objets dans un rayon de 5 km.

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

si vous voulez obtenir plus d'informations sur geodjango, vous pouvez consulter ma réponse ici sur le même sujet.

J'espère que ça t'aide...

Aragon
la source
Je pense que vous avez besoin d'un =signe:qs = Events.objects.filter(point__distance_lte=(pnt, D(km=5)))
Francis Yaconiello