使用插件图层
如果您的插件使用自己的方法来渲染地图图层,实现该图层的最佳方法可能是基于QgsPluginLayer编写自己的图层类型。
TODO:
检查正确性,并详细说明QgsPluginLayer的良好用例,…
子类QgsPluginLayer
以下是实现继承自QgsPluginLayer的示例。它是Watermark示例插件的摘录
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
还可以添加用于将特定信息读取和写入项目文件的方法
def readXml(self, node):
pass
def writeXml(self, node, doc):
pass
加载包含此类图层的项目时,需要一个工厂类
class WatermarkPluginLayerType(QgsPluginLayerType):
def __init__(self):
QgsPluginLayerType.__init__(self, WatermarkPluginLayer.LAYER_TYPE)
def createLayer(self):
return WatermarkPluginLayer()
您还可以在图层属性中添加用于显示自定义信息的代码
def showLayerProperties(self, layer):
pass
下一个
前一个
©版权所有2002-现在,QGIS项目 最近更新于2020年4月3日09:14。
使用Sphinx使用Read the Docs提供的主题构建。