Titanium Mobile在iOS上无法获得正确的准确性

时间:2011-10-11 22:53:04

标签: javascript geolocation gps titanium titanium-mobile

我的编码有问题。我的代码似乎没有达到低于1414的准确度。

每当我打开谷歌地图,并获得我的位置,它通常会在一秒钟内找到它。如果我切换回来,我会在几秒钟内看到正确的精度,然后它会切换回非常低的精度(1414)。

我做错了什么?

这是我的代码:

function reportPosition(e){
    label.text = e.coords.longitude + " - " + e.coords.accuracy;
}

Ti.Geolocation.purpose = "Test";
Titanium.Geolocation.accuracy = Titanium.Geolocation.ACCURACY_BEST;
Titanium.Geolocation.distanceFilter = 10;
Ti.Geolocation.preferredProvider = Titanium.Geolocation.PROVIDER_GPS;
Titanium.Geolocation.getCurrentPosition(reportPosition);

Titanium.Geolocation.addEventListener('location', reportPosition);
Titanium.Geolocation.addEventListener('heading', reportPosition);

2 个答案:

答案 0 :(得分:0)

您对此问题有更多背景信息吗?

我已经运行了您的确切代码并获得了10到183之间的准确度,但从未高过。

我也把它分开以确保'heading'没有调用报告虚假号码的相同方法。

我在模拟器和iPhone 4S上使用Ti 1.7.2编译4.1。

您是否关闭了指南针干扰?当您说您从谷歌地图切换到您的应用程序时。您正在切换或正在使用嵌入式地图吗?我尝试在地图和我的应用之间切换而不会对准确性做出重大改变吗?

硬件或位置可能不好? (虽然这不能解释为什么你在使用谷歌地图后获得好的结果)。您是否在应用程序开始时获得了良好的结果并且它们会降级?

显而易见的答案是,您没有做错任何事情,并且您正在使用正确的位置/硬件准确度。

答案 1 :(得分:0)

我遇到了同样的问题,发现ACCURACY_BEST选项肯定存在一些问题。

很奇怪,但尝试使用更差的准确度选项会给我更好的结果,只需尝试这样的事情:

Titanium.Geolocation.accuracy = Titanium.Geolocation.ACCURACY_NEAREST_TEN_METERS;

然后我做的是从ACCURACY_NEAREST_TEN_METERS开始,然后将其更改为ACCURACY_BEST(在第一个位置读取)。

在不同的位置尝试过此操作,首次读数时为65米,然后是10 - 5米。