GeodjangoでUTMを使用します
質問
私はの使用を検討しています UTM Geodjangoとの座標系。そして、データを適切に入手する方法を理解できません。
私はドキュメントを閲覧してきましたが、それは「Geosgeometry(geo_input、srid = none)" また "オグレオメトリー「EWKTで使用できますが、データのフォーマット方法を理解できません。
UTMのように見えます srid IS:2029
から ウィキペディアの記事 形式は次のように書かれています:
[utmzone][nまたはs] [イースト] [northing]
17N 630084 4833438
だから私は運がなくて以下を試しました:
>>> from django.contrib.gis.geos import *
>>> pnt = GEOSGeometry('SRID=2029;POINT(17N 630084 4833438)')
GEOS_ERROR: ParseException: Expected number but encountered word: '17N'
>>>
>>> from django.contrib.gis.gdal import OGRGeometry
>>> pnt = OGRGeometry('SRID=2029;POINT(17N 630084 4833438)')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python26\lib\site-packages\django\contrib\gis\gdal\geometries.py", line 106, in __init__
ogr_t = OGRGeomType(geom_input)
File "C:\Python26\lib\site-packages\django\contrib\gis\gdal\geomtype.py", line 31, in __init__
raise OGRException('Invalid OGR String Type "%s"' % type_input)
django.contrib.gis.gdal.error.OGRException: Invalid OGR String Type "srid=2029;point(17n 630084 4833438)"
これがどのように行われるかを示す例はありますか?
UTMで必要な計算を行い、小数に変換する必要があるかもしれません。
この場合、GeodjangoのGEOまたは他のツールは変換のutitiLitesを提供しますか?
解決
UTMゾーン(17N)は、空間参照システムによってすでに指定されています - SRID 2029, 、だからあなたはそれをwktに含める必要はありません GEOSGeometry
コンストラクタ。
>>> from django.contrib.gis.geos import *
>>> pnt = GEOSGeometry('SRID=2029;POINT(630084 4833438)')
>>> (pnt.x, pnt.y)
(630084.0, 4833438.0)
>>> pnt.srid
2029
次に、例:
>>> pnt.transform(4326) # Transform to WGS84
>>> (pnt.x, pnt.y)
(-79.387137066054038, 43.644504290860461)
>>> pnt.srid
4326
所属していません StackOverflow