Re: [gdal-dev] Problem with OAPIF and numeric id in the data

2021-06-21 Thread Rahkonen Jukka (MML)
Even Rouault   wrote:

>> However, QGIS seems to drop the native fids and generate new ones but that's 
>> another problem to learn to circumvent.
> Hum, I'm afraid it will not be easy. The QGIS WFS / OAPIF provider stores 
> internally the feature id in the 
> internal feature cache but doesn't expose it. The QGIS feature id you get 
> from such layer is a purely 
> synthetical one, and that may change between sessions. Trying to remember 
> about that design choice,
> there are several reasons:
* if the WFS layer is a result of a join operation, there is no unique id
* if we exposed the gml:id (or JSON id) as a regular field, that could cause 
issues for transactional WFS support where you don't want users to modify that 
value

In that case I think we must publish the id two times in the OAPIF service, 
once as the id member and another time as  "landmark_id" or something in the 
feature properties because the id is meaningful for the users. They must be 
able to search by landmark_id and show them on the map.

> That could probably be changed pending some work.

-Jukka-

> Even
-- 
http://www.spatialys.com
My software is free, but my time generally not.
___
gdal-dev mailing list
gdal-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/gdal-dev


Re: [gdal-dev] Problem with OAPIF and numeric id in the data

2021-06-21 Thread Even Rouault
A bit strange message at the end of the debug info but I guess that 
for some reason the features are read twice:
It's due to the reporting of feature count and layer extent. If you just 
want the feature listing, add -nocount -noextent


However, QGIS seems to drop the native fids and generate new ones but 
that’s another problem to learn to circumvent.


Hum, I'm afraid it will not be easy. The QGIS WFS / OAPIF provider 
stores internally the feature id in the internal feature cache but 
doesn't expose it. The QGIS feature id you get from such layer is a 
purely synthetical one, and that may change between sessions. Trying to 
remember about that design choice, there are several reasons:


 * if the WFS layer is a result of a join operation, there is no unique id
 * if we exposed the gml:id (or JSON id) as a regular field, that could
   cause issues for transactional WFS support where you don't want
   users to modify that value

That could probably be changed pending some work.

Even

--
http://www.spatialys.com
My software is free, but my time generally not.

___
gdal-dev mailing list
gdal-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/gdal-dev


Re: [gdal-dev] Problem with OAPIF and numeric id in the data

2021-06-21 Thread Rahkonen Jukka (MML)
Thanks,

I can get a copy of the native OAPIF FID into a normal attribute with

ogrinfo 
OAPIF:https://beta-paikkatieto.maanmittauslaitos.fi/kiinteisto-avoin/features/v1/
 -dialect sqlite -sql "select rowid, * from RajamerkinSijaintitiedot limit 10" 
--debug on

OGRFeature(SELECT):9
  rowid (Integer) = 12425588

A bit strange message at the end of the debug info but I guess that for some 
reason the features are read twice:
SQLite: 20 features read on layer 'SELECT'.
OGR: Unloading VirtualOGR module

I know now well enough how I can get and store the native fids from OAPIF 
service with GDAL command line tools. However, QGIS seems to drop the native 
fids and generate new ones but that's another problem to learn to circumvent.

-Jukka-

Lähettäjä: Even Rouault 
Lähetetty: maanantai 21. kesäkuuta 2021 17.50
Vastaanottaja: Rahkonen Jukka (MML) ; 
'gdal-dev@lists.osgeo.org' 
Aihe: Re: [gdal-dev] Problem with OAPIF and numeric id in the data


Jukka,

https://github.com/OSGeo/gdal/commit/36aa932aba3775f1e6ec825ba39c633442ffa640 
should help

Even
Le 21/06/2021 à 16:01, Rahkonen Jukka (MML) a écrit :
Hi,

With this request

ogrinfo 
OAPIF:https://beta-paikkatieto.maanmittauslaitos.fi/kiinteisto-avoin/features/v1/
 -dialect sqlite -sql "select * from RajamerkinSijaintitiedot limit 10" --debug 
on

