[Qgis-user] Programmatically extract WMS data based on point layer?

Richard Duivenvoorde rdmailings at duif.net
Mon Oct 19 05:07:24 PDT 2020


Hi Jorge, Bernd,

I thought to play with that, but ...

although I get a valid result, I cannot get to the actual features in python:

TypeError: unable to convert a C++ 'QgsFeatureStoreList' instance to a Python object

So I'm not sure if you could (currently) easily come to the actual feature...


What I did (working with a national buildings WMS, and a (to me) known valid x,y,width/height etc:

l=qgis.utils.iface.addRasterLayer(
"crs=EPSG:28992&layers=Bebouwingvlak&styles=&format=image/png&url=https://geodata.nationaalgeoregister.nl/kadastralekaart/wms/v4_0?", # uri
"buildings", # name for layer (as seen in QGIS)
"wms" # dataprovider key
)

result = l.dataProvider().identify( QgsPointXY(104606,490213), 
             QgsRaster.IdentifyFormatFeature, 
             QgsRectangle(104391.1406077263819,490161.0749502293766,104899.6563292678911,490283.3410253541078),
             1465,
             352,
             96)
print(result.isValid()) # prints True
print(result.results())
# prints TypeError: unable to convert a C++ 'QgsFeatureStoreList' instance to a Python object

Regards,

Richard Duivenvoorde

PS @Bernd: you are sure there is no WFS running there (if it is a Geoserver instance, it often has (silently) also a WFS....)?

On 10/19/20 1:36 PM, Jorge Gustavo Rocha wrote:
> Hi Bernd,
> 
> Try rlayer.dataProvider().identify()
> 
> Checks the docs at https://docs.qgis.org/3.10/en/docs/pyqgis_developer_cookbook/raster.html#query-values
> 
> Good luck,
> 
> Jorge
> 
> Às 12:25 de 19/10/20, Bernd Vogelgesang escreveu:
>> Hi there,
>>
>> unfortunately I am provided with data only in form of a WMS layer
>> representing areas as polygons.
>> These areas match with the cadastral boundaries.
>> I am looking for a way how to hand over the data from the WMS to my
>> cadastral units to be able to really work with these informations.
>>
>> I created a "Point on surface" layer of the cadastre.
>> Is there any pythonic or other way to "mimic" the "Identify features"
>> click on that layer with the coordinates of those points and store the
>> results?
>>
>> I assume, that each click is a server request, so running these (in my
>> case) 8000 "cĺicks" should not be sent in a millisecond, but with some
>> pause.
>> It doesn't really matter how long this takes, cause it only has to be
>> done once and would be in any case faster than manually clicking and
>> noting the data.
>>
>> Obviously, this is not what the provider of the data intends, but it's
>> like an act of self-defence against a stubborn and bureaucratic
>> administration.
>> So, data rebels, come to help please ;)
>>
>> Cheers,
>>
>> Bernd
>>
>> _______________________________________________
>> Qgis-user mailing list
>> Qgis-user at lists.osgeo.org
>> List info: https://lists.osgeo.org/mailman/listinfo/qgis-user
>> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-user
> -- 
> Email Signature
> Logo <https://www.geomaster.pt> 	
> *Geomaster*
> *Jorge Gustavo Rocha* | Software Engineer
> *e:*jgr at geomaster.pt | *m:*+351 910 333 888
> *g:*41.54094,-8.40490 | *v: *510 906 109
> *a: * Rua António Cândido Pinto, 67, 4715-400 Braga
> 
> 
> _______________________________________________
> Qgis-user mailing list
> Qgis-user at lists.osgeo.org
> List info: https://lists.osgeo.org/mailman/listinfo/qgis-user
> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-user
> 



More information about the Qgis-user mailing list