2016-06-29 2 views
0

Djangoのgeojsonシリアライザを使用していますが、正しい順序で座標が取得されません(GeoJson specによる)。代わりに(easting、northing)私は(緯度、経度)取得し、私は明らかに誤った位置を取得するので、私は経度は経度として緯度と緯度として解釈されます。Djangoのgeojsonシリアライザが間違った順序で座標を出力します

これらは私の元の座標です:

[(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

Geojsonの出力に経度と緯度が表示されるのは、プレイスモデルの場所フィールドにデフォルトのsrid 4326が選択されているように見えるためです。 GeoJSONシリアライザは、使用時にdefault sridとして4326を使用します。座標をシリアル化するときに元の緯度/経度座標を4326/WGS84以外の異なる座標系に変換しようとしていますか?詳しく教えてください。

私の最初の提案は、django-geojsonアプリをプロジェクトに実装しようとすることです。 "[D] jango-geojsonは、(ジオ)DjangoオブジェクトをGeoJSONにシリアル化するヘルパーのコレクションです。"。私は正しくフォーマットされたgeojsonを出力する必要がある場合、私はそれを使用します。

+0

ありがとう@カシウス、私は緯度、経度の代わりに緯度、経度、私のGeoJSON出力が正しい今この方法でデータベースに私の座標を格納するこの問題を解決しましたが、私は確かにdjango-geojsonを実装するためにあなたの提案に従います私のプロジェクトでは、複数のモデルからデータをシリアル化する必要があり、DjangoのデフォルトのGeoJSONシリアライザにはこのようなオプションがないようです。 – pascalin

関連する問題