django json serializer不实现geojson [英] django json serializer does not implement geojson
问题描述
问题是标准django json serializer不做geojson。所以我有一个模型:
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
我想创建一个视图:
def geojson_query(request):
#geographic query
...
assets = Asset.objects.all()。filter(point__contained = bb_4326)
json = serializers.serialize(json,assets)
返回HttpResponse(json)
但是,我得到一个更像这样的回复: p>
url_name:Upper_Svaneti,
name:Upper Svaneti,
point :POINT(43.0113899999999987 42.9163899999999998)
而我想要的东西看起来像这样:
url_name:Upp
name:上Svaneti,
几何:{
type:Point,
coordinates:[43.011389999998787 42.9163899999999998]
}
所以我想我的问题是,实现geojson序列化程序的最好方法是什么在django没有完全滚我自己?如果要滚动自己,我从哪里开始?
看到这个问题的答案。
将GeoQuerySet的空间数据呈现在GeoDjango上的自定义视图
您还可以查看此项目中的render_to_geojson方法。
http://geodjango-basic-apps.googlecode.com/
I am in the process of building a website on geodjango. On the front end I have a map on openlayers and I want to be able to fire ajax queries at some django url and get back geojson.
The problem is that the standard django json serializer doesn't do geojson. So I have a model like:
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
And I want to create a view:
def geojson_query(request):
#geographic query
...
assets = Asset.objects.all().filter(point__contained=bb_4326)
json = serializers.serialize("json", assets)
return HttpResponse(json)
But then I get back a response that looks more like this:
"url_name": "Upper_Svaneti",
"name": "Upper Svaneti",
"point": "POINT (43.0113899999999987 42.9163899999999998)"
Whereas I want something that looks like this:
"url_name": "Upper_Svaneti",
"name": "Upper Svaneti",
"geometry": {
"type": "Point",
"coordinates": [43.0113899999999987 42.9163899999999998]
}
So I guess my question is, what is the best way to implement a geojson serializer in django without totally rolling my own? And if it comes to rolling my own, where do I start?
See the answer to this question.
Rendering spatial data of GeoQuerySet in a custom view on GeoDjango
You can also look at the render_to_geojson method in this project. http://geodjango-basic-apps.googlecode.com/
这篇关于django json serializer不实现geojson的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!