Geolocalizzazione ad alta precisione Html5

Sto cercando di localizzare un dispositivo utilizzando il GPS incorporato (come la posizione della condivisione di app whats). Ho letto che è ansible con EnableHighAccuracy: true.

Come posso impostare “enableHighAccuracy: true” in questo codice? Ho provato in posizioni diverse ma non funziona.

 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."); }  

Molte grazie!

Hai bisogno di un object PositionOptions, nel quale imposti il ​​flag di alta precisione seguendo l’API.

Sto citando da qui: http://diveintohtml5.info/geolocation.html

La funzione getCurrentPosition () ha un terzo argomento opzionale, un object PositionOptions. Ci sono tre proprietà che puoi impostare in un object PositionOptions. Tutte le proprietà sono opzionali. Puoi impostarne uno o tutti o nessuno di essi.

POSITIONOPTIONS OBJECT

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

Quindi, dovrebbe funzionare in questo modo:

 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."); } 

Notato ho aggiunto i seguenti 2 parametri alla chiamata getCurrentPosition:

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

Vedi anche: Geolocalizzazione HTML5 enableHighAccuracy Opzione True, False o Best?