Android 如何检查现场是否有街景
我正在使用谷歌地图Android SDK,并试图找出街景全景是否在某个位置可用 描述该功能:“如果用户单击地图标记,并且该位置具有全景,则显示全景,否则只需将地图缩放到标记位置即可) 如果位置没有全景,我不希望创建SupportStreetViewPanorama片段。 即使我创建了它,我认为唯一可能的方法是调用setOnStreetViewPanoramaChangeListener,然后调用setPosition并检查侦听器上的全景id。。。 出于某种原因,没有给听者打电话,但我还没有尝试修复它,因为它感觉太麻烦了 有什么好办法吗 我还希望(坚持)避免通过以下链接调用JavaScript API v3: 简单易行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。。。 出于某种原因,没有给听者打电话,但我还没有尝试修
@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();
}
}
});
}