我正在使用Django的geojson序列化程序,但它没有按正确的顺序获取坐标(根据GeoJson spec)。而不是(东方,北方)我得到(纬度,经度),当我显示地图时,我显然得到了错误的位置,因为经度被解释为纬度和纬度作为经度。
这些是我的原始坐标:
[(38.8976094, -77.0367349), (19.4348892, -99.1447678)]
这是序列化代码:
from django.core.serializers import serialize
serialize('geojson', Place.objects.all(),
geometry_field='location', fields=('name', ))
这是我序列化时得到的结果:
u'{"type": "FeatureCollection",
"crs": {"type": "name", "properties": {"name": "EPSG:4326"}},
"features": [{"geometry": {"type": "Point", "coordinates": [38.8976094, -77.0367349]}, "type": "Feature", "properties": {"name": "White House"}}, {"geometry": {"type": "Point",
"coordinates": [19.4348892, -99.1447678]}, "type": "Feature", "properties": {"name": "Palacio de Bellas Artes"}}]}'
我安装了GDAL,其他一切似乎都运行正常。我是否认为序列化器应该选择正确的坐标顺序,或者我必须手动完成它吗?
答案 0 :(得分:0)
您可以在geojson输出中获得经度和纬度,因为您似乎为Places模型中的位置字段选择了默认的srid 4326。使用时,GeoJSON Serializer也使用4326作为default srid。在序列化坐标时,您是否尝试将原始纬度/经度坐标转换为与4326 / WGS84不同的坐标系/ srid(您似乎期望东向和北向?)?请详细说明。
我最初的建议是尝试在您的项目中实施django-geojson应用。 " [D] jango-geojson是将(de)序列化(Geo)Django对象转换为GeoJSON的帮助程序集合。"。如果我需要输出格式正确的geojson,我会使用它。