你好,这是一个非常古怪的错误。我试图将distanceTo()
从我的位置移到一个固定的位置,我知道它到底有多远。当我的WiFi关闭时,我得到一个非常奇怪的数字但是当WiFi打开时,即使它没有连接到任何网络,我得到正确的号码。这是什么原因。我正在测试三星Galaxy S3。
locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
Criteria crit = new Criteria();
str = locationManager.getBestProvider(crit, false);
locationManager.requestLocationUpdates(str , 0, 1, this);
@Override
public void onLocationChanged(Location location) {
LatLng myLatLng = new LatLng(location.getLatitude(), location.getLongitude());
Location destination = new Location("dest");
destination.setLatitude(54.008447);
destination.setLongitude(-2.783383);
float distance = location.distanceTo(destination);
CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(myLatLng, 15);
mMap.animateCamera(cameraUpdate);
String destLocation;
destLocation = distance/2 +"";
Log.e("distance", destLocation);
locationManager.removeUpdates(this);
}
我不使用getLastKnownLocation
,因为我在某处读到它不可靠,最好在显示您的位置之前获取位置更新。
答案 0 :(得分:0)
当您在地图上看到蓝点时,请使用mMap.getMyLocation()
或mMap.setOnMyLocationChangeListener(...)
代替使用LocationManager
的所有代码。您将获得正确的位置。