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 代码会发生啥