Estoy tratando de convertir un geojson Multipolígono que contiene dos superposición de polígonos a un shapefile, sin embargo me di cuenta de que la forma resultante tiene un área más pequeña. Luego de la inspección es debido a la superposición de polígonos se está convirtiendo en un agujero en el shapefile. Necesito cambiar una configuración o hacer algo diferente para preservar la superposición de polígonos? Estoy usando GDAL 1.10.1 y el siguiente código:
def convert():
data = {
"type": "FeatureCollection",
"features": [
{
"geometry": {
"type": "MultiPolygon", "coordinates": [
[[[-98.7, 49.6], [-98.7, 49.7], [-98.8, 49.7], [-98.8, 49.6], [-98.7, 49.6]]],
[[[-98.74, 49.64], [-98.74, 49.66], [-98.76, 49.66], [-98.76, 49.64], [-98.74, 49.64]]]
]
},
"type": "Feature",
"properties": {}
}
]
}
geometry = []
if (data['type'] == 'FeatureCollection'):
for feature in data['features']:
geom = ogr.CreateGeometryFromJson(json.dumps(feature['geometry']))
print 'Geom Area', geom.GetArea()
geometry.append({
'geometry': geom})
driver = ogr.GetDriverByName("ESRI Shapefile")
srs = osr.SpatialReference()
res = srs.ImportFromEPSG(4326)
print 'Import Res', res
data_source = driver.CreateDataSource('out.shp')
layer = data_source.CreateLayer('shape-layer', srs, ogr.wkbMultiPolygon)
featureDefn = layer.GetLayerDefn()
layerDefn = layer.GetLayerDefn()
for data in geometry:
feature = ogr.Feature(featureDefn)
feature.SetGeometry(data['geometry'])
layer.CreateFeature(feature)
data_source.Destroy()
Visualización de la geojson y que resulta shapefile en QGIS, esto es lo que yo veo:
Inicial Geojson
Resultando Shapefile