Index: lams_tool_gmap/web/includes/javascript/mapFunctions.js =================================================================== RCS file: /usr/local/cvsroot/lams_tool_gmap/web/includes/javascript/Attic/mapFunctions.js,v diff -u -r1.5 -r1.6 --- lams_tool_gmap/web/includes/javascript/mapFunctions.js 3 Jun 2008 03:53:16 -0000 1.5 +++ lams_tool_gmap/web/includes/javascript/mapFunctions.js 4 Jun 2008 05:54:41 -0000 1.6 @@ -1,9 +1,15 @@ - // add a marker at the given point -function addMarker(point, infoMessage, title, uid, isSaved) +function addMarker(point, infoMessage, title, uid, isSaved, editAble, createdBy) { map.closeInfoWindow(); - var marker = new GMarker(point, {draggable: true}) + var marker; + + if(editAble) {marker = new GMarker(point, {draggable: true});} + else {marker = new GMarker(point, {draggable: false})}; + + marker.editAble = editAble; + marker.createdBy = createdBy; + map.addOverlay(marker); GEvent.addListener(marker, "dragstart", function() { @@ -12,7 +18,6 @@ GEvent.addListener(marker, "dragend", function() { if (marker.state == "unchanged") {marker.state = "update";} - //serialiseMarkers(); updateMarkerInfoWindowHtml(marker); }); @@ -32,37 +37,27 @@ { marker.infoMessage = ""; } - - //marker.title = "Marker #" + markers.length; marker.title = title; + - //sideBar(marker.infoMessage, markers.length); - - // set the state of the marker marker.editingOn = !isSaved; marker.uid = uid; if (isSaved){marker.state = "unchanged";} else {marker.state="unsaved";} - marker.sideBarLinkPrefix = ""; + marker.sideBarLinkPrefix = "Remove" ; marker.editLink = "Edit"; - marker.saveLink = "Save"; + marker.saveLink = "Save"; marker.cancelLink = "Cancel"; updateMarkerInfoWindowHtml(marker); 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 refreshSideBar() { var sideBarText = ""; @@ -71,39 +66,12 @@ { if (markers[i].state != "remove") { - sideBarText += markers[i].sideBarLinkPrefix + markers[i].title+"
"; + sideBarText += markers[i].sideBarLinkPrefix + " title='" + markers[i].createdBy + "' >" + markers[i].title+"
"; } } document.getElementById("sidebar").innerHTML = sideBarText; } - -function test() -{ - serialiseMarkers(); - alert(document.authoringForm.markersXML.value); -} - -function removeMarker(x) -{ - var ans = confirm(confirmDelete); - if (ans) - { - try{map.removeOverlay(markers[x]);} - catch (e){} - markers[x].state = "remove"; - refreshSideBar(); - //serialiseMarkers(); - } -} - -function editMarker(x) -{ - markers[x].editingOn = true; - updateMarkerInfoWindowHtml(markers[x]); - openInfoWindow(x); -} - function cancelEditMarkerInfo(x) { if (markers[x].state == "unsaved") @@ -118,52 +86,6 @@ } } -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.state == "save") - { - markerIn.setImage(webAppUrl + "/images/paleblue_Marker.png"); - } - else if (markerIn.state == "unsaved") - { - markerIn.setImage(webAppUrl + "/images/red_Marker.png"); - } - - if (markerIn.editingOn) - { - markerIn.linksBar = "
" + markerIn.saveLink + " " + markerIn.cancelLink; - - //markerIn.inputForm = "New Info Window Text:
"; - //markerIn.inputForm += "
"; - //markerIn.infoWindowTextarea = "New Info Window Text:
"; - markerIn.inputForm = "Title:

