本文整理汇总了Python中qgis.core.QgsFillSymbolV2类的典型用法代码示例。如果您正苦于以下问题:Python QgsFillSymbolV2类的具体用法?Python QgsFillSymbolV2怎么用?Python QgsFillSymbolV2使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了QgsFillSymbolV2类的19个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: setUp
def setUp(self):
self.iface = get_iface()
myShpFile = os.path.join(TEST_DATA_DIR, 'rectangles.shp')
layer = QgsVectorLayer(myShpFile, 'Points', 'ogr')
QgsMapLayerRegistry.instance().addMapLayer(layer)
# Create rulebased style
sym1 = QgsFillSymbolV2.createSimple({'color': '#fdbf6f'})
sym2 = QgsFillSymbolV2.createSimple({'color': '#71bd6c'})
sym3 = QgsFillSymbolV2.createSimple({'color': '#1f78b4'})
self.r1 = QgsRuleBasedRendererV2.Rule(sym1, 0, 0, '"id" = 1')
self.r2 = QgsRuleBasedRendererV2.Rule(sym2, 0, 0, '"id" = 2')
self.r3 = QgsRuleBasedRendererV2.Rule(sym3, 0, 0, 'ELSE')
self.rootrule = QgsRuleBasedRendererV2.Rule(None)
self.rootrule.appendChild(self.r1)
self.rootrule.appendChild(self.r2)
self.rootrule.appendChild(self.r3)
self.renderer = QgsRuleBasedRendererV2(self.rootrule)
layer.setRendererV2(self.renderer)
self.mapsettings = self.iface.mapCanvas().mapSettings()
self.mapsettings.setOutputSize(QSize(400, 400))
self.mapsettings.setOutputDpi(96)
self.mapsettings.setExtent(QgsRectangle(-163, 22, -70, 52))
rendered_layers = [layer.id()]
self.mapsettings.setLayers(rendered_layers)
开发者ID:AM7000000,项目名称:QGIS,代码行数:29,代码来源:test_qgsrulebasedrenderer.py
示例2: geraMapaBacia
def geraMapaBacia(self, cotrecho, cobacia, dist):
# manda gerar a tabela montante_jusante.area_mont_x na base de dados (x é o código do trecho)
# gera o string sql
string_sql = 'SELECT gera_tabela_topologica(\'area_mont\', ' + str(cotrecho) + ', \'' + cobacia + '\', ' + '{0:.6f}'.format(dist) + ')'
# estabelece uma conexão com a base de dados PostGIS com dados da conexao da camada hidrografia armazenados em self.uri_ex
conn = psycopg2.connect(host=self.uri_ex.host(), port=self.uri_ex.port(), database=self.uri_ex.database(), user=self.uri_ex.username(), password=self.uri_ex.password())
# executa o comando sql, que gera a tabela montante_jusante.area_montante_xxx, onde xxx é o id do trecho
cur = conn.cursor()
cur.execute(string_sql)
# se assegura que as alterações da base de dados foram feitas e fecha o cursor e a conexão
conn.commit()
cur.close()
conn.close()
# seleciona a tabela montante_jusante.area_mont_xxx - coluna geomproj
self.uri.setDataSource('montante_jusante', 'area_mont_' + str(cotrecho) , 'geomproj')
#gera o titulo do mapa
titulo = 'Area a montante de ' + str(cotrecho)
#gera o mapa e acrescenta ao projeto
mapa = QgsVectorLayer(self.uri.uri(), titulo, 'postgres')
if not mapa.isValid():
raise ErroMapaInvalido
QgsMapLayerRegistry.instance().addMapLayer(mapa)
# faz com que a cor das bordas das areas de contribuicao seja a do interior e refresca o mapa
propriedades = mapa.rendererV2().symbol().symbolLayers()[0].properties()
propriedades['outline_color'] = propriedades['color']
mapa.rendererV2().setSymbol(QgsFillSymbolV2.createSimple(propriedades))
开发者ID:flaviolyra,项目名称:wis-framework,代码行数:26,代码来源:ferramenta_montante_jusante_tabela.py
示例3: setUp
def setUp(self):
self.iface = get_iface()
polys_shp = os.path.join(TEST_DATA_DIR, 'polys.shp')
points_shp = os.path.join(TEST_DATA_DIR, 'points.shp')
lines_shp = os.path.join(TEST_DATA_DIR, 'lines.shp')
self.polys_layer = QgsVectorLayer(polys_shp, 'Polygons', 'ogr')
self.points_layer = QgsVectorLayer(points_shp, 'Points', 'ogr')
self.lines_layer = QgsVectorLayer(lines_shp, 'Lines', 'ogr')
QgsMapLayerRegistry.instance().addMapLayer(self.polys_layer)
QgsMapLayerRegistry.instance().addMapLayer(self.lines_layer)
QgsMapLayerRegistry.instance().addMapLayer(self.points_layer)
# Create style
sym1 = QgsFillSymbolV2.createSimple({'color': '#fdbf6f'})
sym2 = QgsLineSymbolV2.createSimple({'color': '#fdbf6f'})
sym3 = QgsMarkerSymbolV2.createSimple({'color': '#fdbf6f'})
self.polys_layer.setRendererV2(QgsSingleSymbolRendererV2(sym1))
self.lines_layer.setRendererV2(QgsSingleSymbolRendererV2(sym2))
self.points_layer.setRendererV2(QgsSingleSymbolRendererV2(sym3))
self.mapsettings = self.iface.mapCanvas().mapSettings()
self.mapsettings.setOutputSize(QSize(400, 400))
self.mapsettings.setOutputDpi(96)
self.mapsettings.setExtent(QgsRectangle(-133, 22, -70, 52))
开发者ID:Naisha634,项目名称:QGIS,代码行数:26,代码来源:test_qgsgeometrygeneratorsymbollayerv2.py
示例4: __init__
def __init__(self, methodName):
"""Run once on class initialization."""
unittest.TestCase.__init__(self, methodName)
self.mapSettings = QgsMapSettings()
# create composition
self.mComposition = QgsComposition(self.mapSettings)
self.mComposition.setPaperSize(297, 210)
# create
polygon = QPolygonF()
polygon.append(QPointF(0.0, 0.0))
polygon.append(QPointF(100.0, 0.0))
polygon.append(QPointF(200.0, 100.0))
polygon.append(QPointF(100.0, 200.0))
self.mComposerPolygon = QgsComposerPolygon(polygon, self.mComposition)
self.mComposition.addComposerPolygon(self.mComposerPolygon)
# style
props = {}
props["color"] = "green"
props["style"] = "solid"
props["style_border"] = "solid"
props["color_border"] = "black"
props["width_border"] = "10.0"
props["joinstyle"] = "miter"
style = QgsFillSymbolV2.createSimple(props)
self.mComposerPolygon.setPolygonStyleSymbol(style)
开发者ID:Clayton-Davis,项目名称:QGIS,代码行数:31,代码来源:test_qgscomposerpolygon.py
示例5: create_qlayer
def create_qlayer(self):
layer=QgsVectorLayer("Polygon"+self.crs,self.prefix+"-cells","memory")
# transparent red, no border
# but this is the wrong class...
symbol = QgsFillSymbolV2.createSimple({'outline_style':'no',
'style':'solid',
'color': '249,0,0,78'})
layer.rendererV2().setSymbol(symbol)
return layer
开发者ID:rustychris,项目名称:umbra,代码行数:9,代码来源:umbra_layer.py
示例6: testSymbolColor
def testSymbolColor(self):
# Create rulebased style
sym1 = QgsFillSymbolV2.createSimple({'color': '#ff0000'})
renderer = QgsSingleSymbolRendererV2(sym1)
renderer.symbols()[0].symbolLayers()[0].setDataDefinedProperty('color', 'set_color_part( @symbol_color, \'value\', "Value" * 4)')
self.layer.setRendererV2(renderer)
# Setup rendering check
renderchecker = QgsMultiRenderChecker()
renderchecker.setMapSettings(self.mapsettings)
renderchecker.setControlName('expected_symbol_color_variable')
result = renderchecker.runTest('symbol_color_variable', 50)
self.assertTrue(result)
开发者ID:dudds6699,项目名称:QGIS,代码行数:15,代码来源:test_qgssymbolexpressionvariables.py
示例7: testPartCount
def testPartCount(self):
# Create rulebased style
sym1 = QgsFillSymbolV2.createSimple({'color': '#fdbf6f'})
renderer = QgsSingleSymbolRendererV2(sym1)
renderer.symbols()[0].symbolLayers()[0].setDataDefinedProperty('color', 'color_rgb( (@geometry_part_count - 1) * 200, 0, 0 )')
self.layer.setRendererV2(renderer)
# Setup rendering check
renderchecker = QgsMultiRenderChecker()
renderchecker.setMapSettings(self.mapsettings)
renderchecker.setControlName('expected_geometry_part_count')
result = renderchecker.runTest('part_geometry_part_count')
self.assertTrue(result)
开发者ID:dudds6699,项目名称:QGIS,代码行数:15,代码来源:test_qgssymbolexpressionvariables.py
示例8: test_2
def test_2(self):
sym = self.lines_layer.rendererV2().symbol()
# double headed
sym_layer = QgsArrowSymbolLayer.create({'arrow_width': '5', 'head_length': '4', 'head_thickness': '6', 'head_type': '2'})
fill_sym = QgsFillSymbolV2.createSimple({'color': '#8bcfff', 'outline_color': '#000000', 'outline_style': 'solid', 'outline_width': '1'})
sym_layer.setSubSymbol(fill_sym)
sym.changeSymbolLayer(0, sym_layer)
rendered_layers = [self.lines_layer.id()]
self.mapsettings.setLayers(rendered_layers)
renderchecker = QgsMultiRenderChecker()
renderchecker.setMapSettings(self.mapsettings)
renderchecker.setControlName('expected_arrowsymbollayer_2')
self.assertTrue(renderchecker.runTest('arrowsymbollayer_2'))
开发者ID:NyakudyaA,项目名称:QGIS,代码行数:15,代码来源:test_qgsarrowsymbollayer.py
示例9: geraMapaBacia
def geraMapaBacia(self, cotrecho, cobacia, dist, id_trecho):
# seleciona a tabela area_contrib_eq - coluna geomproj
self.uri.setDataSource('public', 'area_contrib', 'geomproj')
# gera o string sql
string_sql = '"cotrecho" IN (SELECT * FROM tr_md(\'' + cobacia + '\', ' + '{0:f}'.format(dist) + '))'
self.uri.setSql(string_sql)
#gera o titulo do mapa
titulo = 'Area a montante de ' + str(cotrecho)
#gera o mapa e acrescenta ao projeto
mapa = QgsVectorLayer(self.uri.uri(), titulo, 'postgres')
if not mapa.isValid():
raise ErroMapaInvalido
QgsMapLayerRegistry.instance().addMapLayer(mapa)
# faz com que a cor das bordas das areas de contribuicao seja a do interior e refresca o mapa
propriedades = mapa.rendererV2().symbol().symbolLayers()[0].properties()
propriedades['outline_color'] = propriedades['color']
mapa.rendererV2().setSymbol(QgsFillSymbolV2.createSimple(propriedades))
开发者ID:flaviolyra,项目名称:wis-framework,代码行数:17,代码来源:ferramenta_montante_jusante.py
示例10: setUp
def setUp(self):
myShpFile = os.path.join(TEST_DATA_DIR, 'polys_overlapping.shp')
layer = QgsVectorLayer(myShpFile, 'Polygons', 'ogr')
QgsMapLayerRegistry.instance().addMapLayer(layer)
# Create style
sym1 = QgsFillSymbolV2.createSimple({'color': '#fdbf6f'})
self.renderer = QgsSingleSymbolRendererV2(sym1)
layer.setRendererV2(self.renderer)
self.mapsettings = CANVAS.mapSettings()
self.mapsettings.setOutputSize(QSize(400, 400))
self.mapsettings.setOutputDpi(96)
self.mapsettings.setExtent(QgsRectangle(-133, 22, -70, 52))
rendered_layers = [layer.id()]
self.mapsettings.setLayers(rendered_layers)
开发者ID:supergis,项目名称:QGIS,代码行数:17,代码来源:test_qgsgeometrygeneratorsymbollayerv2.py
示例11: test_3
def test_3(self):
sym = self.lines_layer.rendererV2().symbol()
# double headed
sym_layer = QgsArrowSymbolLayer.create({'arrow_width': '7', 'head_length': '6', 'head_thickness': '8', 'head_type': '0', 'arrow_type': '1', 'is_curved': '0'})
fill_sym = QgsFillSymbolV2.createSimple({'color': '#8bcfff', 'outline_color': '#000000', 'outline_style': 'solid', 'outline_width': '1'})
sym_layer.setSubSymbol(fill_sym)
sym.changeSymbolLayer(0, sym_layer)
rendered_layers = [self.lines_layer.id()]
self.mapsettings.setLayers(rendered_layers)
renderchecker = QgsMultiRenderChecker()
ms = self.mapsettings
ms.setExtent(QgsRectangle(-101, 35, -99, 37))
renderchecker.setMapSettings(ms)
renderchecker.setControlName('expected_arrowsymbollayer_3')
self.assertTrue(renderchecker.runTest('arrowsymbollayer_3'))
开发者ID:NyakudyaA,项目名称:QGIS,代码行数:17,代码来源:test_qgsarrowsymbollayer.py
示例12: test_1
def test_1(self):
sym = self.lines_layer.rendererV2().symbol()
sym_layer = QgsArrowSymbolLayer.create({'head_size': '6.5'})
dd = QgsDataDefined("(@geometry_point_num % 4) * 2")
sym_layer.setDataDefinedProperty("arrow_width", dd)
dd2 = QgsDataDefined("(@geometry_point_num % 4) * 2")
sym_layer.setDataDefinedProperty("head_size", dd2)
fill_sym = QgsFillSymbolV2.createSimple({'color': '#8bcfff', 'outline_color': '#000000', 'outline_style': 'solid', 'outline_width': '1'})
sym_layer.setSubSymbol(fill_sym)
sym.changeSymbolLayer(0, sym_layer)
rendered_layers = [self.lines_layer.id()]
self.mapsettings.setLayers(rendered_layers)
renderchecker = QgsMultiRenderChecker()
renderchecker.setMapSettings(self.mapsettings)
renderchecker.setControlName('expected_arrowsymbollayer_1')
self.assertTrue(renderchecker.runTest('arrowsymbollayer_1'))
开发者ID:PeterTFS,项目名称:QGIS,代码行数:18,代码来源:test_qgsarrowsymbollayer.py
示例13: test_unrepeated
def test_unrepeated(self):
sym = self.lines_layer.rendererV2().symbol()
# double headed
sym_layer = QgsArrowSymbolLayer.create({'arrow_width': '7', 'head_width': '6', 'head_height': '8', 'head_type': '0', 'arrow_type': '0'})
# no repetition
sym_layer.setIsRepeated(False)
fill_sym = QgsFillSymbolV2.createSimple({'color': '#8bcfff', 'outline_color': '#000000', 'outline_style': 'solid', 'outline_width': '1'})
sym_layer.setSubSymbol(fill_sym)
sym.changeSymbolLayer(0, sym_layer)
rendered_layers = [self.lines_layer.id()]
self.mapsettings.setLayers(rendered_layers)
renderchecker = QgsMultiRenderChecker()
ms = self.mapsettings
ms.setExtent(QgsRectangle(-119, 17, -82, 50))
renderchecker.setMapSettings(ms)
renderchecker.setControlName('expected_arrowsymbollayer_4')
self.assertTrue(renderchecker.runTest('arrowsymbollayer_4'))
开发者ID:AM7000000,项目名称:QGIS,代码行数:19,代码来源:test_qgsarrowsymbollayer.py
示例14: setUp
def setUp(self):
# Create some simple symbols
self.fill_symbol = QgsFillSymbolV2.createSimple({"color": "#ffffff"})
self.line_symbol = QgsLineSymbolV2.createSimple({"color": "#ffffff", "line_width": "3"})
self.marker_symbol = QgsMarkerSymbolV2.createSimple({"color": "#ffffff", "size": "3"})
self.report = "<h1>Python QgsSymbolV2 Tests</h1>\n"
开发者ID:Zakui,项目名称:QGIS,代码行数:6,代码来源:test_qgssymbolv2.py
示例15: testCase
def testCase(self):
self.TEST_DATA_DIR = unitTestDataPath()
vectorFileInfo = QFileInfo( self.TEST_DATA_DIR + "/france_parts.shp")
mVectorLayer = QgsVectorLayer( vectorFileInfo.filePath(), vectorFileInfo.completeBaseName(), "ogr" )
QgsMapLayerRegistry.instance().addMapLayers( [mVectorLayer] )
# create composition with composer map
mMapRenderer = QgsMapRenderer()
layerStringList = []
layerStringList.append( mVectorLayer.id() )
mMapRenderer.setLayerSet( layerStringList )
mMapRenderer.setProjectionsEnabled( True )
mMapRenderer.setMapUnits( QGis.Meters )
# select epsg:2154
crs = QgsCoordinateReferenceSystem()
crs.createFromSrid( 2154 )
mMapRenderer.setDestinationCrs( crs )
self.mComposition = QgsComposition( mMapRenderer )
self.mComposition.setPaperSize( 297, 210 )
# fix the renderer, fill with green
props = { "color": "0,127,0" }
fillSymbol = QgsFillSymbolV2.createSimple( props )
renderer = QgsSingleSymbolRendererV2( fillSymbol )
mVectorLayer.setRendererV2( renderer )
# the atlas map
self.mAtlasMap = QgsComposerMap( self.mComposition, 20, 20, 130, 130 )
self.mAtlasMap.setFrameEnabled( True )
self.mComposition.addComposerMap( self.mAtlasMap )
# the atlas
self.mAtlas = self.mComposition.atlasComposition()
self.mAtlas.setCoverageLayer( mVectorLayer )
self.mAtlas.setEnabled( True )
self.mComposition.setAtlasMode( QgsComposition.ExportAtlas )
# an overview
mOverview = QgsComposerMap( self.mComposition, 180, 20, 50, 50 )
mOverview.setFrameEnabled( True )
mOverview.setOverviewFrameMap( self.mAtlasMap.id() )
self.mComposition.addComposerMap( mOverview )
nextent = QgsRectangle( 49670.718, 6415139.086, 699672.519, 7065140.887 )
mOverview.setNewExtent( nextent )
# set the fill symbol of the overview map
props2 = { "color": "127,0,0,127" }
fillSymbol2 = QgsFillSymbolV2.createSimple( props2 )
mOverview.setOverviewFrameMapSymbol( fillSymbol2 )
# header label
self.mLabel1 = QgsComposerLabel( self.mComposition )
self.mComposition.addComposerLabel( self.mLabel1 )
self.mLabel1.setText( "[% \"NAME_1\" %] area" )
self.mLabel1.setFont( QgsFontUtils.getStandardTestFont() )
self.mLabel1.adjustSizeToText()
self.mLabel1.setSceneRect( QRectF( 150, 5, 60, 15 ) )
qWarning( "header label font: %s exactMatch:%s" % ( self.mLabel1.font().toString(), self.mLabel1.font().exactMatch() ) )
# feature number label
self.mLabel2 = QgsComposerLabel( self.mComposition )
self.mComposition.addComposerLabel( self.mLabel2 )
self.mLabel2.setText( "# [%$feature || ' / ' || $numfeatures%]" )
self.mLabel2.setFont( QgsFontUtils.getStandardTestFont() )
self.mLabel2.adjustSizeToText()
self.mLabel2.setSceneRect( QRectF( 150, 200, 60, 15 ) )
qWarning( "feature number label font: %s exactMatch:%s" % ( self.mLabel2.font().toString(), self.mLabel2.font().exactMatch() ) )
self.filename_test()
self.autoscale_render_test()
self.autoscale_render_test_old_api()
self.fixedscale_render_test()
self.predefinedscales_render_test()
self.hidden_render_test()
开发者ID:Ariki,项目名称:QGIS,代码行数:79,代码来源:test_qgsatlascomposition.py
示例16: gen_cl
def gen_cl(color, val, label):
sym = QgsFillSymbolV2.createSimple({})
sym.setColor(QColor(*color))
cat = QgsRendererCategoryV2(val, sym, label)
return cat
开发者ID:aaschwanden,项目名称:qgis-crayfish-plugin,代码行数:5,代码来源:styles.py
示例17: add_source_layers
def add_source_layers(self, sources):
"""
:param list sources:
a list of nrmllib Source Models (e.g. SimpleFaultSource)
"""
source_type = collections.namedtuple(
'SourceType', 'layer_type transform color')
geometries = {
'PointSource': source_type(
'Point', lambda x: x.geometry.wkt, "255,255,255,185"),
'AreaSource': source_type(
'Polygon', lambda x: x.geometry.wkt, '0,255,255,185'),
'SimpleFaultSource': source_type(
'Polygon',
lambda x: simple_surface_from_source(x).wkt,
'0,50,255,185'),
'ComplexFaultSource': source_type(
'MultiPolygon', lambda _: NotImplementedError, '50,50,50,185')}
source_dict = collections.defaultdict(list)
for s in sources:
source_dict[s.__class__.__name__].append(s)
for stype, sources in source_dict.items():
layer = QgsVectorLayer(
'%s?crs=epsg:4326' % (
geometries[stype].layer_type),
stype, 'memory')
QgsMapLayerRegistry.instance().addMapLayer(layer)
pr = layer.dataProvider()
layer.startEditing()
fields = [QgsField("source_id", QVariant.String)]
pr.addAttributes(fields)
qgs_fields = QgsFields()
for field in fields:
qgs_fields.append(field)
features = []
for src in sources:
fet = QgsFeature()
fet.setFields(qgs_fields)
fet['source_id'] = src.id
if stype == 'SimpleFaultSource':
self.sources[src.id] = _nrml_to_hazardlib(src, 1.)
fet.setGeometry(QgsGeometry.fromWkt(
geometries[stype].transform(src)))
features.append(fet)
pr.addFeatures(features)
layer.commitChanges()
layer.updateExtents()
symbol = QgsFillSymbolV2.createSimple(
{'style': 'diagonal_x',
'color': geometries[stype].color,
'style_border': 'solid'})
layer.setRendererV2(QgsSingleSymbolRendererV2(symbol))
self.source_layers[stype] = layer
self.reset_map()
开发者ID:gem,项目名称:qt-experiments,代码行数:64,代码来源:catalogue_map.py
示例18: download
def download(self, url):
# Test if permalink is valid
pattern = r"^(https?:\/\/(\w+[\w\-\.\:\/])+)\?((\&+)?(\w+)\=?([\w\-\.\:\,]+?)?)+(\&+)?$"
if not re.match(pattern, self.url):
raise Exception(u"Le permalien n'est pas valide.")
# Extract params from url
params = parse_qs(urlparse(self.url).query)
# Check mandatory parameters
try:
context = str(params[r"context"][0])
center = params[r"centre"][0]
except:
raise Exception(u"Les paramètres \'Context\' et \'Centre\' sont obligatoires.")
auth_contexts = [r"metropole", r"guadeloupe", r"stmartin",
r"stbarthelemy", r"guyane", r"reunion", r"mayotte"]
# Check if context is valid
if context not in auth_contexts:
raise Exception(u"La valeur \'%s\' est incorrecte.\n\n"
u"\'Context\' doit prentre une des %s valeurs suivantes: "
u"%s" % (context, len(auth_contexts), ", ".join(auth_contexts)))
self.zone = context
if self.zone in [r"guadeloupe", r"stmartin", r"stbarthelemy"]:
self.zone = r"antilles"
# Check if XY are valid
if not re.match(r"^\-?\d+,\-?\d+$", center):
raise Exception(u"Les coordonnées XY du centre sont incorrectes.")
# Extract XY (¢re)
xcenter = int(center.split(r",")[0])
ycenter = int(center.split(r",")[1])
# Compute the bbox
xmin = xcenter - self.conn.extract_lim / 2
xmax = xcenter + self.conn.extract_lim / 2
ymin = ycenter - self.conn.extract_lim / 2
ymax = ycenter + self.conn.extract_lim / 2
# Transform coordinates in WGS84
bbox = tools.reproj(QgsRectangle(xmin, ymin, xmax, ymax), 3857, 4326)
# Extract RFU (Send the request)
resp = self.conn.extraction(bbox.xMinimum(), bbox.yMinimum(),
bbox.xMaximum(), bbox.yMaximum())
if resp.code != 200:
raise Exception(resp.read())
tree = EltTree.fromstring(resp.read())
# Check if error
err = tree.find(r"./erreur")
if err:
raise Exception(err.text)
# Create the layer: "Masque d'extraction"
self.l_bbox = QgsVectorLayer(r"Polygon?crs=epsg:4326&index=yes",
u"Zone de travail", r"memory")
p_bbox = self.l_bbox.dataProvider()
simple_symbol = QgsFillSymbolV2.createSimple({
r"color": r"116,97,87,255",
r"style": r"b_diagonal",
r"outline_style": r"no"})
renderer_bbox = QgsInvertedPolygonRenderer(QgsSingleSymbolRendererV2(simple_symbol))
self.l_bbox.setRendererV2(renderer_bbox)
ft_bbox = QgsFeature()
ft_bbox.setGeometry(QgsGeometry.fromRect(QgsRectangle(bbox.xMinimum(), bbox.yMinimum(),
bbox.xMaximum(), bbox.yMaximum())))
p_bbox.addFeatures([ft_bbox])
self.l_bbox.updateFields()
self.l_bbox.updateExtents()
# Create layers..
self.layers = self.extract_layers(tree)
self.l_vertex = self.layers[0]
self.l_edge = self.layers[1]
# Add layer to the registry
self.map_layer_registry.addMapLayers([self.l_vertex, self.l_edge, self.l_bbox])
# Set the map canvas layer set
self.canvas.setLayerSet([QgsMapCanvasLayer(self.l_vertex),
QgsMapCanvasLayer(self.l_edge),
QgsMapCanvasLayer(self.l_bbox)])
# Set extent
self.canvas.setExtent(QgsRectangle(bbox.xMinimum(), bbox.yMinimum(),
bbox.xMaximum(), bbox.yMaximum()))
#.........这里部分代码省略.........
开发者ID:miquigti,项目名称:GeofoncierEditeurRFU,代码行数:101,代码来源:rfu_connector.py
示例19: aggregate
#.........这里部分代码省略.........
myQGISImpactLayer = safe_to_qgis_layer(theSafeImpactLayer)
if not myQGISImpactLayer.isValid():
myMessage = self.tr('Error when reading %1').arg(myQGISImpactLayer)
# noinspection PyExceptionInherit
raise ReadLayerError(myMessage)
myLayerName = str(self.tr('%1 aggregated to %2').arg(
myQGISImpactLayer.name()).arg(self.layer.name()))
#delete unwanted fields
myProvider = self.layer.dataProvider()
myFields = myProvider.fields()
#mark important attributes as needed
self._setPersistantAttributes()
myUnneededAttributes = []
for i in myFields:
if (myFields[i].name() not in
self.attributes.values()):
myUnneededAttributes.append(i)
LOGGER.debug('Removing this attributes: ' + str(myUnneededAttributes))
# noinspection PyBroadException
try:
self.layer.startEditing()
myProvider.deleteAttributes(myUnneededAttributes)
self.layer.commitChanges()
# FIXME (Ole): Disable pylint check for the moment
# Need to work out what exceptions we will catch here, though.
except: # pylint: disable=W0702
myMessage = self.tr('Could not remove the unneeded fields')
LOGGER.debug(myMessage)
del myUnneededAttributes, myProvider, myFields
self.keywordIO.update_keywords(
self.layer, {'title': myLayerName})
self.statisticsType, self.statisticsClasses = (
self.keywordIO.get_statistics(myQGISImpactLayer))
#call the correct aggregator
if myQGISImpactLayer.type() == QgsMapLayer.VectorLayer:
self._aggregateVectorImpact(myQGISImpactLayer, theSafeImpactLayer)
elif myQGISImpactLayer.type() == QgsMapLayer.RasterLayer:
self._aggregateRasterImpact(myQGISImpactLayer)
else:
myMessage = self.tr('%1 is %2 but it should be either vector or '
'raster').\
arg(myQGISImpactLayer.name()).arg(myQGISImpactLayer.type())
# noinspection PyExceptionInherit
raise ReadLayerError(myMessage)
# show a styled aggregation layer
if self.showIntermediateLayers:
if self.statisticsType == 'sum':
#style layer if we are summing
myProvider = self.layer.dataProvider()
myAttr = self._sumFieldName()
myAttrIndex = myProvider.fieldNameIndex(myAttr)
myProvider.select([myAttrIndex], QgsRectangle(), False)
myFeature = QgsFeature()
myHighestVal = 0
while myProvider.nextFeature(myFeature):
myAttrMap = myFeature.attributeMap()
myVal, ok = myAttrMap[myAttrIndex].toInt()
if ok and myVal > myHighestVal:
myHighestVal = myVal
myClasses = []
myColors = ['#fecc5c', '#fd8d3c', '#f31a1c']
myStep = int(myHighestVal / len(myColors))
myCounter = 0
for myColor in myColors:
myMin = myCounter
myCounter += myStep
myMax = myCounter
myClasses.append(
{'min': myMin,
'max': myMax,
'colour': myColor,
'transparency': 30,
'label': '%s - %s' % (myMin, myMax)})
myCounter += 1
myStyle = {'target_field': myAttr,
'style_classes': myClasses}
set_vector_graduated_style(self.layer, myStyle)
else:
#make style of layer pretty much invisible
myProps = {'style': 'no',
'color_border': '0,0,0,127',
'width_border': '0.0'
}
# noinspection PyCallByClass,PyTypeChecker,PyArgumentList
mySymbol = QgsFillSymbolV2.createSimple(myProps)
myRenderer = QgsSingleSymbolRendererV2(mySymbol)
self.layer.setRendererV2(myRenderer)
self.layer.saveDefaultStyle()
开发者ID:gsuhartono,项目名称:inasafe,代码行数:101,代码来源:aggregator.py
注:本文中的qgis.core.QgsFillSymbolV2类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论