自动按下 MapView 上的“我的位置”按钮

And*_*ing 5 android android-mapview google-maps-android-api-2

我有一个MapViewFragment并且我已经通过setMyLocationEnabled(). 一切都按预期工作。

对于典型的用例,我想放大到用户的位置 - 在股票地图 UI 上按下“我的位置”按钮的确切行为。

我想让用户不必按“我的位置”按钮并自动执行此步骤,但我无法从 API 中看到如何执行此操作。我可以UiSettings从,GoogleMap但这似乎只允许我查询/设置地图 UI的状态(即我的位置是否已启用并因此可以被按下)。

或者我真的必须设置 aLocationClient并计算和动画到 aCameraUpdate吗?这似乎是做一些非常常见/简单的事情的大量跑腿工作。正确实现这一点的逻辑(即用户期望它的行为)比乍一看更复杂,我很想避免重复已经在谷歌地图中明显实现的代码。

Ash*_*esh 4

要将地图相机位置移动到用户位置,您必须首先找到用户位置,通过使用 locationmangaer 类对象,您可以在 onLocationChange 方法中获取该位置

LocationManager locationManager = (LocationManager) getActivity().getSystemService(
                Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(
                        LocationManager.NETWORK_PROVIDER, 0, 0, this);

//... 

public void onLocationChanged(Location location) {
        // TODO Auto-generated method stub
        CameraPosition cameraPosition = new CameraPosition.Builder()
                .target(new LatLng(location.getLatitude(), location
                        .getLongitude())) //
                .zoom(9).build();
        map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));

        locationManager.removeUpdates(this);
}
Run Code Online (Sandbox Code Playgroud)