本文整理汇总了Python中qgis.core.QgsVectorLayer.id方法的典型用法代码示例。如果您正苦于以下问题:Python QgsVectorLayer.id方法的具体用法?Python QgsVectorLayer.id怎么用?Python QgsVectorLayer.id使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qgis.core.QgsVectorLayer
的用法示例。
在下文中一共展示了QgsVectorLayer.id方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_zip_unzip
# 需要导入模块: from qgis.core import QgsVectorLayer [as 别名]
# 或者: from qgis.core.QgsVectorLayer import id [as 别名]
def test_zip_unzip(self):
tmpDir = QTemporaryDir()
tmpFile = "{}/project.qgz".format(tmpDir.path())
project = QgsProject()
l0 = QgsVectorLayer(os.path.join(TEST_DATA_DIR, "points.shp"), "points", "ogr")
l1 = QgsVectorLayer(os.path.join(TEST_DATA_DIR, "lines.shp"), "lines", "ogr")
project.addMapLayers([l0, l1])
self.assertTrue(project.write(tmpFile))
project2 = QgsProject()
self.assertFalse(project2.isZipped())
self.assertTrue(project2.fileName() == "")
self.assertTrue(project2.read(tmpFile))
self.assertTrue(project2.isZipped())
self.assertTrue(project2.fileName() == tmpFile)
layers = project2.mapLayers()
self.assertEqual(len(layers.keys()), 2)
self.assertTrue(layers[l0.id()].isValid(), True)
self.assertTrue(layers[l1.id()].isValid(), True)
project2.clear()
self.assertFalse(project2.isZipped())
示例2: test_geometryTypes
# 需要导入模块: from qgis.core import QgsVectorLayer [as 别名]
# 或者: from qgis.core.QgsVectorLayer import id [as 别名]
def test_geometryTypes(self):
geo = [(1, "POINT", "(0 0)"),
(2, "LINESTRING", "(0 0,1 0)"),
(3, "POLYGON", "((0 0,1 0,1 1,0 0))"),
(4, "MULTIPOINT", "((1 1))"),
(5, "MULTILINESTRING", "((0 0,1 0),(0 1,1 1))"),
(6, "MULTIPOLYGON", "(((0 0,1 0,1 1,0 0)),((2 2,3 0,3 3,2 2)))")]
for wkb_type, wkt_type, wkt in geo:
l = QgsVectorLayer("%s?crs=epsg:4326" % wkt_type, "m1", "memory", False)
self.assertEqual(l.isValid(), True)
QgsProject.instance().addMapLayer(l)
f1 = QgsFeature(1)
g = QgsGeometry.fromWkt(wkt_type + wkt)
self.assertEqual(g is None, False)
f1.setGeometry(g)
l.dataProvider().addFeatures([f1])
l2 = QgsVectorLayer("?layer_ref=%s" % l.id(), "vtab", "virtual", False)
self.assertEqual(l2.isValid(), True)
self.assertEqual(l2.dataProvider().featureCount(), 1)
self.assertEqual(l2.dataProvider().wkbType(), wkb_type)
QgsProject.instance().removeMapLayer(l.id())
示例3: applySymbology
# 需要导入模块: from qgis.core import QgsVectorLayer [as 别名]
# 或者: from qgis.core.QgsVectorLayer import id [as 别名]
def applySymbology(self):
self.getConnection()
vlayer = qgis.utils.iface.mapCanvas().currentLayer()
if vlayer == None:
return
fields = vlayer.dataProvider().fields()
classField = None
for f in fields:
if f.name() == "classtype":
classField = 'classtype'
elif f.name() == "result":
classField = 'result'
print classField
class_loaded = False
for layer in QgsMapLayerRegistry.instance().mapLayers().values():
if layer.name() == "class":
vlayerClass = layer
class_loaded = True
if not class_loaded:
uriSubClass = QgsDataSourceURI()
uriSubClass.setConnection(self.serverName, "5432", self.database, self.usr , self.pw)
uriSubClass.setDataSource("classification", "class", None, "", "id")
vlayerClass = QgsVectorLayer(uriSubClass.uri(), "class", "postgres")
QgsMapLayerRegistry.instance().addMapLayer(vlayerClass)
for field in fields:
index = vlayer.fieldNameIndex(field.name())
if field.name() == classField:
vlayer.editFormConfig().setWidgetType(index, 'ValueRelation')
vlayer.editFormConfig().setWidgetConfig(index, {'Layer': vlayerClass.id(), 'Key': 'id', 'Value': 'classname'})
useJoin = True
if useJoin:
joinObject = QgsVectorJoinInfo()
joinObject.joinLayerId = vlayerClass.id()
joinObject.joinFieldName = 'id'
joinObject.targetFieldName = classField
joinObject.memoryCache = True
vlayer.addJoin(joinObject)
self.join.append(joinObject)
categories = []
iter = vlayerClass.getFeatures()
for feature in iter:
classname = feature['classname']
color = QColor(feature['red'], feature['green'], feature['blue'])
sym = QgsSymbolV2.defaultSymbol(vlayer.geometryType())
sym.setColor(QColor(color))
category = QgsRendererCategoryV2(classname, sym, classname)
categories.append(category)
field = "class_classname"
renderer = QgsCategorizedSymbolRendererV2(field, categories)
vlayer.setRendererV2(renderer)
qgis.utils.iface.messageBar().pushMessage("Information", "Editor widget set", level = qgis.gui.QgsMessageBar.INFO, duration = 5)
qgis.utils.iface.setActiveLayer(vlayer)
示例4: preview
# 需要导入模块: from qgis.core import QgsVectorLayer [as 别名]
# 或者: from qgis.core.QgsVectorLayer import id [as 别名]
def preview(request, layer_slug):
"""Home page for layers.
:param request: The web request.
:param layer_slug: The layer
"""
layer = get_object_or_404(Layer, slug=layer_slug)
layer_path = os.path.join(
settings.MEDIA_ROOT, 'layers', layer.slug, 'raw')
map_layer = QgsVectorLayer(layer_path, layer.name, 'ogr')
QgsMapLayerRegistry.instance().addMapLayer(map_layer)
layer_uri = tempfile.NamedTemporaryFile(
suffix='.png', prefix='inasafe-web-', dir='/tmp/').name
# create image
image = QImage(QSize(100, 100), QImage.Format_ARGB32_Premultiplied)
# set image's background color
color = QColor(255, 255, 255)
image.fill(color.rgb())
# create painter
p = QPainter()
p.begin(image)
p.setRenderHint(QPainter.Antialiasing)
renderer = QgsMapRenderer()
# set layer set
layers = [map_layer.id()] # add ID of every layer
renderer.setLayerSet(layers)
# set extent
rect = QgsRectangle(renderer.fullExtent())
rect.scale(1.1)
renderer.setExtent(rect)
# set output size
renderer.setOutputSize(image.size(), image.logicalDpiX())
# do the rendering
renderer.render(p)
p.end()
# clean up
registry_list = qgis_layers()
QgsMapLayerRegistry.instance().removeMapLayer(map_layer.id())
print registry_list
# save image
image.save(layer_uri, 'png')
with open(layer_uri, 'rb') as f:
response = HttpResponse(f.read(), content_type='png')
os.remove(layer_uri)
return response
示例5: test_CsvNoGeometry
# 需要导入模块: from qgis.core import QgsVectorLayer [as 别名]
# 或者: from qgis.core.QgsVectorLayer import id [as 别名]
def test_CsvNoGeometry(self):
l1 = QgsVectorLayer(QUrl.fromLocalFile(os.path.join(self.testDataDir, "delimitedtext/test.csv")).toString() + "?type=csv&geomType=none&subsetIndex=no&watchFile=no", "test", "delimitedtext", False)
self.assertEqual(l1.isValid(), True)
QgsProject.instance().addMapLayer(l1)
l2 = QgsVectorLayer("?layer_ref=" + l1.id(), "vtab", "virtual", False)
self.assertEqual(l2.isValid(), True)
QgsProject.instance().removeMapLayer(l1.id())
示例6: TestQgsArrowSymbolLayer
# 需要导入模块: from qgis.core import QgsVectorLayer [as 别名]
# 或者: from qgis.core.QgsVectorLayer import id [as 别名]
class TestQgsArrowSymbolLayer(unittest.TestCase):
def setUp(self):
self.iface = get_iface()
lines_shp = os.path.join(TEST_DATA_DIR, 'lines.shp')
self.lines_layer = QgsVectorLayer(lines_shp, 'Lines', 'ogr')
QgsMapLayerRegistry.instance().addMapLayer(self.lines_layer)
# Create style
sym2 = QgsLineSymbolV2.createSimple({'color': '#fdbf6f'})
self.lines_layer.setRendererV2(QgsSingleSymbolRendererV2(sym2))
self.mapsettings = self.iface.mapCanvas().mapSettings()
self.mapsettings.setOutputSize(QSize(400, 400))
self.mapsettings.setOutputDpi(96)
self.mapsettings.setExtent(QgsRectangle(-113, 28, -91, 40))
self.mapsettings.setBackgroundColor(QColor("white"))
def tearDown(self):
QgsMapLayerRegistry.instance().removeAllMapLayers()
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'))
def test_2(self):
sym = self.lines_layer.rendererV2().symbol()
# double headed
sym_layer = QgsArrowSymbolLayer.create({'arrow_width': '5', 'head_size': '6.5', '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'))
示例7: legend_test
# 需要导入模块: from qgis.core import QgsVectorLayer [as 别名]
# 或者: from qgis.core.QgsVectorLayer import id [as 别名]
def legend_test(self):
self.mAtlasMap.setAtlasDriven(True)
self.mAtlasMap.setAtlasScalingMode(QgsComposerMap.Auto)
self.mAtlasMap.setAtlasMargin(0.10)
# add a point layer
ptLayer = QgsVectorLayer("Point?crs=epsg:4326&field=attr:int(1)&field=label:string(20)", "points", "memory")
pr = ptLayer.dataProvider()
f1 = QgsFeature(1)
f1.initAttributes(2)
f1.setAttribute(0, 1)
f1.setAttribute(1, "Test label 1")
f1.setGeometry(QgsGeometry.fromPoint(QgsPoint(-0.638, 48.954)))
f2 = QgsFeature(2)
f2.initAttributes(2)
f2.setAttribute(0, 2)
f2.setAttribute(1, "Test label 2")
f2.setGeometry(QgsGeometry.fromPoint(QgsPoint(-1.682, 48.550)))
pr.addFeatures([f1, f2])
# categorized symbology
r = QgsCategorizedSymbolRendererV2("attr", [QgsRendererCategoryV2(1, QgsMarkerSymbolV2.createSimple({"color": "255,0,0"}), "red"),
QgsRendererCategoryV2(2, QgsMarkerSymbolV2.createSimple({"color": "0,0,255"}), "blue")])
ptLayer.setRendererV2(r)
QgsMapLayerRegistry.instance().addMapLayer(ptLayer)
# add the point layer to the map settings
layers = self.mapSettings.layers()
layers = [ptLayer.id()] + layers
self.mapSettings.setLayers(layers)
# add a legend
legend = QgsComposerLegend(self.mComposition)
legend.moveBy(200, 100)
# sets the legend filter parameter
legend.setComposerMap(self.mAtlasMap)
legend.setLegendFilterOutAtlas(True)
self.mComposition.addComposerLegend(legend)
self.mAtlas.beginRender()
self.mAtlas.prepareForFeature(0)
self.mLabel1.adjustSizeToText()
checker = QgsCompositionChecker('atlas_legend', self.mComposition)
myTestResult, myMessage = checker.testComposition()
assert myTestResult
self.mAtlas.endRender()
# restore state
self.mapSettings.setLayers([layers[1]])
self.mComposition.removeComposerItem(legend)
QgsMapLayerRegistry.instance().removeMapLayer(ptLayer.id())
示例8: test_QueryUrlEncoding
# 需要导入模块: from qgis.core import QgsVectorLayer [as 别名]
# 或者: from qgis.core.QgsVectorLayer import id [as 别名]
def test_QueryUrlEncoding(self):
l1 = QgsVectorLayer(os.path.join(self.testDataDir, "france_parts.shp"), "france_parts", "ogr", False)
self.assertEqual(l1.isValid(), True)
QgsProject.instance().addMapLayer(l1)
query = toPercent("SELECT * FROM vtab1")
l2 = QgsVectorLayer("?layer_ref=%s&query=%s&uid=ObjectId&nogeometry" % (l1.id(), query), "vtab", "virtual", False)
self.assertEqual(l2.isValid(), True)
QgsProject.instance().removeMapLayer(l1.id())
示例9: test_recursiveLayer
# 需要导入模块: from qgis.core import QgsVectorLayer [as 别名]
# 或者: from qgis.core.QgsVectorLayer import id [as 别名]
def test_recursiveLayer(self):
source = toPercent(os.path.join(self.testDataDir, "france_parts.shp"))
l = QgsVectorLayer("?layer=ogr:%s" % source, "vtab", "virtual", False)
self.assertEqual(l.isValid(), True)
QgsProject.instance().addMapLayer(l)
l2 = QgsVectorLayer("?layer_ref=" + l.id(), "vtab2", "virtual", False)
self.assertEqual(l2.isValid(), True)
QgsProject.instance().removeMapLayer(l.id())
示例10: test_CsvNoGeometry
# 需要导入模块: from qgis.core import QgsVectorLayer [as 别名]
# 或者: from qgis.core.QgsVectorLayer import id [as 别名]
def test_CsvNoGeometry(self):
l1 = QgsVectorLayer( os.path.join(self.testDataDir_, "test.csv") + "?type=csv&geomType=none&subsetIndex=no&watchFile=no", "test", "delimitedtext", False)
self.assertEqual( l1.isValid(), True )
QgsMapLayerRegistry.instance().addMapLayer(l1)
l2 = QgsVectorLayer( "?layer_ref=" + l1.id(), "vtab", "virtual", False )
self.assertEqual(l2.isValid(), True)
print sum([f.id() for f in l2.getFeatures()])
QgsMapLayerRegistry.instance().removeMapLayer(l1.id())
示例11: test_QueryTableName
# 需要导入模块: from qgis.core import QgsVectorLayer [as 别名]
# 或者: from qgis.core.QgsVectorLayer import id [as 别名]
def test_QueryTableName(self):
l1 = QgsVectorLayer(os.path.join(self.testDataDir, "france_parts.shp"), "france_parts", "ogr", False)
self.assertEqual(l1.isValid(), True)
QgsProject.instance().addMapLayer(l1)
query = toPercent("SELECT * FROM vt")
l2 = QgsVectorLayer("?layer_ref=%s:vt&query=%s&uid=ObJeCtId&nogeometry" % (l1.id(), query), "vtab", "virtual", False)
self.assertEqual(l2.isValid(), True)
self.assertEqual(l2.dataProvider().wkbType(), 100) # NoGeometry
QgsProject.instance().removeMapLayer(l1.id())
示例12: test_DynamicGeometry
# 需要导入模块: from qgis.core import QgsVectorLayer [as 别名]
# 或者: from qgis.core.QgsVectorLayer import id [as 别名]
def test_DynamicGeometry(self):
l1 = QgsVectorLayer( os.path.join(self.testDataDir_, "testextpt.txt") + "?type=csv&delimiter=%7C&geomType=none&subsetIndex=no&watchFile=no", "test", "delimitedtext", False)
self.assertEqual( l1.isValid(), True )
QgsMapLayerRegistry.instance().addMapLayer(l1)
query = QUrl.toPercentEncoding("select *,makepoint(x,y) as geom from vtab1")
l2 = QgsVectorLayer( "?layer_ref=%s&query=%s&geometry=geom&uid=id" % (l1.id(),query), "vtab", "virtual", False )
self.assertEqual( l2.isValid(), True )
print sum([f.id() for f in l2.getFeatures()])
QgsMapLayerRegistry.instance().removeMapLayer(l1.id())
示例13: test_recursiveLayer
# 需要导入模块: from qgis.core import QgsVectorLayer [as 别名]
# 或者: from qgis.core.QgsVectorLayer import id [as 别名]
def test_recursiveLayer( self ):
source = QUrl.toPercentEncoding(os.path.join(self.testDataDir_, "france_parts.shp"))
l = QgsVectorLayer("?layer=ogr:%s" % source, "vtab", "virtual", False)
self.assertEqual(l.isValid(), True)
QgsMapLayerRegistry.instance().addMapLayer(l)
l2 = QgsVectorLayer("?layer_ref=" + l.id(), "vtab2", "virtual", False)
self.assertEqual( l2.isValid(), True )
print sum([f.id() for f in l2.getFeatures()])
QgsMapLayerRegistry.instance().removeMapLayer(l.id())
示例14: test_QueryUrlEncoding
# 需要导入模块: from qgis.core import QgsVectorLayer [as 别名]
# 或者: from qgis.core.QgsVectorLayer import id [as 别名]
def test_QueryUrlEncoding( self ):
l1 = QgsVectorLayer( os.path.join(self.testDataDir_, "france_parts.shp"), "france_parts", "ogr", False )
self.assertEqual( l1.isValid(), True )
QgsMapLayerRegistry.instance().addMapLayer(l1)
query = str(QUrl.toPercentEncoding("SELECT * FROM vtab1"))
l2 = QgsVectorLayer("?layer_ref=%s&query=%s&uid=ObjectId&nogeometry" % (l1.id(), query), "vtab", "virtual", False)
self.assertEqual( l2.isValid(), True )
print sum([f.id() for f in l2.getFeatures()])
QgsMapLayerRegistry.instance().removeMapLayer(l1.id())
示例15: test_refLayer
# 需要导入模块: from qgis.core import QgsVectorLayer [as 别名]
# 或者: from qgis.core.QgsVectorLayer import id [as 别名]
def test_refLayer(self):
l1 = QgsVectorLayer(QUrl.fromLocalFile(os.path.join(self.testDataDir, "delimitedtext/test.csv")).toString() + "?type=csv&geomType=none&subsetIndex=no&watchFile=no", "test", "delimitedtext", False)
self.assertEqual(l1.isValid(), True)
QgsProject.instance().addMapLayer(l1)
l2 = QgsVectorLayer("?layer_ref=" + l1.id(), "vtab", "virtual", False)
self.assertEqual(l2.isValid(), True)
# now delete the layer
QgsProject.instance().removeMapLayer(l1.id())
# check that it does not crash
print((sum([f.id() for f in l2.getFeatures()])))