[gdal-dev] ogr2ogr - importing gml with more then one value for attribute
Piotr Pachół
piotrpachol at gmail.com
Thu Jul 3 15:14:19 PDT 2014
Now I understand when I try to import from gml to PostGIS - everything
is OK.
But what I wanted to achieve is import from gml to FileGDB.
I have warning: "Cannot map OGR field type (StringList)"
So with GDB target format it is not possible ?
Piotr
W dniu 2014-07-03 21:02, Even Rouault pisze:
> Le jeudi 03 juillet 2014 15:35:57, Piotr Pachół a écrit :
>> Hello,
>> I have problem using ogr2ogr during import gml file which can have one
>> or more then one value for an attribute e.g.:
>>
>> <gml:featureMember>
>> <id>101</id>
>> <fun>A</fun>
>> <fun>B</fun>
>> .
>> .
>> </gml:featureMember>
>> <gml:featureMember>
>> <id>102</id>
>> <fun>C</fun>
>> .
>> .
>> </gml:featureMember>
>>
>> In above situation ogr2ogr didn't import at all attribute "fun".
> If you use a recent enough version of GDAL, it should work (generally) :
>
> let's say I have poly.gml :
>
> <?xml version="1.0" encoding="utf-8" ?>
> <ogr:FeatureCollection
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="http://ogr.maptools.org/ poly.xsd"
> xmlns:ogr="http://ogr.maptools.org/"
> xmlns:gml="http://www.opengis.net/gml">
> <ogr:featureMember>
> <ogr:poly gml:id="poly.0">
> <ogr:foo>bar</ogr:foo>
> <ogr:foo>baz</ogr:foo>
> </ogr:poly>
> </ogr:featureMember>
> </ogr:FeatureCollection>
>
> $ ogrinfo poly.gml -al
> Had to open data source read-only.
> INFO: Open of `poly.gml'
> using driver `GML' successful.
>
> Layer name: poly
> Geometry: None
> Feature Count: 1
> Layer SRS WKT:
> (unknown)
> gml_id: String (0.0)
> foo: StringList (0.0)
> OGRFeature(poly):0
> gml_id (String) = poly.0
> foo (StringList) = (2:bar,baz)
>
> It creates a field of StringList type.
>
>> May be in this situation it would be better when user can choose one of
>> variant:
>> - import first encountered value of attribute "fun" from each record
>> e.g.: "A",
>> - import all values separated with comma e.g.: "A, B"
>> - ideal solution but difficult: create auxiliary table which keeps all
>> relations one to many e.g.:
>> 101 A
>> 101 B
>> 102 C
>>
>> Regards,
>> Piotr
More information about the gdal-dev
mailing list