将相机重定向到当前位置 Google 地图 API v2

Redirect camera to current position Google Maps API v2

我正在尝试将相机移动到我当前的位置,我尝试过的是:

我的 onCreateView 看起来像:

 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View inflatedView = inflater.inflate(R.layout.fragment_photos, container, false);

        try {
            MapsInitializer.initialize(getActivity());
        } catch (Exception e) {
            // TODO handle this situation
        }

        mMapView = (MapView) inflatedView.findViewById(R.id.mapView);
        mMapView.onCreate(mBundle);


        setUpMapIfNeeded(inflatedView);

        return inflatedView;
    }

我的 onCreate 看起来像:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mBundle = savedInstanceState;
}

而且我有一个名为 setUpMapIfNeeded 的方法可以使视图膨胀...我尝试过的是用我的 mMap.getMyLocation() 创建一个位置,然后创建两个双打 lat并且 lng 它们是 = location.getLatitude and Longitude,我试图用我的位置创建一个 cameraZoomIn 但它不起作用。

private void setUpMapIfNeeded(View inflatedView) {
    if (mMap == null) {
        mMap = ((MapView) inflatedView.findViewById(R.id.mapView)).getMap();
        mMap.getUiSettings().setMyLocationButtonEnabled(true);
        mMap.setMyLocationEnabled(true);

        Location location = mMap.getMyLocation();
        double lat =  location.getLatitude();
        double lng = location.getLongitude();
        CameraUpdate cameraUpdate = CameraUpdateFactory.zoomTo(location, 10);
        mMap.animateCamera(cameraUpdate);

        if (mMap != null) {
            setUpMap();
        }
    }
}

setUpMap 方法

    private void setUpMap() {
        mMap.addMarker(new MarkerOptions().position(new LatLng(0, 0)).title("PewPew"));
        // latitude and longitude
        double latitude = 17.385044;
        double longitude = 78.486671;

// create marker
        MarkerOptions marker = new MarkerOptions().position(new LatLng(latitude, longitude)).title("Pew Pew");

// Changing marker icon
        marker.icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher));

// adding marker
        mMap.addMarker(marker);

    }

希望能帮您解决这个问题。

谢谢。

这是我缩放的方式

LatLng a = new LatLng(gps.getLatitude(), gps.getLongitude());
map.animateCamera(CameraUpdateFactory.newLatLngZoom(a, 10));

希望对你有所帮助。

GoogleMap.getLocation 已弃用,您应该使用位置服务:

LocationManager mng = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Location location = mng.getLastKnownLocation(mng.getBestProvider(new Criteria(), false));

double lat = location.getLatitude();
double lon = location.getLongitude();

CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(new LatLng(lat, lon), 10);
mMap.animateCamera(cameraUpdate);