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)
}
-
-//
-
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 += "";
+
+ markerIn.infoWindowTextarea = "";
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