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