diff --git a/hub/helpers/geometry_helper.py b/hub/helpers/geometry_helper.py index fc9d6a7a..d650eefd 100644 --- a/hub/helpers/geometry_helper.py +++ b/hub/helpers/geometry_helper.py @@ -64,15 +64,25 @@ class GeometryHelper: @staticmethod def city_mapping(city, building_names=None, plot=False): + """ + Returns a shared_information dictionary like + + { + "building_name" : [{line: 0 coordinate_1: [x,y,z], coordinate_2:[x, y, z], points: 0}] + } + """ + shared_information = {} if building_names is None: building_names = [b.name for b in city.buildings] x = int((city.upper_corner[0] - city.lower_corner[0]) * 0.5) + 1 y = int((city.upper_corner[1] - city.lower_corner[1]) * 0.5) + 1 - city_map = [['' for _ in range(y + 1)] for _ in range(x + 1)] + city_map = [[{} for _ in range(y + 1)] for _ in range(x + 1)] img = Image.new('RGB', (x + 1, y + 1), "black") # create a new black image city_image = img.load() # create the pixel map for building_name in building_names: building = city.city_object(building_name) + shared_information[building_name]: [] + line = 0 for ground in building.grounds: length = len(ground.perimeter_polygon.coordinates) - 1 for i, coordinate in enumerate(ground.perimeter_polygon.coordinates): @@ -80,6 +90,8 @@ class GeometryHelper: if i == length: j = 0 next_coordinate = ground.perimeter_polygon.coordinates[j] + line_dictionary = {"line": line, "coordinate_1": coordinate, "coordinate_2":next_coordinate, "points": 0} + print(line_dictionary) point = GeometryHelper.coordinate_to_map_point(coordinate, city) distance = GeometryHelper.distance_between_points(coordinate, next_coordinate) if distance == 0: @@ -102,6 +114,7 @@ class GeometryHelper: neighbour.neighbours = [building] elif building not in neighbour.neighbours: neighbour.neighbours.append(building) + line += 1 if plot: img.show()