其他分享
首页 > 其他分享> > Android Street View API animateTo问题

Android Street View API animateTo问题

作者:互联网

我正在构建一个包含街景的Android应用程序.在某些情况下,我想手动设置相机POV.

我看过指南on Google’s dev website,但我似乎无法让它工作.

我可以在我的应用程序中显示街景,我可以移动相机,但它不会移动到我自定义的相机/ FOV.

我的Java代码:

package com.mycompany.appname;

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import com.google.android.gms.maps.model.LatLng;
import java.util.Random;
import com.google.android.gms.maps.*;
import com.google.android.gms.maps.model.StreetViewPanoramaCamera;
import com.google.android.gms.maps.model.StreetViewPanoramaOrientation;

public class RaceMap extends FragmentActivity implements OnStreetViewPanoramaReadyCallback {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_race_map);
        StreetViewPanoramaFragment streetViewPanoramaFragment =
                (StreetViewPanoramaFragment) getFragmentManager()
                        .findFragmentById(R.id.streetviewpanorama);
        streetViewPanoramaFragment.getStreetViewPanoramaAsync(this);
    }

    @Override
    public void onStreetViewPanoramaReady(StreetViewPanorama panorama)  {
        long duration = 20;
        float tilt = 30;
        float bearing = 90;
        StreetViewPanoramaCamera camera = new StreetViewPanoramaCamera.Builder()
                .zoom(panorama.getPanoramaCamera().zoom)
                .bearing(bearing)
                .tilt(tilt)
                .build();

        panorama.setPosition(new LatLng(52.208818, 0.090587));
        panorama.setStreetNamesEnabled(false);
        panorama.setZoomGesturesEnabled(false);
        panorama.animateTo(camera, duration);

    }
}

我的活动:

<fragment
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.mycompany.appname.RaceMap"
    android:name="com.google.android.gms.maps.StreetViewPanoramaFragment"
    android:id="@+id/streetviewpanorama"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

解决方法:

尝试设置超过500毫秒的持续时间,你会看到你想要的. 1秒就足够了.

final long duration = 1000;
panorama.animateTo(camera, duration);

我认为这可能是StreetView的一些错误.持续时间值小于500无法正常工作.或者地图没有足够的时间制作动画.

标签:android,google-maps,google-street-view
来源: https://codeday.me/bug/20190623/1272932.html