ogrinfo does not use the "id" member as feature id nor does is report it as an 
attribute. Id exists in the data in this format
{"type":"FeatureCollection","features":[{"type":"Feature","id":12425552,"properties":{
as can be checked with 
https://beta-paikkatieto.maanmittauslaitos.fi/kiinteisto-avoin/features/v1/collections/RajamerkinSijaintitiedot/items?f=json=10

The service that is used as reference in 
https://gdal.org/drivers/vector/oapif.html is having the id as string
"type" : "Feature","id" : "DENW42AL1000NscuFL",

and in this case ogrinfo does not use "id" ad fid either but at least reads it 
as a normal attribute
ogrinfo -al OAPIF:https://www.ldproxy.nrw.de/rest/services/kataster flurstueck 
--debug on
...
OGRFeature(flurstueck):110
  id (String) = DENW42AL1000NtLGFL


I managed to get the "id" used as fid when converting data from the service at 
maanmittauslaitos.fi into geopackage by using -preserve_fid but for some reason 
today even that does not work for me.

-Jukka Rahkonen-




___

gdal-dev mailing list

gdal-dev@lists.osgeo.org

https://lists.osgeo.org/mailman/listinfo/gdal-dev

--

http://www.spatialys.com

My software is free, but my time generally not.
___
gdal-dev mailing list
gdal-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/gdal-dev


Re: [gdal-dev] Problem with OAPIF and numeric id in the data

2021-06-21 Thread Even Rouault

Jukka,

https://github.com/OSGeo/gdal/commit/36aa932aba3775f1e6ec825ba39c633442ffa640 
should help


Even

Le 21/06/2021 à 16:01, Rahkonen Jukka (MML) a écrit :


Hi,

With this request

ogrinfo 
OAPIF:https://beta-paikkatieto.maanmittauslaitos.fi/kiinteisto-avoin/features/v1/ 
-dialect sqlite -sql "select * from RajamerkinSijaintitiedot limit 10" 
--debug on


ogrinfo does not use the “id” member as feature id nor does is report 
it as an attribute. Id exists in the data in this format


{"type":"FeatureCollection","features":[{"type":"Feature","id":12425552,"properties":{

as can be checked with 
https://beta-paikkatieto.maanmittauslaitos.fi/kiinteisto-avoin/features/v1/collections/RajamerkinSijaintitiedot/items?f=json=10 



The service that is used as reference in 
https://gdal.org/drivers/vector/oapif.html 
 is having the id as string


"type" : "Feature","id" : "DENW42AL1000NscuFL",

and in this case ogrinfo does not use “id” ad fid either but at least 
reads it as a normal attribute
ogrinfo -al OAPIF:https://www.ldproxy.nrw.de/rest/services/kataster 
flurstueck --debug on


…

OGRFeature(flurstueck):110

  id (String) = DENW42AL1000NtLGFL

I managed to get the “id” used as fid when converting data from the 
service at maanmittauslaitos.fi into geopackage by using -preserve_fid 
but for some reason today even that does not work for me.


-Jukka Rahkonen-


___
gdal-dev mailing list
gdal-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/gdal-dev


--
http://www.spatialys.com
My software is free, but my time generally not.

___
gdal-dev mailing list
gdal-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/gdal-dev


[gdal-dev] Problem with OAPIF and numeric id in the data

2021-06-21 Thread Rahkonen Jukka (MML)
Hi,

With this request

ogrinfo 
OAPIF:https://beta-paikkatieto.maanmittauslaitos.fi/kiinteisto-avoin/features/v1/
 -dialect sqlite -sql "select * from RajamerkinSijaintitiedot limit 10" --debug 
on

ogrinfo does not use the "id" member as feature id nor does is report it as an 
attribute. Id exists in the data in this format
{"type":"FeatureCollection","features":[{"type":"Feature","id":12425552,"properties":{
as can be checked with 
https://beta-paikkatieto.maanmittauslaitos.fi/kiinteisto-avoin/features/v1/collections/RajamerkinSijaintitiedot/items?f=json=10

The service that is used as reference in 
https://gdal.org/drivers/vector/oapif.html is having the id as string
"type" : "Feature","id" : "DENW42AL1000NscuFL",

and in this case ogrinfo does not use "id" ad fid either but at least reads it 
as a normal attribute
ogrinfo -al OAPIF:https://www.ldproxy.nrw.de/rest/services/kataster flurstueck 
--debug on
...
OGRFeature(flurstueck):110
  id (String) = DENW42AL1000NtLGFL


I managed to get the "id" used as fid when converting data from the service at 
maanmittauslaitos.fi into geopackage by using -preserve_fid but for some reason 
today even that does not work for me.

-Jukka Rahkonen-

___
gdal-dev mailing list
gdal-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/gdal-dev