簡體   English   中英

如何使用AIR Geolocation API獲取准確的GPS位置?

[英]How can I get exact GPS location with AIR Geolocation API?

如何獲得確切的緯度和經度? 我只得到整數。 根據我的理解,為了深入了解儀表,我需要降低到5位小數。 我嘗試了水平和垂直精度,但它們與我的手機的GPS讀數不匹配。 如何使用Geolocation API精確獲取GPS讀數? 這是我的代碼

var my_geo:Geolocation = new Geolocation();
my_geo.setRequestedUpdateInterval(2000);                
my_geo.addEventListener(GeolocationEvent.UPDATE, onGeoUpdate);

function onGeoUpdate(e:GeolocationEvent):void
{
    gpsLat1 = (e.latitude);
    gpsLon1 = (e.longitude);
    gpsHeading = (e.heading);
    gpsHorAcc = (e.horizontalAccuracy);
    gpsVerAcc = (e.verticalAccuracy);
    gpsCheck = 2;
my_txt.text = "My Latitude is "+ gpsLat1 + " and my Longitude is "+ gpsLon1 + " Bearing is " + gpsHeading+ " HorAcc "+ gpsHorAcc+ " VertAcc "+gpsVerAcc;

}

嘗試這個:

function onGeoUpdate(e:GeolocationEvent):void
{
    gpsLat1 = (e.latitude.toString());
    gpsLon1 = (e.longitude.toString());
    gpsHeading = (e.heading.toString());
    gpsHorAcc = (e.horizontalAccuracy.toString());
    gpsVerAcc = (e.verticalAccuracy.toString());
    gpsCheck = 2;
    my_txt.text = "My Latitude is "+ gpsLat1 + " and my Longitude is "+ gpsLon1 + " Bearing is " + gpsHeading+ " HorAcc "+ gpsHorAcc+ " VertAcc "+gpsVerAcc;

}

確保變量( gpsLat1gpsLon1gpsHeading等)的類型為Number而不是uintint 無符號整數和整數僅允許整數,而Number在大多數其他語言中等效於float (並且也允許令人難以置信的更大的值)。 如果將小數保存為整數,則四舍五入/加注(我不記得是哪個),這聽起來完全像您遇到的問題。

另外,API受到測試硬件的限制。 如果硬件僅返回GPS坐標的某個值,則AIR不能再精確。 奇怪的是,這不是問題,因為整個點的距離可能是幾英里遠,這意味着任何GPS芯片不准確的設備都是絕對沒有用的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM