Selon Jukka Rahkonen <[email protected]>: > Even Rouault <even.rouault <at> mines-paris.org> writes: > > > > > Hi, > > > > Following the recent brainstorming with Jukka, I've pushed into trunk a > driver > > to read OpenStreetMap .osm / .pbf files . > > Driver seems to do what it promises. It is super fast in converting POI data > because it is possible to skip the slower layers (lines, polygons and > especially > the tricky multipolygons). Speed with my slow Windows laptop is at least > 300000 > converted POIs per minute. However, select with SQL feels sub-optimal.
Yes, when you use ogr2ogr with explicit layer names, there are optimizations. For example, when you only specify the layer 'points', the OSM driver will not even try to index the nodes into the temporary database because it is not needed. However, as you noticed, there is not yet any optimization when a SQL request is specified. > It is > much faster to convert all the points than select only a part of those. The > error message suggest that ogr2ogr is inspecting the input file more closely > than necessary for this use case: > > ogr2ogr -f "ESRI Shapefile" poitest.shp finland.osm.pbf > -sql "select name, amenity from points where amenity='toilets'" > > ERROR 1: Too many features have accumulated in lines layer. Use > OGR_INTERLEAVED_ > READING=YES mode You can easily transform the above SQL into something equivalent that will benefit from the optimization : ogr2ogr poitest.shp finland.osm.pbf points -select name,amenity -where "amenity='toilets'"" > > -Jukka Rahkonen- > > > > _______________________________________________ > gdal-dev mailing list > [email protected] > http://lists.osgeo.org/mailman/listinfo/gdal-dev > _______________________________________________ gdal-dev mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/gdal-dev
