Commit d818e19f authored by Eric Duminil's avatar Eric Duminil
Browse files

Work in progress. Highlight

parent 6ca6f01d
...@@ -96,6 +96,7 @@ var regionChooser = (function(){ ...@@ -96,6 +96,7 @@ var regionChooser = (function(){
feature["project"] = feature.get("project"); feature["project"] = feature.get("project");
feature["name"] = feature.get("name"); feature["name"] = feature.get("name");
feature["source"] = "CityGML"; feature["source"] = "CityGML";
feature["originalStyle"] = feature.getStyle();
}); });
var features = Array.from(kml_source.getFeatures()); var features = Array.from(kml_source.getFeatures());
...@@ -183,17 +184,23 @@ var regionChooser = (function(){ ...@@ -183,17 +184,23 @@ var regionChooser = (function(){
publicScope.highlightPolygon = function(i) { publicScope.highlightPolygon = function(i) {
var feature = kml_source.getFeatureById(i); var feature = kml_source.getFeatureById(i);
feature.oldStyle = feature.getStyle();
feature.setStyle(polygon_style("#ff44a2", 0.7)); feature.setStyle(polygon_style("#ff44a2", 0.7));
} }
publicScope.resetHighlight = function(i) { publicScope.resetHighlight = function(i) {
var feature = kml_source.getFeatureById(i); var feature = kml_source.getFeatureById(i);
feature.setStyle(feature.oldStyle); feature.setStyle(feature.originalStyle);
} }
publicScope.isDownloadPossible = function(){ publicScope.isDownloadPossible = function(){
kml_source.getFeatures().forEach(f => f.setStyle(f.originalStyle));
//TODO: Dry
var checkedBoxes = Array.from(document.querySelectorAll("input.select_citygml")).filter(c => c.checked); var checkedBoxes = Array.from(document.querySelectorAll("input.select_citygml")).filter(c => c.checked);
var checkbox_ids = checkedBoxes.map(c => c.id);
var features = getCheckedPolygons(checkbox_ids);
features.forEach(f => f.setStyle(polygon_style("#ffff00", 0.8)));
document.getElementById("download_region_button").disabled = (checkedBoxes.length == 0); document.getElementById("download_region_button").disabled = (checkedBoxes.length == 0);
} }
...@@ -234,11 +241,15 @@ var regionChooser = (function(){ ...@@ -234,11 +241,15 @@ var regionChooser = (function(){
dataPanel.append(text + "<br/>\n"); dataPanel.append(text + "<br/>\n");
} }
publicScope.downloadRegionFromCityGMLs = function(checkbox_ids) { getCheckedPolygons = function(checkbox_ids){
var features = checkbox_ids.map(checkbox_id => { return checkbox_ids.map(checkbox_id => {
var i = Number(checkbox_id.replace("citygml_", "")); var i = Number(checkbox_id.replace("citygml_", ""));
return kml_source.getFeatureById(i); return kml_source.getFeatureById(i);
}) })
}
publicScope.downloadRegionFromCityGMLs = function(checkbox_ids) {
var features = getCheckedPolygons(checkbox_ids);
var project = features[0].get("project"); var project = features[0].get("project");
var srsName = features[0].get("srsName"); var srsName = features[0].get("srsName");
...@@ -393,6 +404,12 @@ var regionChooser = (function(){ ...@@ -393,6 +404,12 @@ var regionChooser = (function(){
document.getElementById("download_region_button").disabled = true; document.getElementById("download_region_button").disabled = true;
var checkedBoxes = Array.from(document.querySelectorAll("input.select_citygml")).filter(c => c.checked); var checkedBoxes = Array.from(document.querySelectorAll("input.select_citygml")).filter(c => c.checked);
// CheckBoxes isn't empty, because otherwise the button cannot be clicked. // CheckBoxes isn't empty, because otherwise the button cannot be clicked.
var checkbox_ids = checkedBoxes.map(c => c.id);
var features = getCheckedPolygons(checkbox_ids);
features.forEach(f => f.setStyle(polygon_style("#ffff00", 0.8)));
publicScope.downloadRegionFromCityGMLs(checkedBoxes.map(c => c.id)); publicScope.downloadRegionFromCityGMLs(checkedBoxes.map(c => c.id));
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment