أكثر

يتم عرض الخريطة على القماش بعد حفظ الصورة

يتم عرض الخريطة على القماش بعد حفظ الصورة


أنا مبتدئ في Qgis و Python ؛ أحتاج إلى برنامج نصي (لست بحاجة إلى أن يكون مكونًا إضافيًا) للحصول على خرائط للمعالم المحددة من طبقة تفي بشروط معينة ؛ هذا هو الكود الخاص بي:

من qgis.gui الاستيراد * من PyQt4.QtCore استيراد * من PyQt4.QtGui استيراد * وقت الاستيراد fnam = 'C: /Users/User/.qgis2/Test/Output/' canvas = qgis.utils.iface.mapCanvas () # print canvas.size () Nom = QInputDialog.getText (بلا ، "القيمة" ، "إدخال نص" ، 0) fnam2 = fnam + Nom [0] + '.txt' #print fnam2 outfile = open (fnam2، 'w' ) layer = iface.activeLayer () layer.setSelectedFeatures ([]) #provider = layer.dataProvider () select = [] لـ f in layer.getFeatures (): n1 = f ['Comune_1'] n2 = f ['Comune_2 '] n3 = f [' Comune_3 '] n4 = f [' Comune_4 '] n5 = f [' Comune_5 '] إذا (n1 == Nom [0]) أو (n2 == Nom [0]) أو (n3 = = Nom [0]) أو (n4 == Nom [0]) أو (n5 == Nom [0]): select.append (f.id ()) سطر = '٪ s  n'٪ (f [' link ']) unicode_line = line.encode (' utf-8 ') outfile.write (unicode_line) layer.setSelectedFeatures (select) # provider.select () outfile.close () mnam =' C: / Users / User /. qgis2 / Test / Output / '+ Nom [0] +' .tif 'mnam2 =' C: /Users/User/.qgis2/Test/Output/ '+ Nom [0] +' .png ">

الآن قد يطلب المهنيون أو المسؤولون في القرية الحصول على صور تقويمية لقرية معينة تشغيل البرنامج النصي الخاص بي أتمنى:
- الحصول على قائمة صور فوتوغرافية لتلك القرية المحددة (هذا يعمل بشكل جيد مع ملف txt الذي أنشأته) ؛
- إعطاء خريطة توضح ترتيب تقويم العظام المطلوب كمساعدات تكميلية.
الآن ، إذا قمت بتشغيل البرنامج النصي بتحديد ، على سبيل المثال ، "Potenza" ، يمكنني في النهاية رؤية الخريطة المحدثة في Qgis مع التحديد المطلوب ، لكن الصور المحفوظة تظهر المنطقة بأكملها: (أعني "Potenza.png">

(صور tif مماثلة لـ png) ؛

(عندما يكون لدي نص عمل محدد "مستطيلات" ستظهر اسم الصورة ، ولن أستخدم الحوار الإدخال ولكني سأحصل على أسماء القرى من ملف الأشكال الأول وتشغيله مرة واحدة فقط لجميع القرى).


أنا لا أفهم مشكلتك.

1) تقوم بإنشاء ملف نصي بمعرف الميزات المحدد

layer = iface.activeLayer () # يمكنك تحديد جميع الميزات مع nom في أحد الحقول الخمسة المحددة = [f.id () لـ f in layer.getFeatures () if nom in [f ['Comune_1']، f [ 'Comune_2']، f ['Comune_3']، f ['Comune_4']، f ['Comune_5']]] # ثم تكتب في ملف نصي حقل الارتباط الخاص بالميزات المحددة مع فتح (ملف جديد ، 'w' ) كملف خارجي: لـ f في layer.getFeatures (): إذا كان f.id () قيد التحديد: # التنسيق الافتراضي هو unicode outfile.write ('٪ s  n'٪ (f ['link']))

2) بعد حفظ اللوحة القماشية التي تعرض الميزات المحددة

# حدد طبقة الميزات. setSelectedFeatures (التحديد) canvas.zoomToSelected () # حفظ الملفات canvas.saveAsImage (mnam، None، 'TIF') canvas.saveAsImage (mnam2، None، "PNG")

وهو يعمل بدون مشكلة.


شاهد الفيديو: طريقة اضافة موقع محل في قوقل ماب مجانا من الهاتف الجوال - اضافة مكان على جوجل ماب