def _get_self_bounds(self): """ Computes the bounds of the object itself (not including it's children) in the form [[lat_min, lon_min], [lat_max, lon_max]] """ if not self.embed: raise ValueError('Cannot compute bounds of non-embedded TopoJSON.') xmin, xmax, ymin, ymax = None, None, None, None for arc in self.data['arcs']: x, y = 0, 0 for dx, dy in arc: x += dx y += dy xmin = none_min(x, xmin) xmax = none_max(x, xmax) ymin = none_min(y, ymin) ymax = none_max(y, ymax) return [ [ self.data['transform']['translate'][1] + self.data['transform']['scale'][1] * ymin, # noqa self.data['transform']['translate'][0] + self.data['transform']['scale'][0] * xmin # noqa ], [ self.data['transform']['translate'][1] + self.data['transform']['scale'][1] * ymax, # noqa self.data['transform']['translate'][0] + self.data['transform']['scale'][0] * xmax # noqa ] ]
def _get_self_bounds(self): """ Computes the bounds of the object itself (not including it's children) in the form [[lat_min, lon_min], [lat_max, lon_max]]. """ if not self.embed: raise ValueError('Cannot compute bounds of non-embedded GeoJSON.') data = json.loads(self.data) if 'features' not in data.keys(): # Catch case when GeoJSON is just a single Feature or a geometry. if not (isinstance(data, dict) and 'geometry' in data.keys()): # Catch case when GeoJSON is just a geometry. data = {'type': 'Feature', 'geometry': data} data = {'type': 'FeatureCollection', 'features': [data]} bounds = [[None, None], [None, None]] for feature in data['features']: for point in iter_points( feature.get('geometry', {}).get('coordinates', {})): # noqa bounds = [ [ none_min(bounds[0][0], point[1]), none_min(bounds[0][1], point[0]), ], [ none_max(bounds[1][0], point[1]), none_max(bounds[1][1], point[0]), ], ] return bounds
def _get_self_bounds(self): """ Computes the bounds of the object itself (not including it's children) in the form [[lat_min, lon_min], [lat_max, lon_max]]. """ if not self.embed: raise ValueError('Cannot compute bounds of non-embedded GeoJSON.') data = json.loads(self.data) if 'features' not in data.keys(): # Catch case when GeoJSON is just a single Feature or a geometry. if not (isinstance(data, dict) and 'geometry' in data.keys()): # Catch case when GeoJSON is just a geometry. data = {'type': 'Feature', 'geometry': data} data = {'type': 'FeatureCollection', 'features': [data]} bounds = [[None, None], [None, None]] for feature in data['features']: for point in iter_points(feature.get('geometry', {}).get('coordinates', {})): # noqa bounds = [ [ none_min(bounds[0][0], point[1]), none_min(bounds[0][1], point[0]), ], [ none_max(bounds[1][0], point[1]), none_max(bounds[1][1], point[0]), ], ] return bounds
def _get_self_bounds(self): """ Computes the bounds of the object itself (not including it's children) in the form [[lat_min, lon_min], [lat_max, lon_max]]. """ if not self.embed: raise ValueError("Cannot compute bounds of non-embedded GeoJSON.") data = json.loads(self.data) if "features" not in data.keys(): # Catch case when GeoJSON is just a single Feature or a geometry. if not (isinstance(data, dict) and "geometry" in data.keys()): # Catch case when GeoJSON is just a geometry. data = {"type": "Feature", "geometry": data} data = {"type": "FeatureCollection", "features": [data]} bounds = [[None, None], [None, None]] for feature in data["features"]: for point in iter_points(feature.get("geometry", {}).get("coordinates", {})): # noqa bounds = [ [none_min(bounds[0][0], point[1]), none_min(bounds[0][1], point[0])], [none_max(bounds[1][0], point[1]), none_max(bounds[1][1], point[0])], ] return bounds
def _get_self_bounds(self): """Computes the bounds of the object itself (not including it's children) in the form [[lat_min, lon_min], [lat_max, lon_max]] """ if not self.embed: raise ValueError('Cannot compute bounds of non-embedded TopoJSON.') xmin, xmax, ymin, ymax = None, None, None, None for arc in self.data['arcs']: x, y = 0, 0 for dx, dy in arc: x += dx y += dy xmin = none_min(x, xmin) xmax = none_max(x, xmax) ymin = none_min(y, ymin) ymax = none_max(y, ymax) return [ [ self.data['transform']['translate'][1] + self.data['transform']['scale'][1] * ymin, # noqa self.data['transform']['translate'][0] + self.data['transform']['scale'][0] * xmin # noqa ], [ self.data['transform']['translate'][1] + self.data['transform']['scale'][1] * ymax, # noqa self.data['transform']['translate'][0] + self.data['transform']['scale'][0] * xmax # noqa ] ]
def _get_self_bounds(self): """ Computes the bounds of the object itself (not including it's children) in the form [[lat_min, lon_min], [lat_max, lon_max]]. """ bounds = [[None, None], [None, None]] for point in self.data: bounds = [ [none_min(bounds[0][0], point[0]), none_min(bounds[0][1], point[1])], [none_max(bounds[1][0], point[0]), none_max(bounds[1][1], point[1])], ] return bounds
def _get_self_bounds(self): """Computes the bounds of the object itself (not including it's children) in the form [[lat_min, lon_min], [lat_max, lon_max]] """ bounds = [[None, None], [None, None]] for point in iter_points(self.data): bounds = [ [ none_min(bounds[0][0], point[0]), none_min(bounds[0][1], point[1]), ], [ none_max(bounds[1][0], point[0]), none_max(bounds[1][1], point[1]), ], ] return bounds