簡體   English   中英

Android-如何實現此Google Maps動畫?

[英]Android - How can I achieve this Google Maps animation?

這就是我目前使用我的Google地圖的方式;

        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);

它會生成一個全屏地圖,由於某種原因,它會完全放大到海洋中,因此該地圖只是一個大的藍色像素,直到您繼續縮小為止。

我想做的事:

  • 打開此活動后,地圖應將用戶的位置置於中心,並且地圖應盡可能縮小(就像您正在查看2D地球一樣)

  • 然后,地圖應縮放/動畫化播放器的位置,以產生與按地圖右上角的位置按鈕時相同的效果。

我在網上看過,嘗試了幾件事,對此還沒有任何運氣。 如果有人可以指導我完成這個工作或為我提供一個不錯的指南的鏈接,將不勝感激!

要實現您想要的目標,您應該:
1)獲取用戶的位置,您可以使用最近的已知位置,這樣您的主要活動就不會掛起並等待GPS返回位置。

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

2)將縮放級別設置為1,這是最小的縮放級別,即2D globe 您也可以使用用戶位置將地圖居中。

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

3)為相機設置動畫,以縮放級別20(最大縮放級別)放大到用戶位置。 需要注意的一件事是,您可能要等到加載2D globe地圖后,用戶才能看到縮放發生的情況。

        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()));
            }
        });

我嘗試了一下,對我來說很好。 讓我知道是否不清楚,希望對您有所幫助。

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM