我尝试使用以下代码将mapFragment(Google Maps API V2)更新为从autoCompleteFragment(Google Places API)中选择的位置,标记更改得很好,但相机仍保留在以前的位置。
PlaceAutocompleteFragment autocompleteFragment=(PlaceAutocompleteFragment)getFragmentManager().findFragmentById(R.id.autoComplete);
autocompleteFragment.setOnPlaceSelectedListener(new PlaceSelectionListener() {
@Override
public void onPlaceSelected(Place place) {
LatLng autoCompleteLatLng=place.getLatLng();
Location newLoc=new Location("New");
newLoc.setLatitude(autoCompleteLatLng.latitude);
newLoc.setLongitude(autoCompleteLatLng.longitude);
onLocationChanged(newLoc);
}
private void handleNewLocation(Location location){
double currentLatitude = location.getLatitude();
double currentLongitude = location.getLongitude();
LatLng latLng = new LatLng(currentLatitude, currentLongitude);
MarkerOptions options = new MarkerOptions()
.position(latLng)
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_MAGENTA));
map.addMarker(options);
map.moveCamera(CameraUpdateFactory.newLatLng(latLng));
map.animateCamera(CameraUpdateFactory.zoomTo(10.0f));
}
@Override
public void onLocationChanged(Location location){
handleNewLocation(location);
}
答案 0 :(得分:0)
尝试调试项目,设置断点并确保正在执行CoreApplication.Views.Count > 0
方法。然后,您必须检查您的myLocation
对象是否具有有效的纬度和经度值。如果摄像机为空,摄像机将不会移动。
这是一张相关的SO票,您可以尝试使用社区提供的工作:Android google map v2 moveCamera doesn't work