# -*- coding: utf-8 -*- | |
""" | |
/*************************************************************************** | |
WMS Catasto Agenzia delle Entrate CC BY 4.0 | |
------------------- | |
copyright : (C) 2020 by Giulio Fattori | |
email : giulio.fattori@tin.it | |
***************************************************************************/ | |
""" | |
from qgis.core import * | |
from qgis.gui import * | |
import requests | |
@qgsfunction(args='auto', group='Custom') | |
def get_parcel_info2(xx, yy, EPSG, feature, parent): | |
""" | |
<h1>WMS Catasto Agenzia delle Entrate CC BY 4.0:</h1><br> | |
La funzione, tramite una richiesta GetFeatureInfo, restituisce le informazioni utili sulla particella che ricade sotto il pixel di mio interesse: | |
<h2>Esempio:</h2> | |
<ul> | |
<li>get_parcel_info(355461.5,4222490.7,'EPSG:3045') -> 'IT.AGE.PLA.G273_0033A0.673'</li> | |
<li>get_parcel_info("fieldX", "fieldY",'EPSG:3045') -> 'IT.AGE.PLA.G273_0033A0.673'</li> | |
<li>get_parcel_info("fieldX", "fieldY",@project_crs) -> 'IT.AGE.PLA.G273_0033A0.673'</li> | |
</ul> | |
<h2>NB: le coordinate X e Y devono essere espresse nel EPSG utilizzato (gli EPSG disponibili sono:6706,4258,25832/3/4,3044/5/6)</h2> | |
""" | |
req = "https://wms.cartografia.agenziaentrate.gov.it/inspire/wms/ows01.php?REQUEST=GetFeatureInfo&SERVICE=WMS&SRS="+EPSG+"&STYLES=&VERSION=1.1&FORMAT=image/png&BBOX="+str(xx-1)+","+str(yy-1)+","+str(xx+1)+","+str(yy+1)+"&HEIGHT=9&WIDTH=9&LAYERS=CP.CadastralParcel&QUERY_LAYERS=CP.CadastralParcel&INFO_FORMAT=text/html&X=5&Y=5" | |
r = requests.get(req, auth=('user', 'pass')) | |
a = r.text.partition("InspireId localId</th><td>")[2] | |
b = a.partition("</td>")[0] | |
return b |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This comment has been minimized.
Creare un vettore puntuale, per esempio in un GeoPackage e definire solo il campo fid, gli altri campi li definiamo come
campi virtuali
, ecco le definizioni:x($geometry)
y($geometry)
get_parcel_info( "x" , "y" )
regexp_replace( "catasto" ,'^(.+)\\.(.+)\\.(.+)\\.(.+)_(.+)\\.(.+)$', '\\4')
regexp_replace( "catasto" ,'^(.+)\\.(.+)\\.(.+)\\.(.+)_(.+)\\.(.+)$', '\\5')
regexp_replace( "catasto" ,'^(.+)\\.(.+)\\.(.+)\\.(.+)_(.+)\\.(.+)$', '\\6')
EDIT
IT.AGE.PLA.G273_011800.485
caso senza sezioneIT.AGE.PLA.B354A0018V0.2261
caso con sezioneAlcuni comuni presentano delle sezioni e quindi la stringa estratta da
get_parcel_info()
puo' variare, per tenere conto di questi casi occorre utilizzare le seguenti espressioni:Video demo:
Corsi su QGIS
Se lo trovi utile dona : https://www.paypal.com/paypalme/pigrecoinfinito