diff --git a/src/eu/simstadt/regionchooser/website/script/simstadt_openlayers.js b/src/eu/simstadt/regionchooser/website/script/simstadt_openlayers.js index ebc34902e19e8ff573ad4284c52974af4c8936eb..f24d99561c72f914d66f275be17f98188e52ff5b 100644 --- a/src/eu/simstadt/regionchooser/website/script/simstadt_openlayers.js +++ b/src/eu/simstadt/regionchooser/website/script/simstadt_openlayers.js @@ -210,17 +210,15 @@ proj4.defs("EPSG:28992", "+proj=sterea +lat_0=52.15616055555555 +lon_0=5.3876388 dataPanel.append(link + ")\n"); } - function findIntersection(feature, polygon, polygonArea) { + function findIntersection(feature, polygon) { try { - var jsonIntersection = turf.intersect(polygon, feature["geoJSON"]); - if (undefined !== jsonIntersection) { - showLinkToDownload(feature, jsonIntersection, polygonArea); - } + return turf.intersect(polygon, feature["geoJSON"]); } catch (err) { console.log(feature.get('name') + " - " + err); } } + //TODO: Use Javascript names (intersection_found => intersectionFound) function findIntersections() { var polygon = geoJsonFormat.writeFeatureObject(sketch); var polygonArea = sketch.getGeometry().getArea(); @@ -232,11 +230,12 @@ proj4.defs("EPSG:28992", "+proj=sterea +lat_0=52.15616055555555 +lon_0=5.3876388 Object.keys(features_by_project).forEach(function(project) { features = features_by_project[project]; - dataPanel.append("<h2>" + project); -// features_and_intersections = features.map(f=> [findIntersection(f,polygon)]) - for (var i = 0; i < features.length; i++) { - findIntersection(features[i], polygon, polygonArea); - } + 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 class='"+project+"'>" + project); + features_and_intersections.forEach(l => showLinkToDownload(l[0], l[1], polygonArea)); + } }); if (!intersection_found) { @@ -276,7 +275,6 @@ proj4.defs("EPSG:28992", "+proj=sterea +lat_0=52.15616055555555 +lon_0=5.3876388 } function displayInfo() { - // var start = new Date().getTime(); dataPanel.empty(); var geom = /** @type {ol.geom.Polygon} */ (sketch.getGeometry().clone().transform(sourceProj, 'EPSG:4326')); @@ -288,8 +286,6 @@ proj4.defs("EPSG:28992", "+proj=sterea +lat_0=52.15616055555555 +lon_0=5.3876388 var n = coords.length; for (var i = 0; i < n; i++) { var wgs84_coord = coords[i]; - // wgs84_coords += "regionPolygon.add(new Coord(" + wgs84_coord[1] + - // "," + wgs84_coord[0] + "));<br/>"; wgs84_coords += "(" + wgs84_coord[1] + "," + wgs84_coord[0] + ")<br/>"; } @@ -299,9 +295,6 @@ proj4.defs("EPSG:28992", "+proj=sterea +lat_0=52.15616055555555 +lon_0=5.3876388 dataPanel.append("Area" + "<br/>\n"); dataPanel.append((Math.round(area / 1000) / 10).toString() + " ha<br/><br/>\n"); findIntersections(); - // var end = new Date().getTime(); - // var time = end - start; - // console.log('Execution time: ' + time); } draw.on('drawend', function() { diff --git a/src/eu/simstadt/regionchooser/website/style/style.css b/src/eu/simstadt/regionchooser/website/style/style.css index 605f8dddf529c5ab45ae6cd6df62c8024a2fae06..716faedbee8957033aa61195c9148fe5bff5b520 100644 --- a/src/eu/simstadt/regionchooser/website/style/style.css +++ b/src/eu/simstadt/regionchooser/website/style/style.css @@ -121,6 +121,11 @@ div#dataPanel h2 { font-size: 16px; } +div#dataPanel h2.NovaFactory{ + color: var(--color1); +/** color: #ff7700; Orange as on the map **/ +} + div#dataPanel li { list-style-type: none; padding: 2px 0 0 0;