[gdal-dev] ogr2ogr - importing gml with more then one value for attribute

Even Rouault even.rouault at mines-paris.org
Thu Jul 3 12:02:32 PDT 2014


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

-- 
Geospatial professional services
http://even.rouault.free.fr/services.html


More information about the gdal-dev mailing list