本文整理汇总了Python中qgis.core.QgsFeature.setValid方法的典型用法代码示例。如果您正苦于以下问题:Python QgsFeature.setValid方法的具体用法?Python QgsFeature.setValid怎么用?Python QgsFeature.setValid使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qgis.core.QgsFeature
的用法示例。
在下文中一共展示了QgsFeature.setValid方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: testSettingFeature
# 需要导入模块: from qgis.core import QgsFeature [as 别名]
# 或者: from qgis.core.QgsFeature import setValid [as 别名]
def testSettingFeature(self):
""" test that feature is set when item moves """
a = QgsTextAnnotation()
a.setFrameSizeMm(QSizeF(300 / 3.7795275, 200 / 3.7795275))
a.setFrameOffsetFromReferencePointMm(QPointF(40 / 3.7795275, 50 / 3.7795275))
a.setHasFixedMapPosition(True)
a.setMapPosition(QgsPointXY(12, 34))
a.setMapPositionCrs(QgsCoordinateReferenceSystem(4326))
canvas = QgsMapCanvas()
canvas.setDestinationCrs(QgsCoordinateReferenceSystem(4326))
canvas.setFrameStyle(0)
canvas.resize(600, 400)
canvas.setExtent(QgsRectangle(10, 30, 20, 35))
i = QgsMapCanvasAnnotationItem(a, canvas) # NOQA
layer = QgsVectorLayer("Point?crs=EPSG:4326&field=station:string&field=suburb:string",
'test', "memory")
canvas.setLayers([layer])
f = QgsFeature(layer.fields())
f.setGeometry(QgsGeometry.fromPointXY(QgsPointXY(14, 31)))
f.setValid(True)
f.setAttributes(['hurstbridge', 'somewhere'])
self.assertTrue(layer.dataProvider().addFeatures([f]))
a.setMapLayer(layer)
self.assertFalse(a.associatedFeature().isValid())
a.setMapPosition(QgsPointXY(14, 31))
self.assertTrue(a.associatedFeature().isValid())
self.assertEqual(a.associatedFeature().attributes()[0], 'hurstbridge')
a.setMapPosition(QgsPointXY(17, 31))
self.assertFalse(a.associatedFeature().isValid())
示例2: __make_test_feature
# 需要导入模块: from qgis.core import QgsFeature [as 别名]
# 或者: from qgis.core.QgsFeature import setValid [as 别名]
def __make_test_feature(self, x, y):
f = QgsFeature()
wkt = QgsPoint(x, y).wellKnownText()
geom = QgsGeometry.fromWkt(wkt)
f.setGeometry(geom)
f.setFeatureId(self.test_id)
self.test_id += 1
f.setValid(True)
return f
示例3: testGetFeaturesFidsTests
# 需要导入模块: from qgis.core import QgsFeature [as 别名]
# 或者: from qgis.core.QgsFeature import setValid [as 别名]
def testGetFeaturesFidsTests(self):
fids = [f.id() for f in self.provider.getFeatures()]
self.assertEqual(len(fids), 5)
request = QgsFeatureRequest().setFilterFids([fids[0], fids[2]])
result = set([f.id() for f in self.provider.getFeatures(request)])
all_valid = all(f.isValid() for f in self.provider.getFeatures(request))
expected = set([fids[0], fids[2]])
assert result == expected, "Expected {} and got {} when testing for feature IDs filter".format(expected, result)
self.assertTrue(all_valid)
result = set(
[f.id() for f in self.provider.getFeatures(QgsFeatureRequest().setFilterFids([fids[1], fids[3], fids[4]]))]
)
expected = set([fids[1], fids[3], fids[4]])
assert result == expected, "Expected {} and got {} when testing for feature IDs filter".format(expected, result)
# providers should ignore non-existant fids
result = set(
[
f.id()
for f in self.provider.getFeatures(
QgsFeatureRequest().setFilterFids([-101, fids[1], -102, fids[3], -103, fids[4], -104])
)
]
)
expected = set([fids[1], fids[3], fids[4]])
assert result == expected, "Expected {} and got {} when testing for feature IDs filter".format(expected, result)
result = set([f.id() for f in self.provider.getFeatures(QgsFeatureRequest().setFilterFids([]))])
expected = set([])
assert result == expected, "Expected {} and got {} when testing for feature IDs filter".format(expected, result)
# Rewind mid-way
request = QgsFeatureRequest().setFilterFids([fids[1], fids[3], fids[4]])
feature_it = self.provider.getFeatures(request)
feature = QgsFeature()
feature.setValid(True)
self.assertTrue(feature_it.nextFeature(feature))
self.assertIn(feature.id(), [fids[1], fids[3], fids[4]])
first_feature = feature
self.assertTrue(feature.isValid())
# rewind
self.assertTrue(feature_it.rewind())
self.assertTrue(feature_it.nextFeature(feature))
self.assertEqual(feature.id(), first_feature.id())
self.assertTrue(feature.isValid())
# grab all features
self.assertTrue(feature_it.nextFeature(feature))
self.assertTrue(feature_it.nextFeature(feature))
# none left
self.assertFalse(feature_it.nextFeature(feature))
self.assertFalse(feature.isValid())
示例4: testGetFeaturesFidsTests
# 需要导入模块: from qgis.core import QgsFeature [as 别名]
# 或者: from qgis.core.QgsFeature import setValid [as 别名]
def testGetFeaturesFidsTests(self):
fids = [f.id() for f in self.source.getFeatures()]
self.assertEqual(len(fids), 5)
# empty list = no features
request = QgsFeatureRequest().setFilterFids([])
result = set([f.id() for f in self.source.getFeatures(request)])
self.assertFalse(result)
request = QgsFeatureRequest().setFilterFids([fids[0], fids[2]])
result = set([f.id() for f in self.source.getFeatures(request)])
all_valid = (all(f.isValid() for f in self.source.getFeatures(request)))
expected = set([fids[0], fids[2]])
assert result == expected, 'Expected {} and got {} when testing for feature IDs filter'.format(expected, result)
self.assertTrue(all_valid)
# test that results match QgsFeatureRequest.acceptFeature
for f in self.source.getFeatures():
self.assertEqual(request.acceptFeature(f), f.id() in expected)
result = set([f.id() for f in self.source.getFeatures(QgsFeatureRequest().setFilterFids([fids[1], fids[3], fids[4]]))])
expected = set([fids[1], fids[3], fids[4]])
assert result == expected, 'Expected {} and got {} when testing for feature IDs filter'.format(expected, result)
#sources should ignore non-existent fids
result = set([f.id() for f in self.source.getFeatures(QgsFeatureRequest().setFilterFids([-101, fids[1], -102, fids[3], -103, fids[4], -104]))])
expected = set([fids[1], fids[3], fids[4]])
assert result == expected, 'Expected {} and got {} when testing for feature IDs filter'.format(expected, result)
result = set([f.id() for f in self.source.getFeatures(QgsFeatureRequest().setFilterFids([]))])
expected = set([])
assert result == expected, 'Expected {} and got {} when testing for feature IDs filter'.format(expected, result)
# Rewind mid-way
request = QgsFeatureRequest().setFilterFids([fids[1], fids[3], fids[4]])
feature_it = self.source.getFeatures(request)
feature = QgsFeature()
feature.setValid(True)
self.assertTrue(feature_it.nextFeature(feature))
self.assertIn(feature.id(), [fids[1], fids[3], fids[4]])
first_feature = feature
self.assertTrue(feature.isValid())
# rewind
self.assertTrue(feature_it.rewind())
self.assertTrue(feature_it.nextFeature(feature))
self.assertEqual(feature.id(), first_feature.id())
self.assertTrue(feature.isValid())
# grab all features
self.assertTrue(feature_it.nextFeature(feature))
self.assertTrue(feature_it.nextFeature(feature))
# none left
self.assertFalse(feature_it.nextFeature(feature))
self.assertFalse(feature.isValid())
示例5: test_Validity
# 需要导入模块: from qgis.core import QgsFeature [as 别名]
# 或者: from qgis.core.QgsFeature import setValid [as 别名]
def test_Validity(self):
f = QgsFeature()
self.assertFalse(f.isValid())
f.setGeometry(QgsGeometry())
self.assertTrue(f.isValid())
f.setValid(False)
self.assertFalse(f.isValid())
fields = QgsFields()
field1 = QgsField('my_field')
fields.append(field1)
field2 = QgsField('my_field2')
fields.append(field2)
f.setFields(fields)
f.setAttribute(0, 0)
self.assertTrue(f.isValid())
f.setValid(False)
self.assertFalse(f.isValid())
f.setId(27)
self.assertTrue(f.isValid())
示例6: testGetFeaturesFidTests
# 需要导入模块: from qgis.core import QgsFeature [as 别名]
# 或者: from qgis.core.QgsFeature import setValid [as 别名]
def testGetFeaturesFidTests(self):
fids = [f.id() for f in self.provider.getFeatures()]
assert len(fids) == 5, 'Expected 5 features, got {} instead'.format(len(fids))
for id in fids:
features = [f for f in self.provider.getFeatures(QgsFeatureRequest().setFilterFid(id))]
self.assertEqual(len(features), 1)
feature = features[0]
self.assertTrue(feature.isValid())
result = [feature.id()]
expected = [id]
assert result == expected, 'Expected {} and got {} when testing for feature ID filter'.format(expected, result)
# bad features
it = self.provider.getFeatures(QgsFeatureRequest().setFilterFid(-99999999))
feature = QgsFeature(5)
feature.setValid(False)
self.assertFalse(it.nextFeature(feature))
self.assertFalse(feature.isValid())
示例7: testHtmlAnnotationWithFeature
# 需要导入模块: from qgis.core import QgsFeature [as 别名]
# 或者: from qgis.core.QgsFeature import setValid [as 别名]
def testHtmlAnnotationWithFeature(self):
""" test rendering a html annotation with a feature"""
layer = QgsVectorLayer("Point?crs=EPSG:3111&field=station:string&field=suburb:string",
'test', "memory")
a = QgsHtmlAnnotation()
a.setFrameSize(QSizeF(400, 250))
a.setFrameOffsetFromReferencePoint(QPointF(70, 90))
a.setMapLayer(layer)
html = TEST_DATA_DIR + "/test_html_feature.html"
a.setSourceFile(html)
im = self.renderAnnotation(a, QPointF(20, 30))
self.assertTrue(self.imageCheck('html_nofeature', 'html_nofeature', im))
f = QgsFeature(layer.fields())
f.setValid(True)
f.setAttributes(['hurstbridge', 'somewhere'])
a.setAssociatedFeature(f)
im = self.renderAnnotation(a, QPointF(20, 30))
self.assertTrue(self.imageCheck('html_feature', 'html_feature', im))
示例8: SpatialPairTestCase
# 需要导入模块: from qgis.core import QgsFeature [as 别名]
# 或者: from qgis.core.QgsFeature import setValid [as 别名]
class SpatialPairTestCase(unittest.TestCase):
"""
A SpatialPair is considered to be a binding between a feature
and a descriptor in the form of a data provider. The data
provider describes which columns and data attributes are available
whereas the feature describes how it is presented on a map canvas
"""
def setUp(self):
"""
Creates a mock layer returning a mock provider
"""
self.foo_layer = MockFooLayer()
self.feature = QgsFeature()
self.feature.setGeometry(QgsGeometry.fromPoint(QgsPoint(0, 0)))
self.feature.setValid(True)
def test_fail_no_dataprovider_no_feature(self):
"""
Creation of a spatial pair should fail when the given spatial pair
does not get the proper objects. The test asserts a number of
trivial faults to ensure the test works as expected.
Assertion 1: Tests with None objects
Assertion 2: Tests with integers
Assertion 3: Tests with objects reversed
"""
self.assertRaises(InvalidSpatialPairException, SpatialPair, None, None)
self.assertRaises(InvalidSpatialPairException, SpatialPair, 1, 1)
self.assertRaises(InvalidSpatialPairException, SpatialPair, self.feature, self.foo_layer)
def test_fail_no_feature(self):
"""
Creation of a spatial pair should fail when the given spatial pair
does not get a feature
"""
self.assertRaises(InvalidSpatialPairException, SpatialPair, self.foo_layer, None)
def test_fail_no_data_provider(self):
"""
Creation of a spatial pair should fail when the given spatial pair
does not get a data provider
"""
self.assertRaises(InvalidSpatialPairException, SpatialPair, None, self.feature)
def test_fail_invalid_feature(self):
"""
Creation of a spatial pair should fail when the given spatial pair
does not get a valid feature
"""
self.assertRaises(InvalidSpatialPairException, SpatialPair, self.foo_layer, QgsFeature())
def test_get_layer(self):
"""
A valid spatial pair should return the given layer properly using the
method `layer()'
"""
pair = SpatialPair(self.foo_layer, self.feature)
self.assertEquals(pair.layer(), self.foo_layer)
def test_get_data_provider(self):
"""
A valid spatial pair should return the given data provider properly
by both methods `data_provider' and `dataProvider'. The latter is
implemented for naming conventions of Qt.
"""
pair = SpatialPair(self.foo_layer, self.feature)
self.assertEquals(pair.data_provider(), self.foo_layer.dataProvider())
self.assertEquals(pair.dataProvider(), self.foo_layer.dataProvider())
def test_get_feature(self):
"""
A valid spatial pair should return the given feature properly using
the `feature' method.
"""
pair = SpatialPair(self.foo_layer, self.feature)
self.assertEquals(pair.feature(), self.feature)