【问题标题】:Google StreetView location谷歌街景位置
【发布时间】:2012-08-20 21:42:12
【问题描述】:

我正在使用 Google StreetView,并希望允许用户放置标记。

例如,如果它只是谷歌地图(而不是街景),我可以这样做:

google.maps.event.addListener(map, 'click', recordPosition);

function recordPosition(e) {
    var marker = new google.maps.Marker({
                    position : e.latLng,
                    map : map,
                    icon : cafeMarkerImage,
                    title : 'Centre of the universe ' + numberOfClicks
                });     

    numberOfClicks++;
}

当用户点击时,cafeMarkerImage 被放在鼠标光标下。

将这些标记添加到地图后,切换到街景视图会正确显示它们...但是,我想将它们添加到街景视图中,而不是地图视图中。

但是,在 StreetView 中,'click' 事件不可用。

我想在鼠标移动过程中找到“煎饼”中心的latLng --- 一旦用户点击。


Odi's answer 让我找到了一些方法,但我仍然卡住了:点击让我获得了街景 POV 的当前位置,但随后它立即变为我点击的位置。因此,如果我在点击时抓取 POV 并在此处添加所需的注释,但用户无法再看到它,因为视图发生了变化。

【问题讨论】:

    标签: javascript google-maps google-maps-api-3 google-maps-markers google-street-view


    【解决方案1】:

    您可以使用StreetViewPanorama layer,它为您提供适当的事件和数据。

    我猜你想要的是position_changed 事件。 See this good example 了解如何使用该事件并检索相应的数据。

    简而言之:

    var start = new google.maps.LatLng(47.500613, 8.724575);
    var panoramaOptions = {
        position: start,
        pov: {
             heading: 20,
             pitch: 0,
             zoom: 1
        },
          visible: true
    };
    var panorama = new google.maps.StreetViewPanorama(document.getElementById("pano"), panoramaOptions);
    
    google.maps.event.addListener(panorama, 'position_changed', function() {
        console.log(panorama.getPosition().toString()); 
    });​
    

    【讨论】:

    • 谢谢!我似乎无法生成任何postition_changed 事件,但pov_changed 事件做了类似的事情。这不是我所追求的,因为 POV 发生了变化(哦!),但它比我之前更接近了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多