Frage

Ich möchte die benutzen UTM Koordinatensystem mit Geodjango. Und ich kann nicht herausfinden, wie ich die Daten richtig einholen kann.

Ich habe die Dokumentation durchsucht und es scheint, dass das ""Geosgeometrie (Geo_Input, srid = keine)" oder "Ogrgeometrie"könnte mit einem EWKT verwendet werden, aber ich kann nicht herausfinden, wie die Daten formatiert werden sollen.

Es sieht aus wie die UTM Srid IS: 2029

Von dem Wikipedia -Artikel Das Format ist so geschrieben:

[Utmzone][N oder s] [Ost] [Nordinde]

17n 630084 4833438

Also habe ich das Folgende ohne Glück ausprobiert:

>>> 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)"

Gibt es Beispiele für ein Beispiel, um zu zeigen, wie dies gemacht wird?

Vielleicht sollte ich nur die notwendigen Kalulationen in UTM durchführen und in Dezimalgrade umwandeln?
In diesem Fall bieten Geos oder andere Tools in Geodjango Konvertion -Utitiliten?

War es hilfreich?

Lösung

Die UTM -Zone (17N) ist bereits vom räumlichen Referenzsystem angegeben - Srid 2029, Sie müssen es also nicht in die WKT einbeziehen, die Sie an die übergeben GEOSGeometry Konstrukteur.

>>> from django.contrib.gis.geos import *
>>> pnt = GEOSGeometry('SRID=2029;POINT(630084 4833438)')
>>> (pnt.x, pnt.y)
(630084.0, 4833438.0)
>>> pnt.srid
2029

Dann zum Beispiel:

>>> pnt.transform(4326)   # Transform to WGS84
>>> (pnt.x, pnt.y)
(-79.387137066054038, 43.644504290860461)
>>> pnt.srid
4326
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top