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

Posted

技术标签:

【中文标题】Titanium Mobile 在 iOS 上无法获得正确的准确性【英文标题】:Titanium Mobile is not getting correct accuracy on iOS 【发布时间】:2011-10-11 22:53:04 【问题描述】:

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

【问题讨论】:

【参考方案1】:

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

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

我还将它拆分以确保“标题”不会​​调用报告虚假数字的相同方法。

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

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

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

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

【讨论】:

自从我升级到ios5后,准确率似乎还不错,虽然我是用iOS4.3编译的。这是我在 iOS4 上使用的同一个 App,我没有重新编译。所以不知道为什么,它似乎部分进展顺利。关于谷歌地图,不是嵌入式,而是地图应用 准确性保持不变,开始时不会更好。我尝试了不同的位置 我认为“你没有做错任何事”。您还在使用 iOS4 设备时遇到此问题吗? 是的,我仍然有这个问题。有没有办法进一步提高准确性?还是我必须应付它 澄清一下——您有 1 台设备精度高且 iOS 5 和 1 台设备精度差且使用 iOS4?什么类型的设备?如果它是只有 WiFi 的 iPhone 3G 或 iPad/iPad2 有pseudo-GPS,这可能会降低您的准确性。【参考方案2】:

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

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

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

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

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

【讨论】:

以上是关于Titanium Mobile 在 iOS 上无法获得正确的准确性的主要内容,如果未能解决你的问题,请参考以下文章

Titanium Mobile JSON 和 Android 中的特殊字符

Appcelerator Titanium Mobile 如何工作?

使用 Titanium Mobile 编译应用程序后 JavaScript 代码会发生啥

Titanium:无需设备即可生成 IPA

Appcelerator Titanium 3.x/IOS7 无法将窗口添加为视图的子项

Titanium Facebook 模块未在 iOS 7 上完成登录