Changeset 32771

Show
Ignore:
Timestamp:
12.02.2019 13:41:06 (2 months ago)
Author:
ak19
Message:

Draggable markers feature added

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone3/web/interfaces/default/js/map-scripts.js

    r32624 r32771  
     1//var newLat, newLng = 0; 
    12var _docList = new Array(); 
    23_docList.ids = new Array(); 
     
    8788        mapTypeId: google.maps.MapTypeId.HYBRID 
    8889    }; 
    89     _map = new google.maps.Map($("#map_canvas")[0], myOptions); 
    90     google.maps.event.addListener(_map, 'bounds_changed', performSearchForMarkers); 
     90    var $map_canvas = $("#map_canvas"); 
     91     
     92    if ($map_canvas.length > 0) { 
     93        _map = new google.maps.Map($map_canvas[0], myOptions); 
     94        google.maps.event.addListener(_map, 'bounds_changed', performSearchForMarkers); 
     95    } 
    9196} 
    9297 
     
    331336function attachClickHandler(marker, nodeID) 
    332337{ 
     338 
     339     
    333340    google.maps.event.addListener(marker, 'click', function() 
    334341    { 
    335342        document.location.href = gs.xsltParams.library_name + "?a=d&ed=1&c=" + gs.cgiParams.c + "&d=" + nodeID + "&dt=hierarchy&p.a=b&p.sa=&p.s=ClassifierBrowse"; 
    336343    }); 
     344     
     345    if (("docEdit" in gs.cgiParams) && (gs.cgiParams['docEdit'])) { 
     346        google.maps.event.addListener(marker, 'mouseup', function() 
     347        { 
     348            var lat = marker.getPosition().lat(); 
     349            var lng = marker.getPosition().lng(); 
     350            var collection = gs.cgiParams.c;; 
     351            var site_name = gs.xsltParams.site_name; 
     352             
     353            if (nodeID == "") { 
     354                nodeID = gs.cgiParams.d; 
     355            } 
     356            console.log("GPS Click handler in collection:" + collection + " in site: " + site_name + " for Doc: " + nodeID + "(" + lat + "," + lng + ")"); 
     357             
     358            var callbackFunction = function(){console.log("Completed saving metadata changes. You must rebuild the collection for the changes to take effect.");}; 
     359     
     360            gs.functions.setArchivesMetadata(collection, site_name, nodeID, "Latitude", null, lat, null, "override", function(){callbackFunction();}); 
     361            gs.functions.setArchivesMetadata(collection, site_name, nodeID, "Longitude", null, lng, null, "override", function(){callbackFunction();}); 
     362             
     363        }); 
     364    } 
    337365} 
    338366 
     
    367395{ 
    368396    var pos = new google.maps.LatLng(doc.lat,doc.lng); 
     397     
     398    var docEdit = (("docEdit" in gs.cgiParams) && (gs.cgiParams['docEdit'])); 
     399    var draggable_val = (docEdit) ? true : false; 
     400     
    369401    var marker 
    370402    if(mainMarker) 
    371     { 
    372         marker = new google.maps.Marker 
    373         ({ 
    374             position: pos, 
    375             title:doc.title, 
    376             map:_map 
    377         }); 
    378     } 
    379     else 
    380403    { 
    381404        marker = new google.maps.Marker 
     
    384407            title:doc.title, 
    385408            map:_map, 
    386             icon:"interfaces/" + gs.xsltParams.interface_name + "/images/bluemarker.png" 
     409            draggable: draggable_val 
    387410        }); 
    388411    } 
    389  
     412    else 
     413    { 
     414        marker = new google.maps.Marker 
     415        ({ 
     416            position: pos, 
     417            title:doc.title, 
     418            map:_map, 
     419            icon:"interfaces/" + gs.xsltParams.interface_name + "/images/bluemarker.png", 
     420            draggable: draggable_val 
     421        }); 
     422    } 
     423 
     424    console.log("doc = " + JSON.stringify(doc)); 
     425     
    390426    var docElement = gs.jqGet("div" + doc.nodeID); 
    391427    var parent; 
     
    410446    doc.marker = marker; 
    411447    attachClickHandler(marker, doc.nodeID); 
     448 
     449    ////////////////////////////////////////////////////// TEST 
     450     
     451    newLat = marker.getPosition().lat(); 
     452    newLng = marker.getPosition().lng(); 
     453    //console.log("Latitude " + newLat); 
     454    //console.log("Longitude " + newLng); 
     455    NewLatLng(newLat, newLng); 
     456//  // Define the LatLng coordinates for the polygon's path. 
     457//        var triangleCoords = [ 
     458//          {lat: 18.774, lng: -80.190}, 
     459//          {lat: 18.466, lng: -64.600}, 
     460//          {lat: 32.321, lng: -64.757}, 
     461//          {lat: 32.300, lng: -80.190}, 
     462//        {lat: 28.300, lng: -90.190} 
     463//        ]; 
     464// 
     465//        // Construct the polygon. 
     466//        var bermudaTriangle = new google.maps.Polygon({ 
     467//          paths: triangleCoords, 
     468//          strokeColor: '#FF0000', 
     469//          strokeOpacity: 0.8, 
     470//          strokeWeight: 2, 
     471//          fillColor: '#FF0000', 
     472//          fillOpacity: 0.35 
     473//        }); 
     474//        bermudaTriangle.setMap(map); 
     475} 
     476 
     477function NewLatLng(lat, lng) 
     478{ 
     479    console.log("Latitude " + lat); 
     480    console.log("Longitude " + lng); 
    412481} 
    413482