Hello everyone, 

I found ! Looking around a solution to my problem, I understand that python 
would be the solution . 

Thanks to the QGis documentation and to those 3 resources : 

- http://nathanw.net/2012/11/10/user-defined-expression-functions-for-qgis/ 
- 
http://www.3liz.com/blog/rldhont/index.php?post/2012/11/06/Op%C3%A9rateurs-spatiaux-dans-les-expressions-de-QGIS
 
- 
http://gis.stackexchange.com/questions/28625/how-to-create-a-polygon-based-on-view-extent-in-qgis-1-8
 

So I created a python script ( userfunctions.py ), which contains a function 
called current_canvas_extent , which returns a Polygon representing the current 
influence of the window. 


[code] 
from qgis.utils import qgsfunction 
from qgis.utils import iface 
from qgis.core import QGis 

@qgsfunction(0, "Python") 
def current_canvas_extent(values, feature, parent): 
""" 
retourne l etendue courante de la carte 
""" 
##extend = QgsGeometry.fromRect( iface.mapCanvas().extent() ) 
##extend = iface.mapCanvas().extent().toString() 
extend = iface.mapCanvas().extent().asWktPolygon() 
return extend 
[/code] 

QGis call the script on start (add the option " - code path \ to \ 
userfunctions.py " ) 

So I now have access to this "variable" inside the expression editor. 
And I can ask QGis restrict the list to the objects intersecting the current 
canvas. 

[code] 
intersects ($ geometry , geomFromWKT ($ current_canvas_extent ) ) 
[/code] 

Thanks a lot for this great software you give us! 


Mathieu BOSSAERT 
-- 
Responsable du système d'information 

Membre de la Fédération des Conservatoires d'espaces naturels 
www.reseau-cen.org 

----- Mail original -----

De: "Mathieu Bossaert (CEN L-R)" <mathieu.bossa...@cenlr.org> 
À: qgis-user@lists.osgeo.org 
Envoyé: Mardi 1 Octobre 2013 11:26:55 
Objet: How to make use of python variables in Qgis filter expression 



Good morning, 

thanks to the new Qgis, I can make a really pratical interface to my postgis 
database. I want to make use of relationnal value in the editing form. 
The table I use to populate the list is a spatial table. 

I would like to restrict the list of available values in the form to the 
objects within the current extent of my map. 

I found an example wich is ok but I would like to make use of a variable 
instead of a fixed extend (GeomFromWKT()). 
The example I tried is here : 
http://www.3liz.com/blog/rldhont/index.php?post/2012/11/06/Spatial-operators-in-QGIS-expression
 

Thanks a lot, 

Mathieu 


-- 
Mathieu BOSSAERT 
Responsable du système d'information 

Membre de la Fédération des Conservatoires d'espaces naturels 
www.reseau-cen.org 


_______________________________________________
Qgis-user mailing list
Qgis-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-user

Reply via email to