Skip to content

Commit

Permalink
Handle multi geometries (fix #30)
Browse files Browse the repository at this point in the history
  • Loading branch information
Hugo Mercier committed Sep 22, 2017
1 parent 4452d63 commit de5f916
Showing 1 changed file with 15 additions and 4 deletions.
19 changes: 15 additions & 4 deletions gml_application_schema_toolbox/core/load_gml_as_xml.py
Original file line number Diff line number Diff line change
Expand Up @@ -250,12 +250,19 @@ def load_complex_gml(self, xml_uri, is_remote, attributes = {}, geometry_mapping
wkb, srid = g
qgsgeom = QgsGeometry()
qgsgeom.fromWkb(wkb)
if qgsgeom and qgsgeom.type() == QgsWkbTypes.PointGeometry:
print(qgsgeom.wkbType())
if qgsgeom and qgsgeom.wkbType() == QgsWkbTypes.Point:
layer = self._create_layer('point', srid, attr_list, src.title + " (points)")
elif qgsgeom and qgsgeom.type() == QgsWkbTypes.LineGeometry:
elif qgsgeom and qgsgeom.wkbType() == QgsWkbTypes.MultiPoint:
layer = self._create_layer('multipoint', srid, attr_list, src.title + " (points)")
elif qgsgeom and qgsgeom.wkbType() == QgsWkbTypes.LineString:
layer = self._create_layer('linestring', srid, attr_list, src.title + " (lines)")
elif qgsgeom and qgsgeom.type() == QgsWkbTypes.PolygonGeometry:
elif qgsgeom and qgsgeom.wkbType() == QgsWkbTypes.MultiLineString:
layer = self._create_layer('multilinestring', srid, attr_list, src.title + " (lines)")
elif qgsgeom and qgsgeom.wkbType() == QgsWkbTypes.Polygon:
layer = self._create_layer('polygon', srid, attr_list, src.title + " (polygons)")
elif qgsgeom and qgsgeom.wkbType() == QgsWkbTypes.MultiPolygon:
layer = self._create_layer('multipolygon', srid, attr_list, src.title + " (polygons)")

# add metadata
self._add_properties_to_layer(layer, xml_uri, is_remote, attributes, geometry_mapping)
Expand Down Expand Up @@ -366,8 +373,12 @@ def _create_layer(self, type, srid, attributes, title):

if srid:
wkbType = { 'point': ogr.wkbPoint,
'multipoint': ogr.wkbMultiPoint,
'linestring': ogr.wkbLineString,
'polygon': ogr.wkbPolygon }[type]
'multilinestring': ogr.wkbMultiLineString,
'polygon': ogr.wkbPolygon,
'multipolygon': ogr.wkbMultiPolygon
}[type]
srs = osr.SpatialReference()
srs.ImportFromEPSG(int(srid))
else:
Expand Down

0 comments on commit de5f916

Please sign in to comment.