Android 如何使用空中地理定位API获得准确的GPS位置?

Android 如何使用空中地理定位API获得准确的GPS位置?,android,air,gps,Android,Air,Gps,我怎样才能得到准确的纬度和经度?我只知道整数。根据我的理解,为了精确到米,我需要精确到小数点后5位。我尝试过水平和垂直精度,但它们与我的手机GPS读数不匹配。 如何使用地理定位API获得精确的GPS读数,精确到仪表? 这是我的密码 var my_geo:Geolocation = new Geolocation(); my_geo.setRequestedUpdateInterval(2000); my_geo.addEventListener(Geolocati

我怎样才能得到准确的纬度和经度?我只知道整数。根据我的理解,为了精确到米,我需要精确到小数点后5位。我尝试过水平和垂直精度,但它们与我的手机GPS读数不匹配。 如何使用地理定位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
gpsheadeng
等)的类型为
Number
,而不是
uint
int
。无符号整数和整数只允许整数,而在大多数其他语言中,Number相当于
float
(并且允许非常大的值)。如果你把一个小数保存为一个整数,它就会四舍五入/四舍五入(我不记得是哪一个),这听起来和你遇到的问题一模一样


或者,API受您正在测试的硬件的限制。如果硬件仅返回GPS坐标的某个值,则空气的精度将无法提高。很有可能这不是问题所在,因为整个lat-long点的距离可能会越来越远,这意味着任何带有GPS芯片的设备都是毫无用处的。

发布您的代码。你尝试了什么?我编辑了我的原始帖子,加入了我的代码。拜托,地理定位API不能提供比这更精确的GPS读数。如果是这样,那就没用了……这不是获取当前位置的正确API。您应该使用LocationManager。看看这篇文章,它几乎没有好教程的链接。此API不适用于AdobeAIR?LocationManager是适用于AIR还是Java?据我所知,它是为Java设计的。。这个问题是针对Actionscript 3 AdobeAIR API。。。也许你只是无法通过空气获得精确的GPS读数。我没有得到任何答案…如果他的变量类型为
Number
uint
int
,这将返回“我的纬度为NaN”,因为您无法将字符串保存到数字对象。问题不在于信息没有显示。这是因为它不够精确。我只得到纬度XX,经度XX。我不能以任何有意义的方式使用这些信息。一个纬度就像68英里…@Catttdaddy,这就是为什么我建议你验证你是否将它们保存到一个数字变量,而不是uint或int。如果你将它们保存到uint或int,它们将被截断,并且不精确,因为uint或int不能有小数点。哦,快!我没想过!他们是int。我现在在工作,但我会尝试这个当我回家!