Aktualisieren Sie den Marker-Standort mit der Flyout-API
Will ich bauen web-app mit der Broschüre API. Ersten mein Benutzer ist geolocated mit der IP dann, wenn er annimmt, ich versuche zu aktualisieren, seine position mit HTML5-geolocation (Genauigkeit besser).
Mein problem ist, dass die marker-position wird nicht aktualisiert, auf die Karte und der code Balg kann nicht mit keine Fehler. Ich habe versucht hundert unterschiedliche syntax und Methoden aus Merkblatt Dokumentation zu aktualisieren marker-position (dh. setLatLng), aber ich war nicht erfolgreich. Ich würde gerne verstehen, was ist Los mit meinem code.
Mein problem ist gelöst, durch das tun so :
var lat = (e.latlng.lat);
var lng = (e.latlng.lng);
var newLatLng = new L.LatLng(lat, lng);
marker.setLatLng(newLatLng);
Alte code war:
//initial IP based geolocation
var lat = google.loader.ClientLocation.latitude;
var lng = google.loader.ClientLocation.longitude;
//place marker on the map
var marker = L.marker([lat,lng]).addTo(map);
//start HTML5 geolocation
map.locate({setView: true, maxZoom: 16});
function onLocationFound(e) {
var marker = L.marker([e.latlng.lat,e.latlng.lng]).update(marker);
alert ('New latitude is ' + e.latlng.lat)
}
map.on('locationfound', onLocationFound);
Kommentar zu dem Problem
wenn ich addTo(map) erstellen Sie einen neuen marker, aber kein update des bestehenden. Irgendeine Idee ?
InformationsquelleAutor der Frage floflo | 2013-01-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den code in deine Frage ist ein wenig verwirrend, es ist schwer zu sagen, was das Problem ist, wenn man nur post-snippets.
Als es ist, diesen code:
..sollte funktionieren wie erwartet innerhalb
onLocationFound()
.Können Sie vereinfachen es:
Aber ich denke das problem ist ein Rahmen-Thema, werden einige der Variablen (z.B. marker) ist nicht zugänglich im inneren onLocationFound.
Hier ein Beispiel, wie es zu erreichen:
Demo: http://jsfiddle.net/doktormolle/6ftGz/
InformationsquelleAutor der Antwort Dr.Molle
Versuchen update() der marker-Methode klappt es bei mir
InformationsquelleAutor der Antwort Kedar.Aitawdekar