本文整理匯總了Python中qgis.core.QgsJSONExporter.setPrecision方法的典型用法代碼示例。如果您正苦於以下問題:Python QgsJSONExporter.setPrecision方法的具體用法?Python QgsJSONExporter.setPrecision怎麽用?Python QgsJSONExporter.setPrecision使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類qgis.core.QgsJSONExporter
的用法示例。
在下文中一共展示了QgsJSONExporter.setPrecision方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: testExportFeatureCrs
# 需要導入模塊: from qgis.core import QgsJSONExporter [as 別名]
# 或者: from qgis.core.QgsJSONExporter import setPrecision [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: testJSONExporter
# 需要導入模塊: from qgis.core import QgsJSONExporter [as 別名]
# 或者: from qgis.core.QgsJSONExporter import setPrecision [as 別名]
def testJSONExporter(self):
""" test converting features to GeoJSON """
fields = QgsFields()
fields.append(QgsField("name", QVariant.String))
fields.append(QgsField("cost", QVariant.Double))
fields.append(QgsField("population", QVariant.Int))
feature = QgsFeature(fields, 5)
feature.setGeometry(QgsGeometry(QgsPointV2(5, 6)))
feature.setAttributes(['Valsier Peninsula', 6.8, 198])
exporter = QgsJSONExporter()
expected = """{
"type":"Feature",
"id":5,
"geometry":
{"type": "Point", "coordinates": [5, 6]},
"properties":{
"name":"Valsier Peninsula",
"cost":6.8,
"population":198
}
}"""
self.assertEqual(exporter.exportFeature(feature), expected)
# test with linestring for bbox inclusion
l = QgsLineString()
l.setPoints([QgsPointV2(5, 6), QgsPointV2(15, 16)])
feature.setGeometry(QgsGeometry(QgsLineString(l)))
expected = """{
"type":"Feature",
"id":5,
"bbox":[5, 6, 15, 16],
"geometry":
{"type": "LineString", "coordinates": [ [5, 6], [15, 16]]},
"properties":{
"name":"Valsier Peninsula",
"cost":6.8,
"population":198
}
}"""
self.assertEqual(exporter.exportFeature(feature), expected)
# test that precision is respected
feature.setGeometry(QgsGeometry(QgsPointV2(5.444444444, 6.333333333)))
exporter.setPrecision(3)
self.assertEqual(exporter.precision(), 3)
expected = """{
"type":"Feature",
"id":5,
"geometry":
{"type": "Point", "coordinates": [5.444, 6.333]},
"properties":{
"name":"Valsier Peninsula",
"cost":6.8,
"population":198
}
}"""
self.assertEqual(exporter.exportFeature(feature), expected)
feature.setGeometry(QgsGeometry(QgsPointV2(5, 6)))
exporter.setPrecision(17)
# test that attribute subset is respected
exporter.setAttributes([0, 2])
self.assertEqual(exporter.attributes(), [0, 2])
expected = """{
"type":"Feature",
"id":5,
"geometry":
{"type": "Point", "coordinates": [5, 6]},
"properties":{
"name":"Valsier Peninsula",
"population":198
}
}"""
self.assertEqual(exporter.exportFeature(feature), expected)
exporter.setAttributes([1])
self.assertEqual(exporter.attributes(), [1])
expected = """{
"type":"Feature",
"id":5,
"geometry":
{"type": "Point", "coordinates": [5, 6]},
"properties":{
"cost":6.8
}
}"""
self.assertEqual(exporter.exportFeature(feature), expected)
exporter.setAttributes([])
# text excluding attributes
exporter.setExcludedAttributes([1])
self.assertEqual(exporter.excludedAttributes(), [1])
expected = """{
"type":"Feature",
"id":5,
#.........這裏部分代碼省略.........