2009-08-26 6 views
1

geodjangoでUTM座標系を使用しています。 そして、データを正しく取得する方法を理解できません。geodjangoでUTMを使用する

私はドキュメントを閲覧していましたが、 "GEOSGeometry(geo_input, srid=None)"または "OGRGeometry"をEWKTで使用することができましたが、データのフォーマット方法がわかりません。

UTM SRIDであるように見えます:2029

フォーマットは次のように書かれているwikipedia articleから:

[UTMZoneが] [N又はS] [[東距]北北]

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で必要な計算を行い、10進数に変換するだけでもいいですか?
geodjangoのGEOSや他のツールは、変換ユートリットを提供しますか?

答えて

6

UTMゾーン(17N)はすでに空間参照系 - SRID 2029によって指定されているため、GEOSGeometryコンストラクタに渡すWKTに含める必要はありません。

>>> 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 
+1

Iだろうとの間に与えられたことはよく知られているテキストの形式で与えられた形状、OGC WKTまたは拡張WKTのPostGISの/ GEOS固有の形式のいずれか、コンポーネントを追加ジオメトリタグの後の括弧()は、座標:XY、オプションでZおよびM次元のみを指定する必要があります。他のエキゾチックな要素は許されないので、17Nは無効なトークンです。 EWKTの場合、専用の指定子SRIDを使用して空間参照系を与えることができます。 – mloskot

関連する問題