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
Post a Comment