本文整理汇总了Python中qgis.core.QgsPalLayerSettings.readFromLayer方法的典型用法代码示例。如果您正苦于以下问题:Python QgsPalLayerSettings.readFromLayer方法的具体用法?Python QgsPalLayerSettings.readFromLayer怎么用?Python QgsPalLayerSettings.readFromLayer使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qgis.core.QgsPalLayerSettings
的用法示例。
在下文中一共展示了QgsPalLayerSettings.readFromLayer方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: prepare_ordered_marker
# 需要导入模块: from qgis.core import QgsPalLayerSettings [as 别名]
# 或者: from qgis.core.QgsPalLayerSettings import readFromLayer [as 别名]
def prepare_ordered_marker(self, coords, idx):
"""
Try to display nice marker on a point layer, showing the order of
the path computed by OSRM.
"""
self.tsp_marker_lr = QgsVectorLayer(
"Point?crs=epsg:4326&field=id:integer"
"&field=TSP_nb:integer(20)&field=Origin_nb:integer(20)",
"tsp_markers_osrm{}".format(self.nb_route), "memory")
symbol = QgsSymbolV2.defaultSymbol(self.tsp_marker_lr.geometryType())
symbol.setSize(4.5)
symbol.setColor(QtGui.QColor("yellow"))
ordered_pts = \
[coords[i["waypoint_index"]] for i in self.parsed['waypoints']]
print("ordered_pts : ", ordered_pts)
features = []
for nb, pt in enumerate(ordered_pts):
ft = QgsFeature()
ft.setGeometry(QgsGeometry.fromPoint(QgsPoint(pt)))
ft.setAttributes([nb, nb + 1, coords.index(pt)])
features.append(ft)
self.tsp_marker_lr.dataProvider().addFeatures(features)
pal_lyr = QgsPalLayerSettings()
pal_lyr.readFromLayer(self.tsp_marker_lr)
pal_lyr.enabled = True
pal_lyr.fieldName = 'TSP_nb'
pal_lyr.placement= QgsPalLayerSettings.OverPoint
pal_lyr.setDataDefinedProperty(QgsPalLayerSettings.Size,True,True,'12','')
pal_lyr.writeToLayer(self.tsp_marker_lr)
self.tsp_marker_lr.setRendererV2(QgsSingleSymbolRendererV2(symbol))
QgsMapLayerRegistry.instance().addMapLayer(self.tsp_marker_lr)
示例2: test_write_read_settings
# 需要导入模块: from qgis.core import QgsPalLayerSettings [as 别名]
# 或者: from qgis.core.QgsPalLayerSettings import readFromLayer [as 别名]
def test_write_read_settings(self):
# Verify written PAL settings are same when read from layer
# load and write default test settings
lyr1 = self.defaultLayerSettings()
lyr1dict = self.settingsDict(lyr1)
# print lyr1dict
lyr1.writeToLayer(self.layer)
# read settings
lyr2 = QgsPalLayerSettings()
lyr2.readFromLayer(self.layer)
lyr2dict = self.settingsDict(lyr1)
# print lyr2dict
msg = '\nLayer settings read not same as settings written'
self.assertDictEqual(lyr1dict, lyr2dict, msg)
示例3: setLabelFormatter
# 需要导入模块: from qgis.core import QgsPalLayerSettings [as 别名]
# 或者: from qgis.core.QgsPalLayerSettings import readFromLayer [as 别名]
def setLabelFormatter(self, layer): # remove topicType
try:
palyr = QgsPalLayerSettings()
palyr.readFromLayer(layer)
palyr.enabled = True
palyr.fontBold = True
palyr.shapeDraw = True
palyr.shapeTransparency = 0
palyr.shapeType = QgsPalLayerSettings.ShapeRectangle
palyr.textColor = QColor(255,255,255) # white
palyr.placement = QgsPalLayerSettings.OverPoint
palyr.quadOffset = QgsPalLayerSettings.QuadrantBelow
palyr.multilineAlign = QgsPalLayerSettings.MultiCenter
palyr.yOffset = 0.01
palyr.fieldName = '$format_label'
palyr.writeToLayer(layer)
Log.debug("Palyr Settings updated")
except Exception as e:
Log.debug("Error setting Label Format " + str(e))
示例4: convert2CartoCSS
# 需要导入模块: from qgis.core import QgsPalLayerSettings [as 别名]
# 或者: from qgis.core.QgsPalLayerSettings import readFromLayer [as 别名]
def convert2CartoCSS(self, layer):
"""Convert layer symbology to CartoCSS"""
renderer = layer.rendererV2()
carto_css = ''
label_css = ''
label_settings = QgsPalLayerSettings()
label_settings.readFromLayer(layer)
if label_settings.enabled:
d = {
'layername': '#' + layer.tableName(),
'field': label_settings.getLabelExpression().dump(),
# TODO Get font size
'size': 11,
'color': label_settings.textColor.name()
}
filein = open(QgisCartoDB.CartoDBPlugin.PLUGIN_DIR + '/templates/labels.less')
label_css = Template(filein.read())
label_css = label_css.substitute(d)
# qDebug('Label CSS: ' + label_css)
# CSS for single symbols
if renderer.type() == 'singleSymbol':
symbol = renderer.symbol()
carto_css = self.symbol2CartoCSS(layer, symbol, '#' + layer.tableName())
# CSS for categorized symbols
elif renderer.type() == 'categorizedSymbol':
# qDebug('Categorized: ' + renderer.classAttribute())
for cat in renderer.categories():
symbol = cat.symbol()
# qDebug("%s: %s type: %s" % (str(cat.value()), cat.label(), type(cat.value())))
if cat.value() is not None and cat.value() != '' and not isinstance(cat.value(), QPyNullVariant):
if isinstance(cat.value(), (int, float, long)) or (isinstance(cat.value(), str) and cat.value().isdecimal()):
value = unicode(cat.value())
else:
value = unicode('"' + cat.value() + '"')
value = str(value.encode('utf8', 'ignore'))
# qDebug('Value {}'.format(value))
style_name = '#{}[{}={}]'.format(layer.tableName(), renderer.classAttribute(), value).decode('utf8')
carto_css = carto_css + \
self.symbol2CartoCSS(layer, symbol, style_name)
else:
carto_css = self.symbol2CartoCSS(layer, symbol, '#' + layer.tableName()) + carto_css
# CSS for graduated symbols
elif renderer.type() == 'graduatedSymbol':
# qDebug('Graduated')
def upperValue(ran):
"""Get upper value from range"""
return ran.upperValue()
ranges = sorted(renderer.ranges(), key=upperValue, reverse=True)
for ran in ranges:
symbol = ran.symbol()
'''
qDebug("%f - %f: %s" % (
ran.lowerValue(),
ran.upperValue(),
ran.label()
))
'''
carto_css = carto_css + \
self.symbol2CartoCSS(layer, symbol, '#' + layer.tableName() + \
'[' + renderer.classAttribute() + '<=' + str(ran.upperValue()) + ']')
return '/** Styles designed from QGISCartoDB Plugin */\n\n' + carto_css + '\n' + label_css