Index: lams_tool_gmap/web/includes/javascript/mapFunctions.js =================================================================== diff -u -r3299d560146318cb6f26ec2b234e3af70ec21eba -r866dc94326b7624341331da05940cfe57a8d9ccd --- lams_tool_gmap/web/includes/javascript/mapFunctions.js (.../mapFunctions.js) (revision 3299d560146318cb6f26ec2b234e3af70ec21eba) +++ lams_tool_gmap/web/includes/javascript/mapFunctions.js (.../mapFunctions.js) (revision 866dc94326b7624341331da05940cfe57a8d9ccd) @@ -1,9 +1,8 @@ -function addMarkerToCenter() +// add a marker at the given point +function addMarker(point, infoMessage, uid, isSaved) { - var bounds = map.getBounds(); - var point = bounds.getCenter(); - + map.closeInfoWindow(); var marker = new GMarker(point, {draggable: true}) map.addOverlay(marker); @@ -12,74 +11,71 @@ }); GEvent.addListener(marker, "dragend", function() { - //marker.infoWindowHtml = "Latitude: " + marker.getLatLng().lat() + "
Longitude: " + marker.getLatLng().lng() + marker.removeButton ;; - //marker.openInfoWindowHtml(marker.infoWindowHtml); + if (marker.state == "unchanged") {marker.state = "update";} + //serialiseMarkers(); + updateMarkerInfoWindowHtml(marker); }); - GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml(marker.infoWindowHtml); }); GEvent.addListener(marker, "infowindowclose", function() { - marker.editingOn = false; - updateMarkerInfoWindowHtml(marker) + updateMarkerInfoWindowHtml(marker); }); + if (infoMessage!=null) + { + marker.infoMessage = unescape(infoMessage); + } + else + { + marker.infoMessage = ""; + } + // set the state of the marker + marker.editingOn = !isSaved; + marker.uid = uid; + if (isSaved){marker.state = "unchanged";} + else {marker.state="save";} - - - marker.infoMessage = "No message
"; marker.removeLink = "Remove" ; //marker.editLink = "Edit"; marker.editLink = "Edit"; - marker.saveLink = "Save"; + marker.saveLink = "Save"; marker.cancelLink = "Cancel"; + //markerManager.addMarkers(marker, 5); - marker.editingOn = false; - updateMarkerInfoWindowHtml(marker); - //alert(marker.infoMessage); - //alert(marker.inputForm); - //alert(marker.linksBar); - - //marker.infoWindowHtml = "Latitude: " + marker.getLatLng().lat() + "
Longitude: " + marker.getLatLng().lng() + marker.removeButton ; markers[markers.length] = marker; +} +// Add a new marker to the center of the map +function addMarkerToCenter() +{ + var bounds = map.getBounds(); + var point = bounds.getCenter(); + addMarker(point, "", -1, false) } - -//Single Image - function test() { - var string = ""; - var i; - for (i=0; i"; - markers[x].editingOn = false; - updateMarkerInfoWindowHtml(markers[x]); - //markers[x].openInfoWindowHtml(markers[x].infoWindowHtml); - openInfoWindow(x); - } -} - function cancelEditMarkerInfo(x) { markers[x].editingOn = false; @@ -113,24 +95,185 @@ function updateMarkerInfoWindowHtml(markerIn) { + markerIn.locationMessage = ""; + markerIn.locationMessage += "Latitude: " + markerIn.getPoint().lat() + "
"; + markerIn.locationMessage += "Longitude: " + markerIn.getPoint().lng() + "

"; + markerIn.locationMessage += "
"; + markerIn.infoWindowHtml = markerIn.locationMessage; + + if (markerIn.state == "unchanged") + { + markerIn.setImage(webAppUrl + "/images/blue_Marker.png"); + } + else if (markerIn.state == "update") + { + markerIn.setImage(webAppUrl + "/images/paleblue_Marker.png"); + } + else + { + markerIn.setImage(webAppUrl + "/images/red_Marker.png"); + } + if (markerIn.editingOn) { markerIn.linksBar = "
" + markerIn.saveLink + " " + markerIn.cancelLink; - markerIn.infoWindowTextarea = ""; + + //markerIn.inputForm = "New Info Window Text:
"; + //markerIn.inputForm += ""; markerIn.inputForm = "New Info Window Text:
" + markerIn.infoWindowTextarea; - markerIn.infoWindowHtml = markerIn.inputForm + markerIn.linksBar; + markerIn.infoWindowHtml += markerIn.inputForm + markerIn.linksBar; } else { markerIn.linksBar = "
" + markerIn.removeLink + " " + markerIn.editLink; markerIn.inputForm = ""; - markerIn.infoWindowHtml = markerIn.infoMessage + markerIn.inputForm + markerIn.linksBar; - } - - + markerIn.infoWindowHtml += markerIn.infoMessage + "
" + markerIn.inputForm + markerIn.linksBar; + } } function openInfoWindow(x) { markers[x].openInfoWindowHtml(markers[x].infoWindowHtml); -} \ No newline at end of file +} + +function showAddress() +{ + var address = document.getElementById('address').value; + + if (geocoder) + { + geocoder.getLatLng(address, + function(point) + { + if (!point) + { + alert(address + " not found"); + } + else + { + map.setCenter(point, 13); + //var marker = new GMarker(point); + //map.addOverlay(marker); + //marker.openInfoWindowHtml(address); + } + } + ); + } +} + +function fitMapMarkers() +{ + var bounds = new GLatLngBounds(); + for (var i=0; i< markers.length; i++) { + bounds.extend(markers[i].getPoint()); + } + map.setZoom(map.getBoundsZoomLevel(bounds)); + map.setCenter(bounds.getCenter()); +} + +function saveMarkerInfo(x) +{ + if (markers[x] != null) + { + var info=document.getElementById("infoWindow"); + markers[x].infoMessage = info.value; + markers[x].editingOn = false; + + // change the state to update if it is a pre-existing marker + if (markers[x].state == "unchanged") {markers[x].state = "update";} + + //markers[x].isSaved = persistMarker(markers[x], "createMarker"); + updateMarkerInfoWindowHtml(markers[x]); + + } +} + +/* +function getAjaxObject() +{ + var req=null; + if ( window.XMLHttpRequest ) {req = new XMLHttpRequest();} + else {req = new ActiveXObject("MSXML2.XMLHTTP");} + return req; +} +*/ + +/* +function persistMarker(marker, method) +{ + var ajax = getAjaxObject(); + var result = null; + ajax.onreadystatechange = function() + { + if(ajax.readyState == 4) + { + result = ajax.responseText; + } + } + + var url = webAppUrl + "/marker.do?" + + "&method=" + method + + "&toolContentID=" + toolContentID + + "&latitude=" + marker.getPoint().lat() + + "&longitude=" + marker.getPoint().lng() + + "&infoMessage=" + marker.infoMessage; + + try + { + ajax.open("GET",url,false); + ajax.send(null); + + if (result=="success") + { + alert("yay!"); + return true; + } + else + { + //TODO: handle marker save failure + alert("boo!"); + return false; + } + } + catch(e) + { + return e; + //alert("An error occurred: " + e); + } +}*/ + + +function serialiseMarkers() +{ + var xmlString = ''; + var i =0; + + for (;i'; + xmlString += markerString; + } + } + xmlString += "" + document.authoringForm.markersXML.value=xmlString; +} + + + + + + + \ No newline at end of file