def test_cant_create_aoi_with_invalid_multipolygon(self): bad_multipolygon = geojson.MultiPolygon([[(2.38, 57.322), (23.194, -20.28), (-120.43, 19.15), (2.38)]]) bad_feature = geojson.Feature(geometry=bad_multipolygon) bad_feature_collection = geojson.FeatureCollection([bad_feature]) # Act / Assert with self.assertRaises(InvalidGeoJson): # Only geometries of type MultiPolygon are valid GridService.merge_to_multi_polygon(geojson.dumps(bad_feature_collection), dissolve=True)
def test_raises_InvalidGeoJson_when_geometry_is_linestring(self): # arrange grid_json = get_canned_json('CHAI-Escuintla-West2.json') grid_dto = GridDTO(grid_json) grid_dto.clip_to_aoi = True # Act / Assert with self.assertRaises(InvalidGeoJson): GridService.merge_to_multi_polygon(grid_dto.area_of_interest, dissolve=True)
def set_project_aoi(self, draft_project_dto: DraftProjectDTO): """ Sets the AOI for the supplied project """ aoi_geojson = geojson.loads(json.dumps(draft_project_dto.area_of_interest)) aoi_geometry = GridService.merge_to_multi_polygon(aoi_geojson, dissolve=True) valid_geojson = geojson.dumps(aoi_geometry) self.geometry = ST_SetSRID(ST_GeomFromGeoJSON(valid_geojson), 4326) self.centroid = ST_Centroid(self.geometry)
def test_feature_collection_multi_polygon_with_zcoord_dissolve(self): # arrange project_json = get_canned_json('canned_kml_project.json') project_dto = DraftProjectDTO(project_json) expected = geojson.loads(json.dumps(get_canned_json('2d_multi_polygon.json'))) aoi_geojson = geojson.loads(json.dumps(project_dto.area_of_interest)) # act result = GridService.merge_to_multi_polygon(aoi_geojson, dissolve=True) # assert self.assertEquals(str(expected), str(result))
def test_feature_collection_to_multi_polygon_nodissolve(self): # arrange grid_json = get_canned_json('test_grid.json') grid_dto = GridDTO(grid_json) expected = geojson.loads(json.dumps(get_canned_json('multi_polygon.json'))) aoi_geojson = geojson.loads(json.dumps(grid_dto.area_of_interest)) # act result = GridService.merge_to_multi_polygon(aoi_geojson, False) # assert self.assertEquals(str(expected), str(result))