如何获得精确的纬度和经度?我只得到整数。根据我的理解,为了达到仪表我需要降到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;
}
答案 0 :(得分:0)
试试这个:
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;
}
答案 1 :(得分:0)
确保您的变量(gpsLat1
,gpsLon1
,gpsHeading
等)属于Number
类型,而不是uint
或{{1} }。无符号整数和整数仅允许整数,而在大多数其他语言中,Number相当于int
(并且允许非常大的值)。如果将小数保存为整数,则会四舍五入/舍入(我不记得哪个),这听起来与您遇到的问题完全相同。
或者,API受您正在测试的硬件的限制。如果硬件仅返回GPS坐标的某个值,则AIR不能再精确。可能的问题不是问题,因为整个lat长点距离可以是英里和英里,这意味着任何具有GPS芯片不准确性的设备都是绝对无用的。