Le vendredi 06 juin 2014 08:55:39, Richard Duivenvoorde a écrit : > Hi Devs, > > to me the way qgis handles .osm files seems broken, see: > > http://hub.qgis.org/issues/10000 > > http://hub.qgis.org/issues/10427 > > apparently ogr returns -1 on the number of features, but more important > the feature interator seems broken > > Problems: loading an osm file and viewing the attribute table only shows > 2 records (while all points are shown on the map). > Iterating over the features with python also raises errors. > > Not sure if we should make this a blocker, because I'm not convinced of > the importance of .osm files.
Richard, Jukka pretty much answered rightly the questions in the tickets. The OGR OSM driver is rather tuned to handle multi-gigabyte .osm/.pbf files, and due to the structure of those files, it is impossible to count efficiently the number of features without reading it entirely. Hence -1 returned as the feature count. If you issue an explicit SELECT COUNT(*) FROM, it means that you know what you want, and you're ready to wait for it... And, also related to the structure of the data, the driver is a bit particular in the sense that the iteratation over features with GetNextFeature() might not work if the osm file is of a "sufficient size". See the "Interleaved reading" paragraph of http://www.gdal.org/drv_osm.html. For such cases, it might be interesting to develop a new concept in OGR, a whole dataset feature iterator, that could return features from different layers as soon as they are available. Best regards, Even -- Geospatial professional services http://even.rouault.free.fr/services.html _______________________________________________ Qgis-developer mailing list Qgis-developer@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/qgis-developer