2013-04-24 2 views
12

Ich bin Tring ein Gerät zu lokalisieren den eingebetteten GPS (wie was app Aktie Standort). Ich habe gelesen, dass es mit EnableHighAccuracy möglich ist: true.Hohe Genauigkeit Geolocation Html5

Wie kann ich "enableHighAccuracy: true" in diesem Code? Ich habe es in verschiedenen Positionen versucht, aber es funktioniert nicht.

Vielen Dank!

Antwort

19

Sie benötigen ein PositionOptions Objekt, in dem Sie die hohe Genauigkeit Flag nach der API eingestellt.

ich bin hier zitiert: http://diveintohtml5.info/geolocation.html

Die getCurrentPosition() Funktion hat ein optionales drittes Argument, ein PositionOptions Objekt. Es gibt drei Eigenschaften, die Sie in einem PositionOptions-Objekt festlegen können. Alle Eigenschaften sind optional. Sie können beliebige oder alle oder keine von ihnen festlegen.

POSITIONOPTIONS OBJECT

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

So sollte es so funktionieren:

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

Bemerkt habe ich die folgenden 2 params zu getCurrentPosition Anruf hinzugefügt: siehe

,function error(msg){alert('Please enable your GPS position future.');} 

, {maximumAge:600000, timeout:5000, enableHighAccuracy: true}); 

Auch : Geolocation HTML5 enableHighAccuracy True , False or Best Option?

+1

Dank !! Allerdings kann ich nicht bekommen weniger als 65 Meter Genauigkeit :( –

+3

@meework Sie die enableHighAccuracy gesetzt haben falsch statt Einstellung es wahr. – Foreever