diff --git a/web_assets/functions.js b/web_assets/functions.js index 31e9249..da098a6 100644 --- a/web_assets/functions.js +++ b/web_assets/functions.js @@ -1,3 +1,4 @@ +var prevInfoWindow = null; function prepareSignMarker(marker, item) { @@ -5,7 +6,10 @@ function prepareSignMarker(marker, item) { var infowindow = new google.maps.InfoWindow({content: c }); google.maps.event.addListener(marker, 'click', function() { + if (prevInfoWindow) + prevInfoWindow.close() infowindow.open(map,marker); + prevInfoWindow = infowindow }); } @@ -25,6 +29,7 @@ function drawMapControls() { map.controls[google.maps.ControlPosition.TOP_RIGHT].push(compassDiv); + if (markerData.length > 0) { // signpost display control // @@ -57,8 +62,10 @@ function drawMapControls() { map.controls[google.maps.ControlPosition.TOP_RIGHT].push(signControl); - + var hasSignGroup = false; for (label in signGroups) { + hasSignGroup = true; + var d = document.createElement("div"); var n = document.createElement("input"); n.type="checkbox"; @@ -68,10 +75,11 @@ function drawMapControls() { jQuery.each(markerCollection[t.data("label")], function(i,elem) {elem.setVisible(e.target.checked);}); }); - dropdownDiv.appendChild(n); + dropdownDiv.appendChild(d); + d.appendChild(n) var textNode = document.createElement("text"); textNode.innerHTML = label + "
"; - dropdownDiv.appendChild(textNode); + d.appendChild(textNode); } @@ -87,8 +95,15 @@ function drawMapControls() { dropdownDiv.appendChild(n); var textNode = document.createElement("text"); - textNode.innerHTML = "Others
"; + if (hasSignGroup) { + textNode.innerHTML = "Others
"; + } else{ + textNode.innerHTML = "All
"; + } dropdownDiv.appendChild(textNode); + + + } } function initRegions() {