From 6ca6f01d4383ffbf12525883527f9b27c2a9dd91 Mon Sep 17 00:00:00 2001 From: Eric Duminil <eric.duminil@gmail.com> Date: Thu, 13 Oct 2022 14:40:13 +0200 Subject: [PATCH] Highlight polygon when hovering over name --- .../website/script/simstadt_openlayers.js | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/main/resources/eu/simstadt/regionchooser/website/script/simstadt_openlayers.js b/src/main/resources/eu/simstadt/regionchooser/website/script/simstadt_openlayers.js index 50d34be..5f75a47 100644 --- a/src/main/resources/eu/simstadt/regionchooser/website/script/simstadt_openlayers.js +++ b/src/main/resources/eu/simstadt/regionchooser/website/script/simstadt_openlayers.js @@ -168,10 +168,11 @@ var regionChooser = (function(){ var intersectionArea = intersection.getGeometry().getArea(); var citygml_percentage = Math.round(intersectionArea / feature["area"] * 100); var sketch_percentage = Math.round(intersectionArea / polygonArea * 100); + var id = feature.getId(); intersections.addFeature(intersection); - var link = '<li>' - // TODO: If possible, highlight the corresponding polygon when hovering above a name. - link += '<input type="checkbox" id="citygml_' + feature.getId() + '" class="select_citygml" onclick="regionChooser.isDownloadPossible();"><label for="citygml_' + feature.getId() + '">' + feature['name'] + '</label>'; + var link = '<li onmouseover="regionChooser.highlightPolygon(' + id + ')" onmouseout="regionChooser.resetHighlight(' + id +')">'; + link += '<input type="checkbox" id="citygml_' + feature.getId() + '" class="select_citygml" onclick="regionChooser.isDownloadPossible();">' + + '<label for="citygml_' + feature.getId() + '">' + feature['name'] + '</label>'; link += " (" + citygml_percentage + "%"; if (sketch_percentage == 100) { @@ -180,6 +181,17 @@ var regionChooser = (function(){ dataPanel.append(link + ")\n"); } + publicScope.highlightPolygon = function(i) { + var feature = kml_source.getFeatureById(i); + feature.oldStyle = feature.getStyle(); + feature.setStyle(polygon_style("#ff44a2", 0.7)); + } + + publicScope.resetHighlight = function(i) { + var feature = kml_source.getFeatureById(i); + feature.setStyle(feature.oldStyle); + } + publicScope.isDownloadPossible = function(){ var checkedBoxes = Array.from(document.querySelectorAll("input.select_citygml")).filter(c => c.checked); document.getElementById("download_region_button").disabled = (checkedBoxes.length == 0); -- GitLab