Creé un pequeño POC para mostrar un marcador en la geolocalización real en la API de Javascript de Google Maps. Funciona en general, pero me doy cuenta de que el intervalo de actualizaciones de geolocalización es muy alto. Quiero decir, se necesitan muchos intentos hasta que se actualice una nueva geolocalización.
Luego me di cuenta de que no tengo este problema en la aplicación Google Maps para Android. Aquí, la geolocalización se actualiza casi simultáneamente. Y: después de que se actualiza en la aplicación Google Maps, también la API de Javascript en el navegador recibe un nuevo valor. Puedes verlo aquí en un video de mi teléfono: https://gfycat.com/calmspiffyamericanbittern
Entonces, me parece que la aplicación de Android tiene la posibilidad de forzar actualizaciones de geolocalización en intervalos muy cortos, mientras que la API de Javascript del navegador no lo hace.
Puede probar el POC usted mismo en https://michaelfirges.de/maps/
Este es el código:
(() => { const message = document.querySelector('#message'); // check if the Geolocation API is supported if (!navigator.geolocation) { message.textContent = `Your browser doesn't support Geolocation`; message.classList.add('error'); return; } // handle click event const btn = document.querySelector('#show'); btn.addEventListener('click', function () { // get the current position navigator.geolocation.getCurrentPosition(onSuccess, onError, { maximumAge: 0, timeout: 5000, enableHighAccuracy:true} ); }); // handle success case function onSuccess(position) { const { latitude, longitude } = position.coords; var markerpos = new google.maps.LatLng(latitude, longitude); const marker = new google.maps.Marker({ position: markerpos, map: map, draggable: true, }); message.classList.add('success'); message.textContent = `Your location: (${latitude},${longitude})`; } // handle error case function onError() { message.classList.add('error'); alert('Failed to get your location!'); } })();¡Muchas gracias por cualquier aporte!