1

我正在使用 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 会正确显示它们……但是,我想将它们添加到 StreetView,而不是地图视图中。

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

我想找到latLng鼠标移动期间街景中显示的“煎饼”的中心——一旦用户点击。


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

4

1 回答 1

1

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

我猜你想要的是position_changed事件。请参阅如何使用事件并检索相应数据的这个很好的示例。

简而言之:

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()); 
});​
于 2012-08-21T00:27:50.270 回答