Android 如何检查现场是否有街景

Android 如何检查现场是否有街景,android,google-maps-android-api-2,android-maps-v2,Android,Google Maps Android Api 2,Android Maps V2,我正在使用谷歌地图Android SDK,并试图找出街景全景是否在某个位置可用 描述该功能:“如果用户单击地图标记,并且该位置具有全景,则显示全景,否则只需将地图缩放到标记位置即可) 如果位置没有全景,我不希望创建SupportStreetViewPanorama片段。 即使我创建了它,我认为唯一可能的方法是调用setOnStreetViewPanoramaChangeListener,然后调用setPosition并检查侦听器上的全景id。。。 出于某种原因,没有给听者打电话,但我还没有尝试修

我正在使用谷歌地图Android SDK,并试图找出街景全景是否在某个位置可用

描述该功能:“如果用户单击地图标记,并且该位置具有全景,则显示全景,否则只需将地图缩放到标记位置即可)

如果位置没有全景,我不希望创建SupportStreetViewPanorama片段。 即使我创建了它,我认为唯一可能的方法是调用setOnStreetViewPanoramaChangeListener,然后调用setPosition并检查侦听器上的全景id。。。 出于某种原因,没有给听者打电话,但我还没有尝试修复它,因为它感觉太麻烦了

有什么好办法吗

我还希望(坚持)避免通过以下链接调用JavaScript API v3:

简单易行

@Override
        public void onStreetViewPanoramaReady(final StreetViewPanorama streetViewPanorama) {
            streetView = streetViewPanorama;
            streetViewPanorama.setOnStreetViewPanoramaChangeListener(new StreetViewPanorama.OnStreetViewPanoramaChangeListener() {
                @Override
                public void onStreetViewPanoramaChange(StreetViewPanoramaLocation streetViewPanoramaLocation) {
                    if (streetViewPanoramaLocation != null && streetViewPanoramaLocation.links != null) {
                        streetView = streetViewPanorama;
                        streetViewPanorama.setPosition(new LatLng(36.0579667, -112.1430996));
                        StreetViewPanoramaCamera camera = new StreetViewPanoramaCamera.Builder()
                                .bearing(180)
                                .build();
                        streetViewPanorama.animateTo(camera, 100);
                    } else {
                        Toast.makeText(StreetView_Panorama.this, "location not available", Toast.LENGTH_SHORT).show();
                    }
                }
            });
        }

您可以使用街景元数据。如果它返回标记位置的全景id,您应该可以使用。使用它需要API密钥,但不使用积分。 另一方面,今年早些时候谷歌改变了云计算的定价,街景全景的使用成本变得非常昂贵。所以,除非你肯定要使用它,否则不要实例化它


我也想检查一下。我正在尝试您的上述代码。我得到的streetViewService无法解决。如何创建streetViewService的对象。请帮助确保您使用的是最新的Google Play服务。这是最新的,可能与
@Override
        public void onStreetViewPanoramaReady(final StreetViewPanorama streetViewPanorama) {
            streetView = streetViewPanorama;
            streetViewPanorama.setOnStreetViewPanoramaChangeListener(new StreetViewPanorama.OnStreetViewPanoramaChangeListener() {
                @Override
                public void onStreetViewPanoramaChange(StreetViewPanoramaLocation streetViewPanoramaLocation) {
                    if (streetViewPanoramaLocation != null && streetViewPanoramaLocation.links != null) {
                        streetView = streetViewPanorama;
                        streetViewPanorama.setPosition(new LatLng(36.0579667, -112.1430996));
                        StreetViewPanoramaCamera camera = new StreetViewPanoramaCamera.Builder()
                                .bearing(180)
                                .build();
                        streetViewPanorama.animateTo(camera, 100);
                    } else {
                        Toast.makeText(StreetView_Panorama.this, "location not available", Toast.LENGTH_SHORT).show();
                    }
                }
            });
        }