[英]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.