[英]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;
}
確保變量( gpsLat1
, gpsLon1
, gpsHeading
等)的類型為Number
而不是uint
或int
。 無符號整數和整數僅允許整數,而Number在大多數其他語言中等效於float
(並且也允許令人難以置信的更大的值)。 如果將小數保存為整數,則四舍五入/加注(我不記得是哪個),這聽起來完全像您遇到的問題。
另外,API受到測試硬件的限制。 如果硬件僅返回GPS坐標的某個值,則AIR不能再精確。 奇怪的是,這不是問題,因為整個點的距離可能是幾英里遠,這意味着任何GPS芯片不准確的設備都是絕對沒有用的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.