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);

questionAnswers(2)

yourAnswerToTheQuestion