أكثر

خطأ عند التكبير للطبقة في تطبيق PyQGIS. على سرعة التحول القضية؟

خطأ عند التكبير للطبقة في تطبيق PyQGIS. على سرعة التحول القضية؟


أحاول ضبط مدى نافذتي على طبقة على لوحتي. لقد نجح هذا بسلاسة حتى بدأت في استخدام خرائط Web Mercator بدلاً من خرائط WGS84. تحصل ميزاتي على تحديد الموقع الجغرافي من مصدر خارجي يتغذى بالدرجات العشرية ، لذلك أنا أستخدم التحويل الفوري لعرضه بشكل صحيح على Web Mercator. تكمن المشكلة في أنه في الكود الخاص بي ، عندما قمت بتعيين مدى الطبقة الخاصة بي ، يبدو أنني أحاول القيام بذلك بالدرجات العشرية ، ووضع نافذتي في وسط المحيط الأطلسي.

رمز المدى الخاص بي بسيط للغاية:

self.mapCanvas.setExtent (self.myLayer.extent ())

رمز CRS الخاص بي على القماش واضح أيضًا:

self.mapCanvas = QgsMapCanvas () self.mapCanvas.useImageToRender (False) self.mapCanvas.setCanvasColor (Qt.white) self.mapCanvas.setCrsTransformEnabled (صحيح) self.mapCanvas.setDestinationCrs (QgsCoordinateReference (38) mapCanvas.show ()

هل هناك شيء غير صحيح؟


إذا كان CRS للوحة القماشية والطبقة مختلفين ، يجب إعادة إسقاط نطاق الطبقة إلى قماش CRS قبل التكبير. جرب هذا:

mapCanvas = iface.mapCanvas () xform = QgsCoordinateTransform (myLayer.crs ()، mapCanvas.mapRenderer (). destinationCrs ()) mapCanvas.setExtent (xform.transform (myLayer.extent ())) mapCanvas.refresh ()

شاهد الفيديو: QGIS Python PyQGIS - Show Error, Warning, and Success Messages