def find_max_coords(self): all_max_bound = [] all_min_bound = [] shape_dict = self.shape_dict for zone_id in shape_dict: zone_shape = shape_dict[zone_id] max_bound_zone = zone_shape.max_bound min_bound_zone = zone_shape.min_bound all_max_bound.append(max_bound_zone) all_min_bound.append(min_bound_zone) map_max_bound, unused_max = Utils.calculate_boundaries(all_max_bound) unused_min, map_min_bound = Utils.calculate_boundaries(all_min_bound) return (map_max_bound, map_min_bound)
def get_shape_coords(self): shape_zone = self.shapefile.shape(self.shape_id) points = [(i[0], i[1]) for i in shape_zone.points] x_center, y_center = Utils.calculate_centroid(points) center = (x_center, y_center) max_bound, min_bound = Utils.calculate_boundaries(points) return (points, center, max_bound, min_bound)
def project_shape_coords(self, projection): shape_zone = self.shapefile.shape(self.shape_id) points = [ projection.apply_projection([i[0], i[1]]) for i in shape_zone.points ] points = [projection.apply_translation([i[0], i[1]]) for i in points] self.points = points x_center, y_center = Utils.calculate_centroid(points) self.center = (x_center, y_center) max_bound, min_bound = Utils.calculate_boundaries(points) self.max_bound = max_bound self.min_bound = min_bound