def select_area(epsg_code: str, areas_json: [dict], point_json: dict) -> dict: epsg_code = 'epsg:' + epsg_code areas = [ Area(json['name'], Geometry.from_geojson(json['geometry'], epsg_code)) for json in areas_json ] point = Geometry.from_geojson(point_json, epsg_code) selected_area = Model(areas).select_area(point) selected_area.boundary_distance(point) if selected_area is None: return None return { 'selected_area': selected_area.representation(), 'boundary_distance': selected_area.boundary_distance(point) }