atualize o local do marcador com a API do folheto
Eu quero criar um aplicativo da web com a API do Leaflet. Primeiro meu usuário é geolocalizado com IP, então se ele aceitar eu tento atualizar sua posição com a geolocalização do HTML5 (a precisão é melhor).
Meu problema é que a posição do marcador não é atualizada no mapa e o código abaixo falha sem erros. Eu tentei centenas de diferentes sintaxe e métodos dedocumentação do folheto para atualizar a posição do marcador (ou seja, setLatLng), mas não consegui. Eu gostaria de entender o que há de errado com o meu código.
Meu problema é resolvido fazendo assim:
var lat = (e.latlng.lat);
var lng = (e.latlng.lng);
var newLatLng = new L.LatLng(lat, lng);
marker.setLatLng(newLatLng);
O código antigo era:
//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);