Je suis en train de construire un site web sur geodjango. Sur le front-end, j'ai une carte sur les openlayers et je veux être capable de lancer des requêtes ajax sur une URL de django et de revenir sur geojson.django json serializer n'implémente pas geojson
Le problème est que le sérialiseur django json standard ne fait pas geojson. J'ai donc un modèle comme:
class Asset (models.Model):
objects = models.GeoManager()
url_name = models.CharField(max_length=200)
name = models.CharField(max_length=200)
point = models.PointField(srid=4326)
def __unicode__(self):
return self.name
Et je veux créer une vue:
def geojson_query(request):
#geographic query
...
assets = Asset.objects.all().filter(point__contained=bb_4326)
json = serializers.serialize("json", assets)
return HttpResponse(json)
Mais je reviens une réponse qui ressemble plus à ceci:
"url_name": "Upper_Svaneti",
"name": "Upper Svaneti",
"point": "POINT (43.0113899999999987 42.9163899999999998)"
Alors que Je veux quelque chose qui ressemble à ceci:
"url_name": "Upper_Svaneti",
"name": "Upper Svaneti",
"geometry": {
"type": "Point",
"coordinates": [43.0113899999999987 42.9163899999999998]
}
Donc, je suppose que ma question est, quelle est la meilleure façon d'implémenter un sérialiseur geojson dans django sans rouler totalement mon propre? Et s'il s'agit de lancer le mien, par où commencer?