Hi Richard,

This is not related with Bernd's problem, but I think you found a bug.
Thanks for testing.

If you change QgsRaster.IdentifyFormatFeature to IdentifyFormatHtml or
IdentifyFormatText you get a valid result.

result = l.dataProvider().identify( QgsPointXY(146153.5,456404.4),
             QgsRaster.IdentifyFormatHtml )            
print(result.isValid())
print(result.results()[0])

You will get:

<body>
    <table class="featureInfo">
        <caption class="featureInfo">Bebouwing</caption>
        <tr>
            <th>objectBeginTijd</th>
            <th>LV-publicatiedatum</th>
            <th>relatieveHoogteligging</th>
            <th>inOnderzoek</th>
            <th>tijdstipRegistratie</th>
            <th>identificatieNamespace</th>
            <th>identificatieLokaalID</th>
            <th>bronhouder</th>
            <th>bgt-status</th>
            <th>plus-status</th>
            <th>identificatieBAGPND</th>
        </tr>
        <tr>
            <td>2016-08-22</td>
            <td>2017-03-11T17:14:11</td>
            <td>0</td>
            <td>false</td>
            <td>2016-08-22T15:38:22.000</td>
            <td>NL.IMGeo</td>
            <td>G0355.43ae8cce36d745a199bf13faf157fe74</td>
            <td>G0355</td>
            <td>bestaand</td>
            <td>geenWaarde</td>
            <td>0355100000721710</td>
        </tr>
    </table>
    <br/>
</body>

For some reason, the identify() is not creating the result set properly
with the format QgsRaster.IdentifyFormatFeature.

It seems like a bug, according to the documentation [1]. It is working
on the GUI. The results are properly collected by QGIS from the remote
WMS and displayed in the info panel.

Let's see if some else has trouble using this API call.

Regards,

Jorge

[1]
https://qgis.org/pyqgis/master/core/QgsRasterIdentifyResult.html#qgis.core.QgsRasterIdentifyResult.results


Às 13:07 de 19/10/20, Richard Duivenvoorde escreveu:
> 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@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:*j...@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@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:*j...@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@lists.osgeo.org
List info: https://lists.osgeo.org/mailman/listinfo/qgis-user
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-user

Reply via email to