在onPlaceSelected()之后moveCamera不起作用

时间:2016-08-03 20:53:46

标签: android google-maps google-places

我尝试使用以下代码将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);
}

1 个答案:

答案 0 :(得分:0)

尝试调试项目,设置断点并确保正在执行CoreApplication.Views.Count > 0方法。然后,您必须检查您的myLocation对象是否具有有效的纬度和经度值。如果摄像机为空,摄像机将不会移动。

这是一张相关的SO票,您可以尝试使用社区提供的工作:Android google map v2 moveCamera doesn't work