繁体   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