@@ -113,24 +113,30 @@ def ogr_read_geometry(geom):
113113 if geom is None :
114114 return None
115115 wkbtype = OGRGEOMTYPES [geom .GetGeometryType ()]
116- if wkbtype in ('Point' , 'Point25D' , 'NDR' , 'XDR' ):
116+ if wkbtype in ('Point' , 'Point25D' , 'PointZ' , 'PointM' , 'PointZM' ,
117+ 'NDR' , 'XDR' ):
117118 jsontype = 'Point'
118119 pts = geom .GetPoint ()
119- elif wkbtype in ('LineString' , 'LineString25D' ):
120+ elif wkbtype in ('LineString' , 'LineString25D' , 'LineStringZ' ,
121+ 'LineStringM' , 'LineStringZM' ):
120122 jsontype = 'LineString'
121123 pts = geom .GetPoints ()
122- elif wkbtype in ('Polygon' , 'Polygon25D' ):
124+ elif wkbtype in ('Polygon' , 'Polygon25D' , 'PolygonZ' , 'PolygonM' ,
125+ 'PolygonZM' ):
123126 jsontype = 'Polygon'
124127 pts = ogr_get_polygon_points (geom )
125- elif wkbtype in ('MultiPoint' , 'MultiPoint25D' ):
128+ elif wkbtype in ('MultiPoint' , 'MultiPoint25D' , 'MultiPointZ' ,
129+ 'MultiPointM' , 'MultiPointZM' ):
126130 jsontype = 'MultiPoint'
127131 pts = [geom .GetGeometryRef (i ).GetPoints ()[0 ]
128132 for i in range (geom .GetGeometryCount ())]
129- elif wkbtype in ('MultiLineString' , 'MultiLineString25D' ):
133+ elif wkbtype in ('MultiLineString' , 'MultiLineString25D' , 'MultiLinStringZ' ,
134+ 'MultiLineStringM' , 'MultiLineStringZM' ):
130135 jsontype = 'MultiLineString'
131136 pts = [geom .GetGeometryRef (i ).GetPoints ()
132137 for i in range (geom .GetGeometryCount ())]
133- elif wkbtype in ('MultiPolygon' , 'MultiPolygon25D' ):
138+ elif wkbtype in ('MultiPolygon' , 'MultiPolygon25D' , 'MultiPolygonZ' ,
139+ 'MultiPolygonM' , 'MultiPolygonZM' ):
134140 jsontype = 'MultiPolygon'
135141 pts = [ogr_get_polygon_points (geom .GetGeometryRef (i ))
136142 for i in range (geom .GetGeometryCount ())]
0 commit comments