4

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

4

4 回答 4

5

一种方法是使用 Google Street View Image API 检查 Google Street View 是否存在。

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

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

于 2012-10-14T19:01:37.290 回答
5

与您PackageManagerqueryIntentActivities()Intent. 如果您返回 0 个匹配活动的列表,则您知道设备上的任何内容都不会处理您的请求。

于 2010-10-05T16:39:42.407 回答
0

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

于 2010-11-11T00:26:39.260 回答
-1

我会给你一个我的解决方案的片段,用于检查我的 googe image api 街景图像集成中是否存在街景 - 猜你也可以将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);
            }
        });
于 2012-12-19T10:32:23.750 回答