Ignore:
Timestamp:
2019-02-12T13:41:06+13:00 (5 years ago)
Author:
ak19
Message:

Draggable markers feature added

File:
1 edited

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
Note: See TracChangeset for help on using the changeset viewer.