เอ็นจิ้นการแสดงออก QGIS สามารถทำได้โดยใช้QgsFeatureRequest.setFilterExpression( unicode )
วิธีการ (ตั้งแต่ QGIS 2.2)
request = QgsFeatureRequest().setFilterExpression( u'"Counties" = \'Norwich\'' )
it = l.getFeatures( request )
การเริ่มต้นด้วย QGIS 2.10 เป็นไปได้ที่การกรองด้วยวิธีนี้จะให้ประสิทธิภาพที่เหนือกว่าการกรองประเภทอื่น (เช่นการใช้งานของงูใหญ่)
โดยพื้นฐานแล้วจะมีผลบังคับใช้หากตรงตามเงื่อนไขสามข้อต่อไปนี้:
คุณกำลังใช้เลเยอร์กับผู้ให้บริการ postgisในขณะนี้ (2.16) มากกว่าผู้ให้บริการ postgis ใช้สิ่งนี้ (spatialite, ogr, oracle ... )
- การแสดงออกของคุณไม่ได้มีความซับซ้อนมากเกินไป (สิ่งที่ชอบ
>
, =
, IN
, NOT NULL
... ได้รับการสนับสนุน)
- คุณได้เปิดใช้งานคุณลักษณะนี้ในการตั้งค่า> ตัวเลือก> แหล่งข้อมูล> การจัดการแหล่งข้อมูล> ดำเนินการนิพจน์บน postgres ฝั่งเซิร์ฟเวอร์
- ประโยชน์ด้านประสิทธิภาพนั้นเหมาะสมที่สุดกับดัชนีที่เหมาะสมบนตารางฐานข้อมูล
ด้วย QGIS 3.0 คุณสามารถทำได้ง่ายๆ
features = l.getFeatures('"Counties" = \'Norwicth\'')