本文整理汇总了Python中qgis.core.QgsPalLayerSettings类的典型用法代码示例。如果您正苦于以下问题:Python QgsPalLayerSettings类的具体用法?Python QgsPalLayerSettings怎么用?Python QgsPalLayerSettings使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了QgsPalLayerSettings类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: defaultSettings
def defaultSettings(self):
lyr = QgsPalLayerSettings()
lyr.enabled = True
lyr.fieldName = 'text' # default in data sources
lyr.textFont = self._TestFont
lyr.textNamedStyle = 'Medium'
return lyr
开发者ID:leandromet,项目名称:Quantum-GIS,代码行数:7,代码来源:test_qgspallabeling_base.py
示例2: prepare_ordered_marker
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)
开发者ID:mthh,项目名称:osrm-gqis-plugin,代码行数:35,代码来源:osrm_dialog.py
示例3: test_settings_enable_pal
def test_settings_enable_pal(self):
# Verify default PAL settings enable PAL labeling for layer
lyr = QgsPalLayerSettings()
lyr.writeToLayer(self.layer)
palset = self.layer.customProperty('labeling', '')
msg = '\nExpected: Empty string\nGot: {0}'.format(palset)
self.assertEqual(palset, 'pal', msg)
开发者ID:GrokImageCompression,项目名称:QGIS,代码行数:7,代码来源:test_qgspallabeling_base.py
示例4: test_settings_enable_pal
def test_settings_enable_pal(self):
# Verify default PAL settings enable PAL labeling for layer
lyr = QgsPalLayerSettings()
lyr.writeToLayer(self.layer)
palset = self.layer.customProperty("labeling", "").toString()
msg = "\nExpected: Empty string\nGot: {0}".format(palset)
self.assertEqual(palset, "pal", msg)
开发者ID:,项目名称:,代码行数:7,代码来源:
示例5: defaultLayerSettings
def defaultLayerSettings(self):
lyr = QgsPalLayerSettings()
lyr.enabled = True
lyr.fieldName = "text" # default in test data sources
font = self.getTestFont()
font.setPointSize(32)
lyr.textFont = font
lyr.textNamedStyle = "Roman"
return lyr
开发者ID:,项目名称:,代码行数:9,代码来源:
示例6: defaultSettings
def defaultSettings(self):
lyr = QgsPalLayerSettings()
lyr.enabled = True
lyr.fieldName = 'text' # default in data sources
font = self.getTestFont()
font.setPointSize(48)
lyr.textFont = font
lyr.textNamedStyle = 'Roman'
return lyr
开发者ID:,项目名称:,代码行数:9,代码来源:
示例7: defaultLayerSettings
def defaultLayerSettings(self):
lyr = QgsPalLayerSettings()
lyr.fieldName = 'text' # default in test data sources
font = self.getTestFont()
font.setPointSize(32)
format = lyr.format()
format.setFont(font)
format.setNamedStyle('Roman')
format.setSize(32)
format.setSizeUnit(QgsUnitTypes.RenderPoints)
format.buffer().setJoinStyle(Qt.BevelJoin)
lyr.setFormat(format)
return lyr
开发者ID:cz172638,项目名称:QGIS,代码行数:13,代码来源:test_qgspallabeling_base.py
示例8: test_write_read_settings
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)
开发者ID:GrokImageCompression,项目名称:QGIS,代码行数:16,代码来源:test_qgspallabeling_base.py
示例9: checkRemovingLabeledLayerInvalidatesLabelCache
def checkRemovingLabeledLayerInvalidatesLabelCache(self, job_type):
""" removing a previously labeled layer should invalidate any previous label caches"""
layer = QgsVectorLayer("Point?field=fldtxt:string",
"layer1", "memory")
labelSettings = QgsPalLayerSettings()
labelSettings.fieldName = "fldtxt"
layer.setLabeling(QgsVectorLayerSimpleLabeling(labelSettings))
layer.setLabelsEnabled(True)
layer2 = QgsVectorLayer("Point?field=fldtxt:string",
"layer2", "memory")
layer2.setLabeling(QgsVectorLayerSimpleLabeling(labelSettings))
layer2.setLabelsEnabled(True)
settings = QgsMapSettings()
settings.setExtent(QgsRectangle(5, 25, 25, 45))
settings.setOutputSize(QSize(600, 400))
settings.setLayers([layer, layer2])
# with cache - first run should populate cache
cache = QgsMapRendererCache()
job = job_type(settings)
job.setCache(cache)
job.start()
job.waitForFinished()
self.assertFalse(job.usedCachedLabels())
self.assertTrue(cache.hasCacheImage('_labels_'))
self.assertTrue(job.takeLabelingResults())
self.assertEqual(set(cache.dependentLayers('_labels_')), {layer, layer2})
# remove a previously labeled layer
settings.setLayers([layer2])
# second job should not be able to use label cache, since a labeled layer was removed
job = job_type(settings)
job.setCache(cache)
job.start()
job.waitForFinished()
# shouldn't use cache
self.assertFalse(job.usedCachedLabels())
# but results should have been cached
self.assertTrue(cache.hasCacheImage('_labels_'))
self.assertEqual(set(cache.dependentLayers('_labels_')), {layer2})
self.assertTrue(job.takeLabelingResults())
开发者ID:,项目名称:,代码行数:46,代码来源:
示例10: checkAddingNewNonLabeledLayerKeepsLabelCache
def checkAddingNewNonLabeledLayerKeepsLabelCache(self, job_type):
""" adding a new non-labeled layer should keep any previous label caches"""
layer = QgsVectorLayer("Point?field=fldtxt:string",
"layer1", "memory")
labelSettings = QgsPalLayerSettings()
labelSettings.fieldName = "fldtxt"
layer.setLabeling(QgsVectorLayerSimpleLabeling(labelSettings))
layer.setLabelsEnabled(True)
settings = QgsMapSettings()
settings.setExtent(QgsRectangle(5, 25, 25, 45))
settings.setOutputSize(QSize(600, 400))
settings.setLayers([layer])
# with cache - first run should populate cache
cache = QgsMapRendererCache()
job = job_type(settings)
job.setCache(cache)
job.start()
job.waitForFinished()
self.assertFalse(job.usedCachedLabels())
self.assertTrue(cache.hasCacheImage('_labels_'))
self.assertTrue(job.takeLabelingResults())
self.assertEqual(cache.dependentLayers('_labels_'), [layer])
# add another, non-labeled layer
layer2 = QgsVectorLayer("Point?field=fldtxt:string",
"layer2", "memory")
settings.setLayers([layer, layer2])
# second job should use label cache, since new layer was not labeled
job = job_type(settings)
job.setCache(cache)
job.start()
job.waitForFinished()
# should use cache
self.assertTrue(job.usedCachedLabels())
# results should have been cached
self.assertTrue(cache.hasCacheImage('_labels_'))
self.assertEqual(set(cache.dependentLayers('_labels_')), {layer})
self.assertTrue(job.takeLabelingResults())
开发者ID:,项目名称:,代码行数:43,代码来源:
示例11: remove_mask_filter
def remove_mask_filter(layer):
if not isinstance(layer, QgsVectorLayer):
return False
# check if a layer has already a mask filter enabled
if layer.labeling() is None:
return False
settings = layer.labeling().settings()
try:
if settings.dataDefinedProperties().hasProperty(QgsPalLayerSettings.Show) and \
settings.dataDefinedProperties().property(QgsPalLayerSettings.Show).expressionString().startswith(SPATIAL_FILTER):
# new settings
settings = QgsPalLayerSettings(layer.labeling().settings())
settings.dataDefinedProperties().setProperty(QgsPalLayerSettings.Show, True)
if isinstance(layer.labeling(), QgsVectorLayerSimpleLabeling):
layer.setLabeling(QgsVectorLayerSimpleLabeling(settings))
except Exception as e:
for m in e.args:
QgsMessageLog.logMessage(m, 'Extensions')
开发者ID:aeag,项目名称:mask,代码行数:21,代码来源:mask_filter.py
示例12: checkRepaintLabeledLayerInvalidatesLabelCache
def checkRepaintLabeledLayerInvalidatesLabelCache(self, job_type):
layer = QgsVectorLayer("Point?field=fldtxt:string",
"layer1", "memory")
labelSettings = QgsPalLayerSettings()
labelSettings.fieldName = "fldtxt"
layer.setLabeling(QgsVectorLayerSimpleLabeling(labelSettings))
layer.setLabelsEnabled(True)
settings = QgsMapSettings()
settings.setExtent(QgsRectangle(5, 25, 25, 45))
settings.setOutputSize(QSize(600, 400))
settings.setLayers([layer])
# with cache - first run should populate cache
cache = QgsMapRendererCache()
job = job_type(settings)
job.setCache(cache)
job.start()
job.waitForFinished()
self.assertFalse(job.usedCachedLabels())
self.assertTrue(cache.hasCacheImage('_labels_'))
self.assertTrue(job.takeLabelingResults())
self.assertEqual(cache.dependentLayers('_labels_'), [layer])
# trigger repaint on layer - should invalidate cache and block use of cached labels
layer.triggerRepaint()
self.assertFalse(cache.hasCacheImage('_labels_'))
# second job should not use label cache, since layer was repainted
job = job_type(settings)
job.setCache(cache)
job.start()
job.waitForFinished()
# shouldn't use cache
self.assertFalse(job.usedCachedLabels())
# but results should have been cached
self.assertTrue(cache.hasCacheImage('_labels_'))
self.assertTrue(job.takeLabelingResults())
开发者ID:,项目名称:,代码行数:40,代码来源:
示例13: createLayer
def createLayer(self):
'''Create a memory layer from the zoom to locations'''
rowcnt = self.resultsTable.rowCount()
if rowcnt == 0:
return
attr = []
for item, label in enumerate(LABELS[0:self.numCol]):
label = label.lower()
if item <= 1:
attr.append(QgsField(label, QVariant.Double))
else:
attr.append(QgsField(label, QVariant.String))
ptLayer = QgsVectorLayer("Point?crs=epsg:4326", u"Lat Lon Locations", "memory")
provider = ptLayer.dataProvider()
provider.addAttributes(attr)
ptLayer.updateFields()
for id in range(rowcnt):
item = self.resultsTable.item(id, 0).data(Qt.UserRole)
feature = QgsFeature()
feature.setGeometry(QgsGeometry.fromPointXY(QgsPointXY(item.lon, item.lat)))
attr = [item.lat, item.lon, item.label]
for i in range(3, self.numCol):
attr.append(item.data[i-3])
feature.setAttributes(attr)
provider.addFeatures([feature])
ptLayer.updateExtents()
if self.settings.multiZoomStyleID == 1:
settings = QgsPalLayerSettings()
settings.fieldName = 'label'
settings.placement = QgsPalLayerSettings.AroundPoint
labeling = QgsVectorLayerSimpleLabeling(settings)
ptLayer.setLabeling(labeling)
ptLayer.setLabelsEnabled(True)
elif self.settings.multiZoomStyleID == 2 and os.path.isfile(self.settings.customQMLFile()):
ptLayer.loadNamedStyle(self.settings.customQMLFile())
QgsProject.instance().addMapLayer(ptLayer)
开发者ID:NationalSecurityAgency,项目名称:qgis-latlontools-plugin,代码行数:39,代码来源:multizoom.py
示例14: add_mask_filter
def add_mask_filter(layer):
if not isinstance(layer, QgsVectorLayer):
return False
# check if a layer has already a mask filter enabled
if layer.labeling() is None:
return False
try:
expr = "%s(%d)" % (SPATIAL_FILTER, layer.crs().postgisSrid())
prop = QgsProperty()
prop.setExpressionString(expr)
# new settings
settings = QgsPalLayerSettings(layer.labeling().settings())
settings.dataDefinedProperties().setProperty(QgsPalLayerSettings.Show, prop)
if isinstance(layer.labeling(), QgsVectorLayerSimpleLabeling):
layer.setLabeling(QgsVectorLayerSimpleLabeling(settings))
except Exception as e:
for m in e.args:
QgsMessageLog.logMessage(m, 'Extensions')
开发者ID:aeag,项目名称:mask,代码行数:23,代码来源:mask_filter.py
示例15: defaultLayerSettings
def defaultLayerSettings(self):
lyr = QgsPalLayerSettings()
lyr.enabled = True
lyr.fieldName = 'text' # default in test data sources
font = self.getTestFont()
font.setPointSize(32)
lyr.textFont = font
lyr.textNamedStyle = 'Roman'
lyr.bufferJoinStyle = Qt.BevelJoin # handle change of default join style
return lyr
开发者ID:map0logo,项目名称:QGIS,代码行数:10,代码来源:test_qgspallabeling_base.py
示例16: __init__
def __init__(self):
"""Dummy assignments, intended to be overridden in subclasses"""
self.lyr = QgsPalLayerSettings()
""":type: QgsPalLayerSettings"""
# noinspection PyArgumentList
self._TestFont = QFont() # will become a standard test font
self._Canvas = None
""":type: QgsMapCanvas"""
# custom mismatches per group/test (should not mask any needed anomaly)
# e.g. self._Mismatches['TestClassName'] = 300
# check base output class's checkTest() or sublcasses for any defaults
self._Mismatches = dict()
# custom color tolerances per group/test: 1 - 20 (0 default, 20 max)
# (should not mask any needed anomaly)
# e.g. self._ColorTols['TestClassName'] = 10
# check base output class's checkTest() or sublcasses for any defaults
self._ColorTols = dict()
开发者ID:lyhkop,项目名称:QGIS,代码行数:17,代码来源:test_qgspallabeling_tests.py
示例17: testCreateProperty
def testCreateProperty(self):
s = QgsAuxiliaryStorage()
self.assertTrue(s.isValid())
# Create a new auxiliary layer with 'pk' as key
vl = createLayer()
pkf = vl.fields().field(vl.fields().indexOf('pk'))
al = s.createAuxiliaryLayer(pkf, vl)
self.assertTrue(al.isValid())
vl.setAuxiliaryLayer(al)
# Create a new labeling property on layer without labels
key = QgsPalLayerSettings.PositionX
index = QgsAuxiliaryLayer.createProperty(key, vl)
self.assertEqual(index, -1)
vl.setLabeling(QgsVectorLayerSimpleLabeling(QgsPalLayerSettings()))
index = QgsAuxiliaryLayer.createProperty(key, vl)
p = QgsPalLayerSettings.propertyDefinitions()[key]
afName = QgsAuxiliaryLayer.nameFromProperty(p, True)
afIndex = vl.fields().indexOf(afName)
self.assertEqual(index, afIndex)
开发者ID:,项目名称:,代码行数:23,代码来源:
示例18: checkLabeledLayerWithBlendModesCannotBeCached
def checkLabeledLayerWithBlendModesCannotBeCached(self, job_type):
""" any labeled layer utilising blending modes cannot be cached"""
layer = QgsVectorLayer("Point?field=fldtxt:string",
"layer1", "memory")
labelSettings = QgsPalLayerSettings()
labelSettings.fieldName = "fldtxt"
layer.setLabeling(QgsVectorLayerSimpleLabeling(labelSettings))
layer.setLabelsEnabled(True)
layer2 = QgsVectorLayer("Point?field=fldtxt:string",
"layer2", "memory")
labelSettings2 = QgsPalLayerSettings()
labelSettings2.fieldName = "fldtxt"
format2 = QgsTextFormat()
format2.setBlendMode(QPainter.CompositionMode_SourceIn)
labelSettings2.setFormat(format2)
layer2.setLabeling(QgsVectorLayerSimpleLabeling(labelSettings2))
layer2.setLabelsEnabled(True)
settings = QgsMapSettings()
settings.setExtent(QgsRectangle(5, 25, 25, 45))
settings.setOutputSize(QSize(600, 400))
settings.setLayers([layer, layer2])
# with cache - cache should not be populated!
cache = QgsMapRendererCache()
job = job_type(settings)
job.setCache(cache)
job.start()
job.waitForFinished()
self.assertFalse(job.usedCachedLabels())
self.assertFalse(cache.hasCacheImage('_labels_'))
self.assertTrue(job.takeLabelingResults())
# second job should also not be able to use label cache
job = job_type(settings)
job.setCache(cache)
job.start()
job.waitForFinished()
# shouldn't use cache
self.assertFalse(job.usedCachedLabels())
# and results should not have been cached
self.assertFalse(cache.hasCacheImage('_labels_'))
self.assertTrue(job.takeLabelingResults())
开发者ID:,项目名称:,代码行数:45,代码来源:
示例19: convert2CartoCSS
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
开发者ID:gkudos,项目名称:qgis-cartodb,代码行数:66,代码来源:CreateViz.py
示例20: save_adres_point
def save_adres_point(self, point, address, typeAddress='', layername="Geopunt_adres", saveToFile=False, sender=None, startFolder=None ):
attributes = [QgsField("adres", QVariant.String), QgsField("type", QVariant.String)]
mapcrs = self.getGetMapCrs(self.iface)
if not QgsProject.instance().mapLayer(self.adreslayerid):
self.adreslayer = QgsVectorLayer("Point", layername, "memory")
self.adresProvider = self.adreslayer.dataProvider()
self.adresProvider.addAttributes(attributes)
self.adreslayer.updateFields()
# add a feature
fields= self.adreslayer.fields()
fet = QgsFeature(fields)
#set geometry and project from mapCRS
xform = QgsCoordinateTransform( mapcrs, self.adreslayer.crs(), QgsProject.instance() )
prjPoint = xform.transform( point )
fet.setGeometry(QgsGeometry.fromPointXY(prjPoint))
#populate fields
fet['adres'] = address
fet['type'] = typeAddress
self.adresProvider.addFeatures([ fet ])
""
# update layer's extent when new features have been added
# because change of extent in provider is not propagated to the layer
self.adreslayer.updateExtents()
# save memoryLAYER to file and replace all references
if saveToFile and not QgsProject.instance().mapLayer(self.adreslayerid):
save = self._saveToFile( sender, startFolder )
if save:
fpath, flType = save
error, msg = QgsVectorFileWriter.writeAsVectorFormat(self.adreslayer, fileName=fpath, fileEncoding="utf-8", driverName=flType)
if error == QgsVectorFileWriter.NoError:
self.adreslayer = QgsVectorLayer( fpath, layername, "ogr")
self.adresProvider = self.adreslayer.dataProvider()
else:
del self.adreslayer, self.adresProvider
return
else:
del self.adreslayer, self.adresProvider
return
# add to map
QgsProject.instance().addMapLayer(self.adreslayer)
#labels
text_format = QgsTextFormat()
text_format.setSize(12)
buffer_settings = QgsTextBufferSettings()
buffer_settings.setEnabled(True)
buffer_settings.setSize(1)
buffer_settings.setColor(QColor("white"))
palyr = QgsPalLayerSettings()
text_format.setBuffer(buffer_settings)
palyr.setFormat(text_format)
palyr.enabled = True
palyr.fieldName = 'adres'
palyr.placement = QgsPalLayerSettings.Free
self.adreslayer.setLabelsEnabled(True)
self.adreslayer.setLabeling( QgsVectorLayerSimpleLabeling(palyr) )
# store layer id and refresh
self.adreslayerid = self.adreslayer.id()
self.canvas.refresh()
开发者ID:warrieka,项目名称:geopunt4Qgis,代码行数:69,代码来源:geometry.py
注:本文中的qgis.core.QgsPalLayerSettings类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论