2013-04-24 14 views
12

Yerleşik GPS'yi kullanarak bir aygıtın yerini bulmaya çalışıyorum (uygulama paylaşım konumu gibi). EnableHighAccuracy: true ile mümkün olduğunu okudum.Yüksek doğruluklu coğrafi konum Html5

Bu kodda "enableHighAccuracy: true" nasıl ayarlayabilirim? Farklı pozisyonlarda çalıştım ama işe yaramıyor.

Çok teşekkürler!

cevap

19

API'yi izleyerek yüksek doğruluk bayrağını ayarladığınız bir PositionOptions nesnesine ihtiyacınız vardır.

buradan alıntı am: http://diveintohtml5.info/geolocation.html

getCurrentPosition() işlevi, isteğe bağlı üçüncü bir argüman, bir PositionOptions nesne. PositionOptions nesnesinde ayarlayabileceğiniz üç özellik vardır. Tüm özellikler isteğe bağlıdır. 'u herhangi birini veya tümünü ya da hiçbirini ayarlayamazsınız.

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

Ben getCurrentPosition çağrınıza aşağıdaki 2 params eklendi Fark:

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

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

Ayrıca bakınız

POSITIONOPTIONS böyle çalışmalı, Yani

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

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

+1

Teşekkürler! Ancak, 65 metreden daha az doğruluk alamıyorum :( –

+3

@meework enableHighAccuracy değerini true olarak ayarlamak yerine yanlış ayarladınız. – Foreever