如何获取存储谷歌内部视图图像的服务器地址?

时间:2017-06-08 10:38:14

标签: javascript google-maps google-maps-api-3

我正在使用Google maps API v3来创建投资组合。

问题:

  

有没有办法生成默认图片链接,这可以在每个谷歌服务器上运行,或者知道使用什么服务器的方式,以便我可以相应地生成链接?

以下是我目前正在做的一个例子。它可能会或可能不会帮助您找到答案

用户路径:

  • 用户输入其商家的地址。
  • 此业务的内部视图显示iframe
  • 用户可以在此iframe上导航以选择其默认图片

在使用iframe选择的视图中,我可以直接从我设置为默认图片的Google服务器创建图片网址。

目前,此URL可以是(JS):

var image = "https://geo3.ggpht.com/cbk?panoid=" + panoId + "&output=thumbnail&cb_client=search.LOCAL_UNIVERSAL.gps&thumb=2&w=689&h=487&yaw=" + povHeading + "&pitch=" + povPitch + "&thumbfov=" + fov;

var image = "https://lh5.googleusercontent.com/" + panoId + "/w689-h487-k-no-pi"+povPitch+"-ya"+povHeading+"-ro0-fo"+fov+"/";

这适用于绝大多数案例,但随着越来越多的人使用该服务,出现了一些特殊案例(示例链接):

https://lh3.ggpht.com/-1dwRgcXpyYk/WS7bUYtLEdI/AAAAAAAAObA/zd-aK-rfWxYvA302eg6WT7qQoEKRrUxGgCLIB/x2-y2-z3/p

我正在保存这两个案例的链接,但我还没有找到可以应用的一般规则。 进入他的公司的第三个示例链接的用户正在获得404 img not found atm。

以下是我目前正在使用的代码,如果它可以帮助理解问题(JS):

function generateImg() {

    /* here I get all the vars used to create the image */

    //generate img link
    var image = "https://geo3.ggpht.com/cbk?panoid=" + panoId + "&output=thumbnail&cb_client=search.LOCAL_UNIVERSAL.gps&thumb=2&w=689&h=487&yaw=" + povHeading + "&pitch=" + povPitch + "&thumbfov=" + fov;

    //if img does not exist
    UrlExists(image, function(status){
        if(status === 404){
            // 404 not found
            var image = "https://lh5.googleusercontent.com/" + panoId + "/w689-h487-k-no-pi"+povPitch+"-ya"+povHeading+"-ro0-fo"+fov+"/";
        }
    });
}

1 个答案:

答案 0 :(得分:2)

您可以在官方API中获得一致的结果:

var image = "https://maps.googleapis.com/maps/api/streetview?size=400x400&pano=" + panoId + "&fov=90&heading=235&pitch=10&key=" + API_KEY;