本文整理匯總了Python中qgis.core.QgsJSONExporter.setVectorLayer方法的典型用法代碼示例。如果您正苦於以下問題:Python QgsJSONExporter.setVectorLayer方法的具體用法?Python QgsJSONExporter.setVectorLayer怎麽用?Python QgsJSONExporter.setVectorLayer使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類qgis.core.QgsJSONExporter
的用法示例。
在下文中一共展示了QgsJSONExporter.setVectorLayer方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: testExportFeatureCrs
# 需要導入模塊: from qgis.core import QgsJSONExporter [as 別名]
# 或者: from qgis.core.QgsJSONExporter import setVectorLayer [as 別名]
def testExportFeatureCrs(self):
""" Test CRS transform when exporting features """
exporter = QgsJSONExporter()
self.assertFalse(exporter.sourceCrs().isValid())
#test layer
layer = QgsVectorLayer("Point?crs=epsg:3111&field=fldtxt:string",
"parent", "memory")
exporter = QgsJSONExporter(layer)
self.assertTrue(exporter.sourceCrs().isValid())
self.assertEqual(exporter.sourceCrs().authid(), 'EPSG:3111')
exporter.setSourceCrs(QgsCoordinateReferenceSystem(3857, QgsCoordinateReferenceSystem.EpsgCrsId))
self.assertTrue(exporter.sourceCrs().isValid())
self.assertEqual(exporter.sourceCrs().authid(), 'EPSG:3857')
# vector layer CRS should override
exporter.setVectorLayer(layer)
self.assertEqual(exporter.sourceCrs().authid(), 'EPSG:3111')
# test that exported feature is reprojected
feature = QgsFeature(layer.fields(), 5)
feature.setGeometry(QgsGeometry(QgsPointV2(2502577, 2403869)))
feature.setAttributes(['test point'])
# low precision, only need rough coordinate to check and don't want to deal with rounding errors
exporter.setPrecision(1)
expected = """{
"type":"Feature",
"id":5,
"geometry":
{"type": "Point", "coordinates": [145, -37.9]},
"properties":{
"fldtxt":"test point"
}
}"""
self.assertEqual(exporter.exportFeature(feature), expected)
示例2: testExportFeatureRelations
# 需要導入模塊: from qgis.core import QgsJSONExporter [as 別名]
# 或者: from qgis.core.QgsJSONExporter import setVectorLayer [as 別名]
def testExportFeatureRelations(self):
""" Test exporting a feature with relations """
#parent layer
parent = QgsVectorLayer("Point?field=fldtxt:string&field=fldint:integer&field=foreignkey:integer",
"parent", "memory")
pr = parent.dataProvider()
pf1 = QgsFeature()
pf1.setFields(parent.fields())
pf1.setAttributes(["test1", 67, 123])
pf2 = QgsFeature()
pf2.setFields(parent.fields())
pf2.setAttributes(["test2", 68, 124])
assert pr.addFeatures([pf1, pf2])
#child layer
child = QgsVectorLayer(
"Point?field=x:string&field=y:integer&field=z:integer",
"referencedlayer", "memory")
pr = child.dataProvider()
f1 = QgsFeature()
f1.setFields(child.fields())
f1.setAttributes(["foo", 123, 321])
f2 = QgsFeature()
f2.setFields(child.fields())
f2.setAttributes(["bar", 123, 654])
f3 = QgsFeature()
f3.setFields(child.fields())
f3.setAttributes(["foobar", 124, 554])
assert pr.addFeatures([f1, f2, f3])
QgsProject.instance().addMapLayers([child, parent])
rel = QgsRelation()
rel.setRelationId('rel1')
rel.setRelationName('relation one')
rel.setReferencingLayer(child.id())
rel.setReferencedLayer(parent.id())
rel.addFieldPair('y', 'foreignkey')
QgsProject.instance().relationManager().addRelation(rel)
exporter = QgsJSONExporter()
exporter.setVectorLayer(parent)
self.assertEqual(exporter.vectorLayer(), parent)
exporter.setIncludeRelated(True)
self.assertEqual(exporter.includeRelated(), True)
expected = """{
"type":"Feature",
"id":0,
"geometry":null,
"properties":{
"fldtxt":"test1",
"fldint":67,
"foreignkey":123,
"relation one":[{"x":"foo",
"y":123,
"z":321},
{"x":"bar",
"y":123,
"z":654}]
}
}"""
self.assertEqual(exporter.exportFeature(pf1), expected)
expected = """{
"type":"Feature",
"id":0,
"geometry":null,
"properties":{
"fldtxt":"test2",
"fldint":68,
"foreignkey":124,
"relation one":[{"x":"foobar",
"y":124,
"z":554}]
}
}"""
self.assertEqual(exporter.exportFeature(pf2), expected)
# test excluding related attributes
exporter.setIncludeRelated(False)
self.assertEqual(exporter.includeRelated(), False)
expected = """{
"type":"Feature",
"id":0,
"geometry":null,
"properties":{
"fldtxt":"test2",
"fldint":68,
"foreignkey":124
}
}"""
self.assertEqual(exporter.exportFeature(pf2), expected)
# test without vector layer set
exporter.setIncludeRelated(True)
#.........這裏部分代碼省略.........