// // function CreateMarker(point,html) { var marker = new GMarker(point); GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml(html); }); return marker; } // A TextualZoomControl is a GControl that displays textual "Zoom In" // and "Zoom Out" buttons (as opposed to the iconic buttons used in // Google Maps). function TextualZoomControl() { } TextualZoomControl.prototype = new GControl(); // Creates a one DIV for each of the buttons and places them in a container // DIV which is returned as our control element. We add the control to // to the map container and return the element for the map class to // position properly. TextualZoomControl.prototype.initialize = function(map) { var container = document.createElement("div"); var zoomInDiv = document.createElement("div"); this.setButtonStyle_(zoomInDiv); container.appendChild(zoomInDiv); zoomInDiv.appendChild(document.createTextNode("Aggiorna")); GEvent.addDomListener(zoomInDiv, "click", function() { GDownloadUrl("data.php?"+(new Date()).getTime(), function(data, responseCode) { // To ensure against HTTP errors that result in null or bad data, // always check status code is equal to 200 before processing the data if (responseCode == 200) { map.clearOverlays(); var xml = GXml.parse(data); var markers = xml.documentElement.getElementsByTagName("marker"); for (var i = 0; i < markers.length; i++) { var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng"))); var lat = parseFloat(markers[i].getAttribute("lat")); var lon = parseFloat(markers[i].getAttribute("lng")); var userid = markers[i].getAttribute("userid"); var html = "ID : "+userid+"
LAT : "+lat+"
LON : "+lon; var marker = CreateMarker(point, html); map.addOverlay(marker); } } else if(responseCode == -1) { alert("Data request timed out. Please try later."); } else { alert("Request resulted in error. Check XML file is retrievable."); } }); }); map.getContainer().appendChild(container); return container; } // By default, the control will appear in the top left corner of the // map with 7 pixels of padding. TextualZoomControl.prototype.getDefaultPosition = function() { return new GControlPosition(G_ANCHOR_BOTTOM_LEFT, new GSize(7, 7)); } // Sets the proper CSS for the given button element. TextualZoomControl.prototype.setButtonStyle_ = function(button) { button.style.textDecoration = "underline"; button.style.color = "#0000cc"; button.style.backgroundColor = "white"; button.style.font = "small Arial"; button.style.border = "1px solid black"; button.style.padding = "2px"; button.style.marginBottom = "3px"; button.style.textAlign = "center"; button.style.width = "10em"; button.style.cursor = "pointer"; } function load() { if (GBrowserIsCompatible()) { var map = new GMap2(document.getElementById("map")); map.addControl(new GLargeMapControl()); map.addControl(new GMapTypeControl()); map.setCenter(new GLatLng(43.608, 13.9662), 9); map.addControl(new TextualZoomControl()); map.enableScrollWheelZoom(); // Download the data in data.xml and load it on the map. The format we // expect is: // // // // GDownloadUrl("data.php?"+(new Date()).getTime(), function(data, responseCode) { // To ensure against HTTP errors that result in null or bad data, // always check status code is equal to 200 before processing the data if (responseCode == 200) { map.clearOverlays(); var xml = GXml.parse(data); var markers = xml.documentElement.getElementsByTagName("marker"); for (var i = 0; i < markers.length; i++) { var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng"))); var lat = parseFloat(markers[i].getAttribute("lat")); var lon = parseFloat(markers[i].getAttribute("lng")); var userid = markers[i].getAttribute("userid"); var html = "ID : "+userid+"
LAT : "+lat+"
LON : "+lon; var marker = CreateMarker(point, html); map.addOverlay(marker); } } else if(responseCode == -1) { alert("Data request timed out. Please try later."); } else { alert("Request resulted in error. Check XML file is retrievable."); } }); } }