পাইথন ব্যবহার করে কিউজিআইএস-এ কীভাবে স্তর দৃশ্যমানতা টগল করা যায়?


উত্তর:


11

এটি কিউজিআইএস ডক্স থেকে, যদি আপনি কিউজিআইএস => 1.5 চালাচ্ছেন

from PyQt4 import QtCore, QtGui
from qgis import core, gui
i = qgis.utils.iface
# load a georeferenced raster layer
loadedLayer = i.addRasterLayer('c:\\data\\a_map.png')
# get legend
legend = i.legendInterface()
# check current visibility
legend.isLayerVisible(loadedLayer)
# set visibility off 
legend.setLayerVisible(loadedLayer, False)
# and on again!
legend.setLayerVisible(loadedLayer, True) 

আমি অনুমান করি loadedLayer = i.addRasterLayer('c:\\data\\a_map.png')যে আপনি যে স্তরটি আড়াল করতে চান তা আপনি সরিয়ে নিয়ে যাবেন , যা আপনি এর মতো কিছু ব্যবহার করতে পারেন:

QgsMapLayerRegistry.instance().mapLayer(QString theLayerId)

0

গৃহীত উত্তর কিউজিআইএস 3 এর জন্য উপলব্ধ নয়। কিউজিআইএস 3-তে, আমি নীচের কোডটি ব্যবহার করি:

QgsProject.instance().layerTreeRoot().findLayer(lyr.id()).setItemVisibilityChecked(False)

এছাড়াও, আমরা এর মাধ্যমে সমস্ত স্তরগুলি চালু এবং বন্ধ করতে পারি:

bool = True # or False
root = QgsProject.instance().layerTreeRoot()
allLayers = root.layerOrder()
for layer in allLayers:
    root.findLayer(layer.id()).setItemVisibilityChecked(bool)

আপনার প্রথম কোড ব্লকটি কোনও টগল নয়, তবে স্পষ্টভাবে লক্ষ্য স্তরটিকে অদৃশ্য করে দেয়।
লেগাতো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.