Alta precisión geolocation Html5

Estoy tratando de encontrar un dispositivo usando el GPS integrado (como por ejemplo, la location de compartir aplicaciones). He leído que es posible con EnableHighAccuracy: true.

¿Cómo puedo configurar "enableHighAccuracy: true" en este código? Intenté en diferentes posiciones, pero no funciona.

<script type="text/javascript"> if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(function(position){ var latitude = position.coords.latitude; var longitude = position.coords.longitude; var accuracy = position.coords.accuracy; var coords = new google.maps.LatLng(latitude, longitude); var mapOptions = { zoom: 15, center: coords, mapTypeControl: true, navigationControlOptions: { style: google.maps.NavigationControlStyle.SMALL }, mapTypeId: google.maps.MapTypeId.ROADMAP }; var capa = document.getElementById("capa"); capa.innerHTML = "latitud: " + latitude + " longitud: " + " aquesta es la precisio en metres : " + accuracy; map = new google.maps.Map( document.getElementById("mapContainer"), mapOptions ); var marker = new google.maps.Marker({ position: coords, map: map, title: "ok" }); }); }else { alert("Geolocation API is not supported in your browser."); } </script> 

¡Muchas gracias!

Necesita un object PositionOptions, en el que establece el indicador de alta precisión después de la API.

Estoy citando desde aquí: http://diveintohtml5.info/geolocation.html

La function getCurrentPosition () tiene un tercer argumento opcional, un object PositionOptions. Hay tres properties que puede establecer en un object PositionOptions. Todas las properties son opcionales Puede establecer cualquiera o todos o ninguno de ellos.

POSITIONOPTIONS OBJECT

 Property Type Default Notes -------------------------------------------------------------- enableHighAccuracy Boolean false true might be slower timeout long (no default) in milliseconds maximumAge long 0 in milliseconds 

Por lo tanto, debería funcionar así:

 if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(function(position){ var latitude = position.coords.latitude; var longitude = position.coords.longitude; var accuracy = position.coords.accuracy; var coords = new google.maps.LatLng(latitude, longitude); var mapOptions = { zoom: 15, center: coords, mapTypeControl: true, navigationControlOptions: { style: google.maps.NavigationControlStyle.SMALL }, mapTypeId: google.maps.MapTypeId.ROADMAP }; var capa = document.getElementById("capa"); capa.innerHTML = "latitud: " + latitude + " longitud: " + " aquesta es la precisio en metres : " + accuracy; map = new google.maps.Map( document.getElementById("mapContainer"), mapOptions ); var marker = new google.maps.Marker({ position: coords, map: map, title: "ok" }); },function error(msg){alert('Please enable your GPS position future.'); }, {maximumAge:600000, timeout:5000, enableHighAccuracy: true}); }else { alert("Geolocation API is not supported in your browser."); } 

Noté que agregué los siguientes 2 parameters a la llamada GetCurrentPosition:

 ,function error(msg){alert('Please enable your GPS position future.');} , {maximumAge:600000, timeout:5000, enableHighAccuracy: true}); 

Ver también: Geolocalización HTML5 enableHighAccuracy True, False or Best Option?