Google Maps Streetview - 如何获取Panorama ID

时间:2015-04-28 09:56:56

标签: google-maps

我想使用自定义全景位置,但我需要全景ID。有人可以解释我如何从下一个链接获取全景ID:

https://www.google.nl/maps/@52.239981,6.851849,3a,90y,324.71h,64.65t/data=!3m5!1e1!3m3!1sFEpIJhSgOzoAAAQJOQCL3w!2e0!3e11

谢谢!

7 个答案:

答案 0 :(得分:10)

Google在8月/ 9月更改了pano ID的格式及其更新。类似于之前可以在!1s和!2e之间找到全景ID。因此,在Jason发布的示例中,pano ID将是(urldecoded):

F:-gVtvWrACv2k/Vnh0Vg8Z8YI/AAAAAAABLWA/a-AT4Wb8MD8

为了让它为我们工作,我们必须在它前面加上F:。还有一个已知的bug需要添加一个未记录的标志来使用更新的panos(参见https://code.google.com/p/gmaps-api-issues/issues/detail?id=7452#c51):

google.maps.streetViewViewer = 'photosphere';

答案 1 :(得分:7)

知道了!

https://www.google.nl/maps/@52.239981,6.851849,3a,90y,324.71h,64.65t/data=!3m5!1e1!3m3!1sFEpIJhSgOzoAAAQJOQCL3w!2e0!3e11

在!1s之后和!2e之前是全景ID,所以这就是:

FEpIJhSgOzoAAAQJOQCL3w

答案 2 :(得分:4)

  1. 在Google地图上找到全景
  2. 打开开发人员工具控制台
  3. 复制/粘贴/运行以下内容。结果应该是全景。
  4. 
    
    "F:".concat(window.location.href.split("!1s")[1].split("!2e")[0]).replace('%2F','/')
    
    
    

    谢谢@Rgrauphics

答案 3 :(得分:3)

答案 4 :(得分:2)

正如Justin MacLeod所说,但这就是我所做的。

您需要调整ID号。您仍然可以在!1s和!2e之间找到ID号,但是您需要更新您的网址才能使用。

Add F: to the start of your ID
Change %2F in the ID to /

我的ID示例 之前:

-3_7tAKLhLLU%2FV0nuKmxj7xI%2FAAAAAAAAdE8%2FHZYhfYoBGqAsQw-63snzF9OkIy7YT051ACLIB

之后:

F:-3_7tAKLhLLU/V0nuKmxj7xI/AAAAAAAAdE8/HZYhfYoBGqAsQw-63snzF9OkIy7YT051ACLIB

答案 5 :(得分:1)

为了获得全景ID(全景),我开发了一个HTML页面,你可以获得它的一些参数(缩放/ Pov,音高和标题),并获得街景图像请求HTTP URL。 / p>

不要忘记用您自己的API密钥替换 YOUR_API_KEY (显而易见)

享受谷歌地图的乐趣!!

<!DOCTYPE html>
<html>

<head>
<meta charset="utf-8">
<style>
    html,
    body {
        height: 95%;
        margin: 0;
        padding: 0;
    }

    #map,
    #pano {
        float: left;
        height: 95%;
        width: 45%;
    }
</style>
</head>

<body>
<div id="tray">
    <button id="doer" onclick="doThings()">do it</button>
    <span id="resulting"></span>
</div>
<div id="map"></div>
<div id="pano"></div>
<script>
    var panorama, map;
    var APIkey= "YOUR_API_KEY"

    function initialize() {
        var fenway = {
            lat: 42.345573,
            lng: -71.098326
        };
        var agbar = new google.maps.LatLng(41.4035482, 2.1894355);
        map = new google.maps.Map(document.getElementById('map'), {
            center: agbar,
            zoom: 14
        });
        panorama = new google.maps.StreetViewPanorama(
            document.getElementById('pano'), {
                position: agbar,
                pov: {
                    heading: 34,
                    pitch: 10
                }
            });
        map.setStreetView(panorama);
    }

    function doThings() {
        console.log("doing things");
        document.getElementById("resulting").innerHTML = "https://maps.googleapis.com/maps/api/streetview?size=640x640" +"&pano=" + panorama.getPano() + "&heading=" + panorama.getPov().heading + "&pitch=" + panorama.getPov().pitch + "&fov="+ (180/ (Math.pow(2, panorama.getZoom()?panorama.getZoom():1)))+ "&key=" + APIkey;
      //use the next line to open in a new tab the resulting image at max size (640x640)
        window.open("https://maps.googleapis.com/maps/api/streetview?size=640x640" + "&pano=" + panorama.getPano() + "&heading=" + panorama.getPov().heading + "&pitch=" + panorama.getPov().pitch + "&fov="+ (180/ (Math.pow(2, panorama.getZoom())))+ "&key=" +APIkey)
    }
</script>
<script async defer src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initialize">
</script>
</body>

</html>

说明:创建一个html文件,复制代码,替换API密钥,在浏览器中打开html文件,按下&#34;做到&#34;按钮。

Google可以找到更多参考资料: https://developers.google.com/maps/documentation/javascript/streetview#StreetViewPanoramas

答案 6 :(得分:0)

当您在谷歌地图上时,查看您的室内全景图。只需单击标记即可报告全景图。然后,您将在URL中看到名为“panoid”的参数,其中包含全景ID。你可以在那里复制它。就我所见,它不再是全景页面视图中URL的任何位置。