使用 Appcelerator 中的 gps 准确跟踪位置
tracking position accuratly with gps in Appcelerator
我按照这个来标记用户在地图上的当前位置,就像导航器一样
http://docs.appcelerator.com/platform/latest/#!/guide/Tracking_Position_and_Heading,它有效,但地图上的位置不完全正确,位置太近似,有时当我走路时它会在另一条街道或建筑物中间标记我。而且,位置在5/10秒后改变,时间太多了。
我在开车的时候也试过我的app,完全不行。
我发现了类似的问题并尝试了类似的解决方案,https://archive.appcelerator.com/topic/3637/continually-monitor-gps-position-every-sec-best-accuracy-and-provider/1?page=1:希望得到一些帮助。谢谢
您可以确定 iOS 和 Android 的位置监控的准确性。来自我的应用程序的示例:
if (!Ti.Geolocation.locationServicesEnabled) {
throw new Error('Location Services Disabled');
}
if (OS_IOS) {
Ti.Geolocation.accuracy = Ti.Geolocation.ACCURACY_BEST;
Ti.Geolocation.distanceFilter = Alloy.CFG.minUpdateDistance;
Ti.Geolocation.preferredProvider = Ti.Geolocation.PROVIDER_GPS;
}
if (OS_ANDROID) {
Ti.Geolocation.Android.addLocationProvider(Ti.Geolocation.Android.createLocationProvider({
name: Ti.Geolocation.PROVIDER_GPS,
minUpdateDistance: Alloy.CFG.minUpdateDistance,
minUpdateTime: (Alloy.CFG.minAge / 1000)
}));
Ti.Geolocation.Android.addLocationRule(Ti.Geolocation.Android.createLocationRule({
provider: Ti.Geolocation.PROVIDER_GPS,
accuracy: Alloy.CFG.accuracy,
maxAge: Alloy.CFG.maxAge,
minAge: Alloy.CFG.minAge
}));
Ti.Geolocation.Android.manualMode = true;
}
我按照这个来标记用户在地图上的当前位置,就像导航器一样 http://docs.appcelerator.com/platform/latest/#!/guide/Tracking_Position_and_Heading,它有效,但地图上的位置不完全正确,位置太近似,有时当我走路时它会在另一条街道或建筑物中间标记我。而且,位置在5/10秒后改变,时间太多了。
我在开车的时候也试过我的app,完全不行。
我发现了类似的问题并尝试了类似的解决方案,https://archive.appcelerator.com/topic/3637/continually-monitor-gps-position-every-sec-best-accuracy-and-provider/1?page=1:希望得到一些帮助。谢谢
您可以确定 iOS 和 Android 的位置监控的准确性。来自我的应用程序的示例:
if (!Ti.Geolocation.locationServicesEnabled) {
throw new Error('Location Services Disabled');
}
if (OS_IOS) {
Ti.Geolocation.accuracy = Ti.Geolocation.ACCURACY_BEST;
Ti.Geolocation.distanceFilter = Alloy.CFG.minUpdateDistance;
Ti.Geolocation.preferredProvider = Ti.Geolocation.PROVIDER_GPS;
}
if (OS_ANDROID) {
Ti.Geolocation.Android.addLocationProvider(Ti.Geolocation.Android.createLocationProvider({
name: Ti.Geolocation.PROVIDER_GPS,
minUpdateDistance: Alloy.CFG.minUpdateDistance,
minUpdateTime: (Alloy.CFG.minAge / 1000)
}));
Ti.Geolocation.Android.addLocationRule(Ti.Geolocation.Android.createLocationRule({
provider: Ti.Geolocation.PROVIDER_GPS,
accuracy: Alloy.CFG.accuracy,
maxAge: Alloy.CFG.maxAge,
minAge: Alloy.CFG.minAge
}));
Ti.Geolocation.Android.manualMode = true;
}