我正在使用Google Maps V2,我希望当我开车/移动时,蓝色箭头始终位于地图的中心位置。但它仍然在现场持续3-4秒,然后突然跳到中心。如果我快速行驶,箭头甚至会在地图上的几秒钟内跳转到中心。我在代码中做错了什么?
public class MainActivity extends FragmentActivity implements LocationListener {
....
//when button is clicked
public void initStart() {
initMap();
initLocation();
}
public void initMap() {
supportmapfragment = (SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.googleMap);
myMap = supportmapfragment.getMap();
myMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
myMap.setMyLocationEnabled(true);
myMap.getUiSettings().setAllGesturesEnabled(false);
myMap.getUiSettings().setZoomControlsEnabled(false);
}
public void initLocation() {
lm = (LocationManager)getSystemService(LOCATION_SERVICE);
provider = LocationManager.GPS_PROVIDER;
Location location = lm.getLastKnownLocation(provider);
if(provider != null ) {
onLocationChanged(location);
}
lm.requestLocationUpdates(provider, 0, 0, this);
}
....
@Override
public void onLocationChanged(Location location) {
if(location != null) {
LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude());
myMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 17));
}
}
有人有律师吗?提前谢谢
PS:sry for my english(不好):)。
答案 0 :(得分:0)
而不是LocationManager使用GoogleMap.setOnMyLocationChangeListener,它会在蓝点位置发生变化时通知您。