[polygons] When loading polygons from disk/GeoJSON, include holes
This commit is contained in:
@@ -297,7 +297,7 @@ class AddressComponents(object):
|
|||||||
combo = weighted_choice(values, probs)
|
combo = weighted_choice(values, probs)
|
||||||
if combo is not None:
|
if combo is not None:
|
||||||
components = OrderedDict.fromkeys(combo['components']).keys()
|
components = OrderedDict.fromkeys(combo['components']).keys()
|
||||||
if not all((c in address_components and (c in generated_components or self.is_numeric(address_components[c])) for c in components)):
|
if not all((c in address_components and (c in generated_components or address_components[c].isdigit()) for c in components)):
|
||||||
return None
|
return None
|
||||||
|
|
||||||
values = []
|
values = []
|
||||||
|
|||||||
@@ -255,12 +255,13 @@ class PolygonIndex(object):
|
|||||||
def polygon_from_geojson(cls, feature):
|
def polygon_from_geojson(cls, feature):
|
||||||
poly_type = feature['geometry']['type']
|
poly_type = feature['geometry']['type']
|
||||||
if poly_type == 'Polygon':
|
if poly_type == 'Polygon':
|
||||||
poly = cls.to_polygon(feature['geometry']['coordinates'][0])
|
coords = feature['geometry']['coordinates']
|
||||||
|
poly = cls.to_polygon(coords[0], holes=coords[1:] or None)
|
||||||
return poly
|
return poly
|
||||||
elif poly_type == 'MultiPolygon':
|
elif poly_type == 'MultiPolygon':
|
||||||
polys = []
|
polys = []
|
||||||
for coords in feature['geometry']['coordinates']:
|
for coords in feature['geometry']['coordinates']:
|
||||||
poly = cls.to_polygon(coords[0])
|
poly = cls.to_polygon(coords[0], holes=coords[1:] or None)
|
||||||
polys.append(poly)
|
polys.append(poly)
|
||||||
|
|
||||||
return MultiPolygon(polys)
|
return MultiPolygon(polys)
|
||||||
|
|||||||
Reference in New Issue
Block a user