"; - markerIn.inputForm += "New Info Window Text:
"; - //markerIn.inputForm = "" + markerIn.infoWindowTextarea; - markerIn.infoWindowHtml += markerIn.inputForm + markerIn.linksBar; - } - else - { - markerIn.linksBar = "
" + markerIn.removeLink + " " + markerIn.editLink; - markerIn.inputForm = ""; - markerIn.infoWindowHtml += markerIn.infoMessage + "
" + markerIn.inputForm + markerIn.linksBar; - } -} - function openInfoWindow(x) { markers[x].openInfoWindowHtml(markers[x].infoWindowHtml); @@ -196,150 +118,71 @@ 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()); - map.panTo(bounds.getCenter()); - -} - -function saveMarkerInfo(x) -{ - if (markers[x] != null) + var bounds = new GLatLngBounds(); + for (var i=0; i< markers.length; i++) { - var title= trim(document.getElementById("markerTitle").value); - if (title==null || title == "") + if (markers[i].state != "remove") { - alert(errorMissingTitle); - return false; + bounds.extend(markers[i].getPoint()); } - else - { - - var info=document.getElementById("infoWindow").value; - markers[x].title = title; - markers[x].infoMessage = info; - 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";} - else (markers[x].state ="save"); - - //markers[x].isSaved = persistMarker(markers[x], "createMarker"); - updateMarkerInfoWindowHtml(markers[x]); - refreshSideBar(); - } } + var zoom = map.getBoundsZoomLevel(bounds) - 1; + if (zoom > 15) {zoom = 15;} + map.setZoom(zoom); + map.panTo(bounds.getCenter()); + } function trim(x) { return x.replace(/^\s+|\s+$/g, '') } -/* -function getAjaxObject() +function updateMarkerInfoWindowHtml(markerIn) { - 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; - } + if (markerIn.state == "unchanged") + { + markerIn.setImage(webAppUrl + "/images/blue_Marker.png"); } - - 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; - } + else if (markerIn.state == "update" || markerIn.state == "save") + { + markerIn.setImage(webAppUrl + "/images/paleblue_Marker.png"); } - catch(e) + else if (markerIn.state == "unsaved") { - return e; - //alert("An error occurred: " + e); + markerIn.setImage(webAppUrl + "/images/red_Marker.png"); } -}*/ - - -function serialiseMarkers() -{ - var xmlString = ''; - var i =0; - for (;i'; - xmlString += markerString; - } + markerIn.linksBar = "
" + markerIn.saveLink + " " + markerIn.cancelLink; + markerIn.inputForm = "Title:

"; + markerIn.inputForm += "New Info Window Text:
"; + markerIn.markerMetaData = ""; + markerIn.markerMetaData += "Latitude-Longitude: (" + markerIn.getPoint().lat() + "-" + markerIn.getPoint().lng() +")"; + markerIn.markerMetaData += ""; + markerIn.infoWindowHtml = markerIn.inputForm + "
" +markerIn.markerMetaData + markerIn.linksBar; } - xmlString += "
" - //document.authoringForm.markersXML.value=xmlString; - document.getElementById("markersXML").value=xmlString; + else + { + markerIn.linksBar = "" + if (markerIn.editAble) + { + markerIn.linksBar = "
" + markerIn.removeLink + " " + markerIn.editLink; + } + markerIn.markerMetaData = ""; + markerIn.markerMetaData += "Created By: " + markerIn.createdBy + "
"; + markerIn.markerMetaData += "Latitude-Longitude: (" + markerIn.getPoint().lat() + "-" + markerIn.getPoint().lng() +")"; + markerIn.markerMetaData += "
"; + markerIn.infoWindowHtml = "" + "

" + markerIn.title + "

" + markerIn.infoMessage.replace(/\n/g, "
") + "
"+ markerIn.markerMetaData + markerIn.linksBar; + } } -// TODO: This method should only be included for the authoring pages, put them in another file -function saveMapState() -{ - document.getElementById("mapZoom").value=map.getZoom(); - document.getElementById("mapCenterLatitude").value=map.getCenter().lat(); - document.getElementById("mapCenterLongitude").value=map.getCenter().lng(); - var mapTypeName = map.getCurrentMapType().getName(); - var mapType = ""; - if (mapTypeName == "Satellite"){ mapType = "G_SATELLITE_MAP"; } - else if (mapTypeName == "Hybrid") { mapType = "G_HYBRID_MAP"; } - else if (mapTypeName == "Terrain") { mapType = "G_PHYSICAL_MAP"; } - else { mapType = "G_NORMAL_MAP"; } - document.getElementById("mapType").value=mapType; -} - \ No newline at end of file