From 8f7fcb88674c0ebe0cc920af8daf9c7931d93ffe Mon Sep 17 00:00:00 2001 From: Eric Duminil <eric.duminil@gmail.com> Date: Tue, 20 Mar 2018 11:24:48 +0100 Subject: [PATCH] RegionChooser: Message when extract Citygml fails. New test. --- .../website/script/simstadt_openlayers.js | 14 +++++++++----- .../regionchooser/RegionExtractorTests.java | 11 +++++++++++ 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/eu/simstadt/regionchooser/website/script/simstadt_openlayers.js b/src/eu/simstadt/regionchooser/website/script/simstadt_openlayers.js index ad41b79..f6710d6 100644 --- a/src/eu/simstadt/regionchooser/website/script/simstadt_openlayers.js +++ b/src/eu/simstadt/regionchooser/website/script/simstadt_openlayers.js @@ -231,7 +231,7 @@ proj4.defs("EPSG:28992", "+proj=sterea +lat_0=52.15616055555555 +lon_0=5.3876388 features_and_intersections = features.map(f=> [f, findIntersection(f,polygon)]).filter(l => l[1] !== undefined); if (features_and_intersections.length > 0){ intersection_found = true; - dataPanel.append("<h2>" + project); + dataPanel.append("<h2 class='info'>" + project); features_and_intersections.forEach(l => showLinkToDownload(l[0], l[1], polygonArea)); } }); @@ -256,13 +256,17 @@ proj4.defs("EPSG:28992", "+proj=sterea +lat_0=52.15616055555555 +lon_0=5.3876388 if (proj4.defs(srsName)){ $("html").addClass("wait"); console.log("Selected region is written in " + srsName + " coordinate system."); - fxapp.downloadRegionFromCityGML(sketchAsWKT(srsName), feature.get("project"), feature.get("name"), srsName); + try { + fxapp.downloadRegionFromCityGML(sketchAsWKT(srsName), feature.get("project"), feature.get("name"), srsName); + dataPanel.append("<h2 class='ok'>Done!</h2><br/>\n"); + } catch (e) { + dataPanel.append("<h2 class='error'>Some problem occured!</h2><br/>\n"); + } var end = new Date().getTime(); var time = end - start; console.log('Download Execution time: ' + (time / 1000).toFixed(3) + 's'); setTimeout(function() { $("html").removeClass("wait"); - dataPanel.append("Done<br/>\n"); }, 100); } else { var msg = "ERROR : Unknown coordinate system : \"" + srsName + "\". Cannot extract any region"; @@ -290,7 +294,7 @@ proj4.defs("EPSG:28992", "+proj=sterea +lat_0=52.15616055555555 +lon_0=5.3876388 dataPanel.append("WGS84 Coordinates<br/>"); dataPanel.append(wgs84_coords + "<br/>\n"); } - dataPanel.append("<h3>Area : " + (area / 10000).toFixed(1) + " ha<br/><br/>\n"); + dataPanel.append("<h3 class='clean'>Area : " + (area / 10000).toFixed(1) + " ha\n"); findIntersections(); } @@ -382,7 +386,7 @@ proj4.defs("EPSG:28992", "+proj=sterea +lat_0=52.15616055555555 +lon_0=5.3876388 function displayHelp(){ dataPanel.empty(); - dataPanel.append("Welcome to Region Chooser!<br><br>\n"); + dataPanel.append("<h2 class='info'>Welcome to Region Chooser!<br><br>\n"); dataPanel.append("You can draw a polygon on the map by clicking.<br>\n"); dataPanel.append("You can add a new point to an existing edge by clicking and dragging.<br>\n"); dataPanel.append("You can remove a point with SHIFT + clicking.<br>\n"); diff --git a/test/eu/simstadt/regionchooser/RegionExtractorTests.java b/test/eu/simstadt/regionchooser/RegionExtractorTests.java index 434b528..3bab5a7 100644 --- a/test/eu/simstadt/regionchooser/RegionExtractorTests.java +++ b/test/eu/simstadt/regionchooser/RegionExtractorTests.java @@ -124,5 +124,16 @@ public void testExtract0BuildingsFromWeirdGML() throws Throwable { assertTrue(emptyGMLString.contains("<core:CityModel")); // Header assertTrue(emptyGMLString.contains("</core:CityModel")); // Footer } + //TODO: Add BuildingParts tests with StuttgartAroundCampus. + @Test + public void testExtractBuildingsFromCitygmlWithBuildingParts() throws Throwable { + //NOTE: Small region, with too many spaces between coordinates + String wktPolygon = "POLYGON((3512683.1280912133 5404783.732132129,3512719.1608604863 5404714.627650777,3512831.40076119 5404768.344155442,3512790.239106708 5404838.614891164,3512683.1280912133 5404783.732132129))"; + Path repo = Paths.get("../TestRepository"); + Path citygmlPath = repo.resolve("Stuttgart.proj/Stuttgart_LOD0_LOD1_around_campus.gml"); + String emptyGMLString = RegionExtractor.selectRegionDirectlyFromCityGML(citygmlPath, wktPolygon, "EPSG:31463") + .toString(); + assertEquals(countRegexMatches(emptyGMLString, "<(core:)?cityObjectMember"), 2); + } } -- GitLab