Outdated version of the documentation. Find the latest one here.

Utilizarea straturilor plugin-ului

Dacă plugin-ul dvs. folosește propriile metode de a randa un strat de hartă, scrierea propriului tip de strat, bazat pe QgsPluginLayer, ar putea fi cel mai bun mod de a implementa acest lucru.

DE EFECTUAT:

Verificați corectitudinea și elaborați cazuri de corectă utilizare pentru QgsPluginLayer, ...

Subclasarea QgsPluginLayer

Below is an example of a minimal QgsPluginLayer implementation. It is an excerpt of the Watermark example plugin:

class WatermarkPluginLayer(QgsPluginLayer):

  LAYER_TYPE="watermark"

  def __init__(self):
    QgsPluginLayer.__init__(self, WatermarkPluginLayer.LAYER_TYPE, "Watermark plugin layer")
    self.setValid(True)

  def draw(self, rendererContext):
    image = QImage("myimage.png")
    painter = rendererContext.painter()
    painter.save()
    painter.drawImage(10, 10, image)
    painter.restore()
    return True

De asemenea, pot fi adăugate metode pentru citirea și scrierea de informații specifice în fișierul proiectului

def readXml(self, node):
  pass

def writeXml(self, node, doc):
  pass

Când încărcați un proiect care conține un astfel de strat, este nevoie de o fabrică de clase

class WatermarkPluginLayerType(QgsPluginLayerType):

  def __init__(self):
    QgsPluginLayerType.__init__(self, WatermarkPluginLayer.LAYER_TYPE)

  def createLayer(self):
    return WatermarkPluginLayer()

Puteți adăuga, de asemenea, codul pentru afișarea de informații personalizate în proprietățile stratului

def showLayerProperties(self, layer):
  pass