From 07920b48da9f704f4ea7d5bcbd37e7af69fd0a5a Mon Sep 17 00:00:00 2001 From: Nat Wilson Date: Tue, 6 Sep 2016 22:49:42 +0200 Subject: [PATCH] add Z, M, and ZM suffixes to wkb import --- karta/vector/shp.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/karta/vector/shp.py b/karta/vector/shp.py index 03055f8..f035321 100644 --- a/karta/vector/shp.py +++ b/karta/vector/shp.py @@ -113,24 +113,30 @@ def ogr_read_geometry(geom): if geom is None: return None wkbtype = OGRGEOMTYPES[geom.GetGeometryType()] - if wkbtype in ('Point', 'Point25D', 'NDR', 'XDR'): + if wkbtype in ('Point', 'Point25D', 'PointZ', 'PointM', 'PointZM', + 'NDR', 'XDR'): jsontype = 'Point' pts = geom.GetPoint() - elif wkbtype in ('LineString', 'LineString25D'): + elif wkbtype in ('LineString', 'LineString25D', 'LineStringZ', + 'LineStringM', 'LineStringZM'): jsontype = 'LineString' pts = geom.GetPoints() - elif wkbtype in ('Polygon', 'Polygon25D'): + elif wkbtype in ('Polygon', 'Polygon25D', 'PolygonZ', 'PolygonM', + 'PolygonZM'): jsontype = 'Polygon' pts = ogr_get_polygon_points(geom) - elif wkbtype in ('MultiPoint', 'MultiPoint25D'): + elif wkbtype in ('MultiPoint', 'MultiPoint25D', 'MultiPointZ', + 'MultiPointM', 'MultiPointZM'): jsontype = 'MultiPoint' pts = [geom.GetGeometryRef(i).GetPoints()[0] for i in range(geom.GetGeometryCount())] - elif wkbtype in ('MultiLineString', 'MultiLineString25D'): + elif wkbtype in ('MultiLineString', 'MultiLineString25D', 'MultiLinStringZ', + 'MultiLineStringM', 'MultiLineStringZM'): jsontype = 'MultiLineString' pts = [geom.GetGeometryRef(i).GetPoints() for i in range(geom.GetGeometryCount())] - elif wkbtype in ('MultiPolygon', 'MultiPolygon25D'): + elif wkbtype in ('MultiPolygon', 'MultiPolygon25D', 'MultiPolygonZ', + 'MultiPolygonM', 'MultiPolygonZM'): jsontype = 'MultiPolygon' pts = [ogr_get_polygon_points(geom.GetGeometryRef(i)) for i in range(geom.GetGeometryCount())]