* Even Rouault <[email protected]> [2017-11-20 15:59:51 +0100]:
On lundi 20 novembre 2017 15:48:20 CET Nikos Alexandris wrote:* Even Rouault <[email protected]> [2017-11-07 22:37:02 +0100]: >> 2. Is OGR handling well the conversion from .osm to ESRI Shapefiles? > >Yes, but within the limits ot the shapefile, and particularly .dbf format: >limitation to 254 characters for field values, 10 characters for field >names... which are easily violated by OSM extracts. > >Spatialite, GeoPackage, PostGIS etc. would be better choices as output >format> >> 3. What is the way to split "other_tags" in multiple new fields *when* >> knowing exactly which tags are contained and should be obtained? > >Edit osmconf.ini to add in the attributes= settings the tag names you're >interested in. > >Even Dear List, in a custom .ini file, under the [points] layer, an `attributes=` instruction set of values that includes `natural,cave_entrance` (key and value under OSM's Natural key), well extracts for the points layer some existing nodes which bear the tag `natural:cave_entrance`. It is not required, as far as I understand the documentation, to include both the parent key and any values (under it) of interest. Perhaps it may be practical to have the attributes of interest split in a separate column. The command I tested, for example, is: ``` ogr2ogr --config OSM_CONFIG_FILE custom.ini -f SQLite -dsco SPATIALITE=YES -gt 65536 -progress output.sqlite source.osm ``` While this is sufficient for the work I am doing (I can filter `cave_entrance`s out from the `natural` column in the `output.sqlite` file), I wonder why the entries for some nodes correctly bear the string `cave_entrance` in the `natural` column, yet the `cave_entrance` column itself is empty for the same entries.The attributes keyword in osmconf.ini will select OSM tags whose *key* is one of the item specified in attributes. If you want to filter by value, you may add a -where or -sql clause with something like "natural = 'cave_entrance'"
This works! Yet, I can't seem to find an answer on the web, nor a solution by trying. I'd like to perform SQL queries in one go: one querying the points layer and another one the lines layer. This is certainly not a JOIN operation, as far as I understand. And UNION only works in data sourced from the same table/layer. Is it doableto merge an
SELECT * FROM points WHERE ... and an SELECT * FROM lines WHERE ... query? Thank you, Nikos
signature.asc
Description: PGP signature
_______________________________________________ gdal-dev mailing list [email protected] https://lists.osgeo.org/mailman/listinfo/gdal-dev
