Android谷歌地图v2 moveCamera不起作用

时间:2015-03-18 17:18:19

标签: android google-maps

我正试图像这样控制谷歌地图相机

private void setUpMap() {
        Log.e(LOG_TAG, "in setup method");
        mMap.setMyLocationEnabled(true);
        LatLng startingPoint = new LatLng(129.13381, 129.10372);
        mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(startingPoint, 16));
        Log.e(LOG_TAG, "in Setup method" + (mMapFragment == null));
    }

LogCat打印

“在设置方法中”

“在setup方法中为false”

显示2个日志,表示mMap.moveCamera(...)被称为

setUpMap()来自此处

private void setUpMapIfNeeded() {
        mMapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentByTag(MFragment.TAG);
        if (mMapFragment != null) {
            mMapFragment.getMapAsync(new OnMapReadyCallback() {
                @Override
                public void onMapReady(GoogleMap googleMap) {
                    mMap = googleMap;
                    setUpMap();
                }
            });
        }
    }

2 个答案:

答案 0 :(得分:5)

试试这个:希望它能奏效。

private void setUpMap() {
    Log.e(LOG_TAG, "in setup method"); 
    mMap.setMyLocationEnabled(true);
    CameraPosition cameraPosition = new CameraPosition.Builder()
                .target(new LatLng(latitude, longitude)).zoom(15).build();
    mMap.animateCamera(CameraUpdateFactory
                .newCameraPosition(cameraPosition));
    Log.e(LOG_TAG, "in Setup method" + (mMapFragment == null));
}

答案 1 :(得分:2)

LatLng startingPoint = new LatLng(129.13381, 129.10372);指定的坐标似乎有点偏差。更详细地说,最大纬度是90度,即北极(-90是南极)。

这样做的结果是相机不会移动到无效的位置。

尝试使用已知位置的坐标,例如LatLng startingPoint = new LatLng(55.70, 13.19);,它将为您提供瑞典隆德的位置。

所以基本上,修改你位置的纬度和经度坐标。