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