Android获得最佳位置
我想要用户的确切位置。因此,我创建了两个侦听器:Android获得最佳位置,android,gps,Android,Gps,我想要用户的确切位置。因此,我创建了两个侦听器: locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mGPSListener); locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, mNetworkListener); 我正在收听来自网络和gps提供商的位置更新,希望检查两者获得的位置的准确
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mGPSListener);
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, mNetworkListener);
我正在收听来自网络和gps提供商的位置更新,希望检查两者获得的位置的准确性,以便我能够选择准确的位置。我只是想问,我是不是用正确的方式来实现。。。???如果没有,请提供一些指导如何做到这一点
我的示例代码是:
if(MyGPSListener.currentLocation != null) {
if(MyNetworkListener.currentLocation != null) {
if(MyGPSListener.currentLocation.getAccuracy() <= MyNetworkListener.currentLocation.getAccuracy()) {
useGPSLocation();
}
else if(MyGPSListener.currentLocation.getAccuracy() > MyNetworkListener.currentLocation.getAccuracy()) {
useNetworkLocation();
}
}
else {
useGPSLocation();
}
}
else if(MyNetworkListener.currentLocation != null){
useNetworkLocation();
}
if(MyGPSListener.currentLocation!=null){
if(MyNetworkListener.currentLocation!=null){
if(MyGPSListener.currentLocation.getAccuracy()MyNetworkListener.currentLocation.getAccuracy()){
useNetworkLocation();
}
}
否则{
useGPSLocation();
}
}
else if(MyNetworkListener.currentLocation!=null){
useNetworkLocation();
}
您应该看看:
特别是功能:isBetterLocation
我可能会使用类似isBetterLocation的东西。因为查看位置更新的历史非常重要。至少如果你真的想知道用户在哪里,而不是用户在哪里
但是您肯定可以在您自己描述的函数中实现时间检查 你可以查看谷歌的官方文档。 并验证位置定位的准确性:
有关用法,请参阅项目的“自述” 你为什么不先尝试一下呢?你需要包含更多的代码,因为我只看到一小部分。但是当你得到这个位置时,你可以用你保存的新位置和旧位置来调用isBetterLocation。如果你使用它更好,如果不使用,请不要使用该位置。