PyQGisCookbook--使用插件层(十八/3)


使用插件图层

 

如果您的插件使用自己的方法来渲染地图图层,实现该图层的最佳方法可能是基于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提供的主题构建。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值