2

我的编码有问题。我的代码似乎没有低于 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);
4

2 回答 2

0

你对这个问题有更多的背景吗?

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

我还将它分开以确保“标题”没有调用相同的方法来报告虚假数字。

我在模拟器和 iPhone 4S 上都使用 Ti 1.7.2 针对 4.1 进行编译。

您是否关闭了指南针干扰?当你说你从谷歌地图切换到你的应用程序时。您是在切换还是在使用嵌入式地图?我尝试在地图和我的应用程序之间切换而准确性没有重大变化?

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

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

于 2011-10-15T23:40:11.903 回答
0

我遇到了同样的问题,发现 ACCURACY_BEST 选项一定有问题。

很奇怪,但尝试使用更差的准确性选项会给我带来更好的结果,只需尝试以下操作:

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

我当时所做的是从 ACCURACY_NEAREST_TEN_METERS 开始,然后稍后将其更改为 ACCURACY_BEST(在第一个位置读数中)。

在不同的位置进行了尝试,它从第一次读数的 65 米开始,然后到 10 - 5 米。

于 2013-08-15T14:50:44.420 回答