如何在启动Streetview意图之前判断Streetview是否存在

时间:2010-10-05 16:16:36

标签: android google-street-view

启用某个位置的街景意图并不能保证该位置存在街景视图。如果Streetview不存在,用户只会看到旋转的黑屏。有没有办法在启动Streetview意图之前以编程方式检查它是否存在?

5 个答案:

答案 0 :(得分:5)

PackageManager and queryIntentActivities()Intent一起使用。如果您返回0个匹配活动的列表,则您知道设备上的任何内容都不会处理您的请求。

答案 1 :(得分:5)

执行此操作的方法是使用Google街景图像API检查是否存在Google街景。

https://developers.google.com/maps/documentation/streetview/

当存在特定坐标的街景视图时,它会返回具有不同文件大小的图像,而不是

http://maps.googleapis.com/maps/api/streetview?size=400x400&location=40.720032,%20-73.988354&fov=90&heading=235&pitch=10&sensor=false

您可以比较这些图像并检查它是否存在。

答案 2 :(得分:1)

可能会有所帮助,这是我在类似问题上的帖子 Ascertain Google Streetview function existence

答案 3 :(得分:0)

我没有检查Android API,但是使用JavaScript API,有一个带有getPanoramaByLocation方法的StreetViewService类。如果该位置没有街景视图,则返回NO_RESULTS。

答案 4 :(得分:-1)

我会给你一个我的解决方案片段,用于检查我的googe图像api streetview图像集成中是否存在街景 - 猜测你也可以使用StreetViewStatus.Ok布尔值进行普通街景。

  streetViewService.getPanoramaByLocation(latLng, STREETVIEW_MAX_DISTANCE, function (streetViewPanoramaData, status) {
            if (status === google.maps.StreetViewStatus.OK) {
                var img = document.createElement("IMG");
                img.src = 'http://maps.googleapis.com/maps/api/streetview?size=160x205&location='+ lat +','+ lng  +'&sensor=false&key=AIzaSyC_OXsfB8-03ZXcslwOiN9EXSLZgwRy94s';
                var oldImg = document.getElementById('streetViewImage');
                document.getElementById('streetViewContainerShow').replaceChild(img, streetViewImage);
            } else {
                var img = document.createElement("IMG");
                img.src = '../../images/ProfilnoProfilPicture.jpg';
                img.height = 205;
                img.width = 160;
                var oldImg = document.getElementById('streetViewImage');
                document.getElementById('streetViewContainerShow').replaceChild(img, streetViewImage);
            }
        });