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 faf211ae6f4c22cf2ee33f9b6787cb220520387f..9c1da9907e0433cf496381ab2651036e049578cb 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 @@ -9,6 +9,22 @@ var regionChooser = (function(){ $("html").addClass("wait"); } + // Hash function +const cyrb53 = (str, seed = 0) => { + let h1 = 0xdeadbeef ^ seed, + h2 = 0x41c6ce57 ^ seed; + for (let i = 0, ch; i < str.length; i++) { + ch = str.charCodeAt(i); + h1 = Math.imul(h1 ^ ch, 2654435761); + h2 = Math.imul(h2 ^ ch, 1597334677); + } + + h1 = Math.imul(h1 ^ (h1 >>> 16), 2246822507) ^ Math.imul(h2 ^ (h2 >>> 13), 3266489909); + h2 = Math.imul(h2 ^ (h2 >>> 16), 2246822507) ^ Math.imul(h1 ^ (h1 >>> 13), 3266489909); + + return 4294967296 * (2097151 & h2) + (h1 >>> 0); +}; + var osm_layer = new ol.layer.Tile({ source: new ol.source.OSM() }); @@ -160,7 +176,8 @@ var regionChooser = (function(){ link += "<a href=\"#\" onclick=\"regionChooser.downloadRegionFrom" + feature["source"] + "(" + feature.getId() + ");return false;\">" + feature["name"] + "</a>"; } else { - link += feature['name']; + h = cyrb53(feature['name']); + link += '<input type="checkbox" id="check' + h+ '"><label for="check' + h + '">' + feature['name'] + '</label>'; } link += " (" + citygml_percentage + "%"; diff --git a/src/main/resources/eu/simstadt/regionchooser/website/style/style.css b/src/main/resources/eu/simstadt/regionchooser/website/style/style.css index d47cf34b8552df144cc5b559c6c25152aa4cd3b7..5e748cf692c8a1293d9464678319a0e8e2976ba0 100644 --- a/src/main/resources/eu/simstadt/regionchooser/website/style/style.css +++ b/src/main/resources/eu/simstadt/regionchooser/website/style/style.css @@ -130,10 +130,6 @@ div#dataPanel li { line-height: 1; } -div#side input{ - width:90%; -} - div#side input.navi{ font-size:18px; height:30px;