2016-08-08 10 views
0

Ich habe diese Funktion, wo ich meine Position zu beobachten und gleichzeitig möchte ich mehrere Orte aus JSON Array anzeigen, aber ich muss sie nicht nur auf der Karte anzeigen. Ich habe dies so weit:geolocation watchposition mehrere Standorte?

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) { 
       // My 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) Ich habe ein Typeerror bekommen, aber ich weiß nicht, wo genau.

Wie kann ich in diesem Fall die watchposition verwenden?

Vielen Dank im Voraus

+1

"_Ich bekomme einen TypeError, aber ich weiß nicht wo genau _". Firebug erwähnt die genaue Position in dem Fehler auf der rechten Seite (Dateiname, Zeile und Spalte). Klicken Sie einfach darauf, um zu dem Ort zu springen, an dem der Fehler aufgetreten ist. – Andreas

+0

Und es erwähnt auch die genaue Fehlermeldung, BTW. – GolezTrol

+0

Ja, ok. Die genaue Position des Fehlers ist hier: ... turnValue = "behandelt")}; mb = Funktion (a, b) {a .__ e3_ || (a .__ e3_ {}); a = a .__ e3_ ; a [b] || (a [... und die genaue Fehlermeldung ist dies: TypeError: a ist undefined Die Datei ist in https://maps.googleapis.com/maps/api/js? Bibliotheken = Geometrie, Orte & Schlüssel = xxx Irgendwelche Hilfe? –

Antwort

0

Ich habe es gelöst, das Problem war, dass ich den Hörer Ereignisobjekt aus dem Marker anzog, so dass der Marker Variable nicht korrekt war Parsen. Die Lösung ist dies:

Verwandte Themen