目的:添加点,动态更新文本标注
第一种思路:利用QgsTextAnnotationItem同时标注点与添加文字
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from qgis.core import *
from qgis.gui import *
textItem = QgsTextAnnotationItem( qgis.utils.iface.mapCanvas() )
textItem.setMapPosition(QgsPoint(109.960844360,39.499350477))
textItem.setFrameSize(QSizeF(50,40))
textItem.setDocument(QTextDocument("This"))
textItem.setFrameBorderWidth(0.5)
textItem.setOffsetFromReferencePoint(QPoint(0.1,0.1))
textItem.update()
第二种思路是画出点,获取layer,再利用layer的属性添加标注。
存储到spatiallite里,更新数据库的属性。
from qgis.core import *
from qgis.analysis import *
from qgis.gui import *
from qgis.utils import *
from PyQt4.QtCore import *
from PyQt4.QtGui import *
m = QgsVertexMarker(iface.mapCanvas())
m.setCenter(QgsPoint(109.86, 39.49))
m.setColor(QColor(0, 255, 0))
m.setIconSize(5)
m.setIconType(QgsVertexMarker.ICON_BOX) # or ICON_CROSS, ICON_X
m.setPenWidth(3)