java - Android - 我怎样才能实现这个谷歌地图动画?

标签 java android google-maps google-maps-android-api-2

这就是我目前使用谷歌地图的方式;

        mapFragment = ((SupportMapFragment) getChildFragmentManager()
                .findFragmentById(R.id.map)).getMap();
        mapFragment.setMyLocationEnabled(true);
        mapFragment.setMapType(GoogleMap.MAP_TYPE_HYBRID);
        mapFragment.getUiSettings().setMapToolbarEnabled(false);
        mapFragment.getUiSettings().setScrollGesturesEnabled(false);
        mapFragment.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null);

它会生成一张全屏 map ,由于某种原因,该 map 完全放大到海洋中,因此 map 只有一个大的蓝色像素,直到您继续缩小。

我想做的事情:

  • 打开此 Activity 时, map 应以用户的位置为中心,并且 map 应尽可能缩小(就像您正在查看 2D 地球仪一样)

    <
  • 然后 map 应该会缩放/动画显示玩家的位置,以产生与您按下 map 右上角的位置按钮时相同的效果。

我在网上看过,尝试过一些东西,但没有任何运气。如果有人可以引导我完成此过程或给我一个很好的指南的链接,将不胜感激!

最佳答案

要实现你想要的,你应该:
1) 获取用户的位置,您可以使用最后已知的位置,这样您的主要 Activity 就不会挂起并等待 GPS 返回位置。

    LocationManager locationManager = (LocationManager)getSystemService
            (Context.LOCATION_SERVICE);
    Location getLastLocation = locationManager.getLastKnownLocation
            (LocationManager.PASSIVE_PROVIDER);

2) 将缩放级别设置为 1,这是最小的缩放级别,2D globe;您也可以使用用户位置将 map 居中。

    googleMap.moveCamera(CameraUpdateFactory.zoomTo(1));

3) 设置相机动画以缩放到用户位置,缩放级别为 20(最大缩放级别)。需要注意的一件事是,您可能希望等到 2D globe map 加载完毕,以便用户可以看到缩放发生。

        googleMap.setOnMapLoadedCallback(new GoogleMap.OnMapLoadedCallback() {
            public void onMapLoaded() {
                googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(new CameraPosition.Builder()
                        .target(new LatLng(userLocation.getLatitude(), userLocation.getLongitude()))
                        .zoom(20)
                        .build()));
            }
        });

我试过了,对我来说效果很好。如果不清楚,请告诉我,希望对您有所帮助。

enter image description here

关于java - Android - 我怎样才能实现这个谷歌地图动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31508444/

相关文章:

android - Android 上的 UIImage

Android ADB 从/data/data/com.xxx 复制到/sdcard

Java/Android : how to get full date string for user language and country?

java - 显示图像并转换为灰度 - OpenCV for Android, Java API

java - 如何在 Spring 样本宠物诊所中使用JPA?

java - 在 Spring Boot 应用程序的 REST 调用中接受 Enum 的空字符串

javascript - 谷歌地图函数 fromLatLngToContainerPixel(LatLng) 不工作

javascript - 进行数据绑定(bind) :click work like a marker. addListener()

javascript - 如何让信息窗口停留在谷歌地图中标记的鼠标移出位置上?

java - 如何将Java代码转换成Matlab