javascript - geolocation watchposition multiple locations? -


i have function watch position , @ same time want display multiple locations comming json array, need watch them not display them on map. got far:

function initmap(userid,locations) {   var directionsservice = new google.maps.directionsservice;   var directionsdisplay;   var icn="img/mechanic.png";   var meicn="img/me.png";    directionsdisplay = new google.maps.directionsrenderer({    polylineoptions: {    strokecolor: "red"   } });  var map = new google.maps.map(document.getelementbyid('map-canvas'), {  zoom: 13,  center: new google.maps.latlng(53.529773,-113.509387), //alberta  maptypeid: google.maps.maptypeid.roadmap });  directionsdisplay.setmap(map);  var marker, i; var infowindow = new google.maps.infowindow();  $.each(locations, function(index, element) {    watchmec = navigator.geolocation.watchposition(function(position){     marker = new google.maps.marker({         position: new google.maps.latlng(              parsefloat(element.longitud), parsefloat(element.latitud)),         map: map,         icon: icn     });   });  google.maps.event.addlistener(marker, 'click', (function(marker, i) {               // position   watchid = navigator.geolocation.watchposition(function(position){     lat = position.coords["latitude"]; lng = position.coords["longitude"]; markerme = new google.maps.marker({position: {lat: lat, lng: lng},     map:map, icon:meicn});                 });    return function() {     var distinationorigin = new google.maps.latlng(lat, lng);  //my position     var destinationmarker = parsefloat(element.longitud) + ',' + '' +      parsefloat(element.latitud);     infowindow.setcontent(element.datos);     infowindow.open(map, marker);     calculateanddisplayroute(directionsservice, directionsdisplay,      distinationorigin, destinationmarker, infowindow);    }   })(marker, i));  }) } 

in firebug (mozilla) typeerror don't know exactly.

how can use watchposition in case?

thanks in advance

i got solved, problem was putting listener event out of marker object, marker variable wasn't parsing correctly. solution this:

  $.each(locations, function(index, element) {   watchmec = navigator.geolocation.watchposition(function(position){     marker = new google.maps.marker({         position: {lat:parsefloat(element.longitud), lng:parsefloat              (element.latitud)},         map: map,         icon:icn     });       google.maps.event.addlistener(marker, 'click', (function(marker, i) {         // position         watchid = navigator.geolocation.watchposition(function(position){             lat = position.coords["latitude"];             lng = position.coords["longitude"];             markerme = new google.maps.marker({position: {lat: lat, lng: lng}, map: map, icon:meicn});                       });          return function() {             var distinationorigin = new google.maps.latlng(lat, lng);  // mi posicion             var destinationmarker = parsefloat(element.longitud) + ',' + '' + parsefloat(element.latitud);             infowindow.setcontent(element.datos);             infowindow.open(map, marker);             calculateanddisplayroute(directionsservice, directionsdisplay, distinationorigin, destinationmarker, infowindow);         }     })(marker, i));       }); }); 

Comments