* 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 doable
to merge an
SELECT *
FROM points
WHERE ...

and an

SELECT *
FROM lines
WHERE ...

query?

Thank you, Nikos

Attachment: signature.asc
Description: PGP signature

_______________________________________________
gdal-dev mailing list
[email protected]
https://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to