Я хочу создать веб-приложение с API-интерфейсом Leaflet. Сначала мой пользователь привязан к IP, а затем, если он согласен, я пытаюсь обновить его позицию с помощью геолокации HTML5 (точность лучше).
Моя проблема в том, что позиция маркера не обновляется на карте, а приведенный ниже код не сработает без ошибок. Я попробовал сотни различных синтаксисов и методов из документации листка, чтобы обновить позицию маркера (то есть setLatLng), но мне это не удалось. Я хотел бы понять, что не так с моим кодом.
Моя проблема решена, например:
var lat = (e.latlng.lat);
var lng = (e.latlng.lng);
var newLatLng = new L.LatLng(lat, lng);
marker.setLatLng(newLatLng);
Старый код:
//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);