actualizar la ubicación del marcador con la API del folleto

Quiero construir una aplicación web con la API de Leaflet. Primero, mi usuario está geolocalizado con IP y luego, si acepta, intento actualizar su posición con la geolocalización HTML5 (la precisión es mejor).

Mi problema es que la posición del marcador no se actualiza en el mapa y el código de abajo falla sin error. He intentado cientos de diferentes sintaxis y métodos dedocumentación del folleto para actualizar la posición del marcador (es decir, setLatLng) pero no tuve éxito. Me gustaría entender qué está mal con mi código.

Mi problema se resuelve haciendo así:

    var lat = (e.latlng.lat);
    var lng = (e.latlng.lng);
    var newLatLng = new L.LatLng(lat, lng);
    marker.setLatLng(newLatLng); 

El código antiguo 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);

Respuestas a la pregunta(2)

Su respuesta a la pregunta