سؤال

أنا أبحث في استخدام utm تنسيق النظام مع Geodjango. ولا أستطيع معرفة كيفية الحصول على البيانات بشكل صحيح.

لقد تم تصفح الوثائق ويبدو أن "geosgeometry (geo_input، srid = none)" أو "rogrgeometry."يمكن استخدامها مع EWKT، لكن لا يمكنني معرفة كيفية تهيئة البيانات.

يبدو وكأنه UTM srid. هو: 2029.

من ويكيبيديا المادة التنسيق مكتوب مثل هذا:

[utmzone.][ن أو س] [بإتجاه الشرق] [أراكل]

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 وتحويل إلى درجات عشرية؟
في هذه الحالة، تقوم GEOS أو أدوات أخرى في Geodjango بتقديم Utitilites Convertion؟

هل كانت مفيدة؟

المحلول

تم تحديد منطقة 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
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top