我有使用自定义Google街景全景图并创建一些自定义标记的代码。

function initialize() {

    var panoOptions = {
        pano: 'a9V_yZU01A7nTQW7S4Hxjw',
        pov: {
            heading: 0,
            pitch:0
        },
        zoom: 0
    };
    var pano = new google.maps.StreetViewPanorama(document.getElementById('virtualTour'), panoOptions);

    var infowindow = new google.maps.InfoWindow();
    var marker, i;
    var markers = [];
    var locations = [
        ['<div style="width: 170px;">MARKERS 1</div>', 37.869197, -122.254583]
    ];

    for (i = 0; i < locations.length; i++) {
        marker = new google.maps.Marker({
            position: new google.maps.LatLng(locations[i][1], locations[i][2]),
            map: pano,
            visible: false,
            zIndex: 999
        });

        google.maps.event.addListener(marker, 'mouseover', (function(marker, i) {
            return function() {
                infowindow.setContent(locations[i][0]);
                infowindow.open(pano, marker);
            }
        })(marker, i));
        markers.push(marker); // save all markers
    }



    for (i = 0; i < locations.length; i++) {
        markers[i].setVisible(true);
        markers[i].setMap(pano);
    }

    pano.setVisible(true);

}


google.maps.event.addDomListener(window, 'load', initialize);


我的问题是:为什么只有在我通过地板上的Google街景箭头后才能显示标记?

我希望标记显示在初始化函数上。谁能帮我?我为我的项目创建了一个jsfiddle:
http://jsfiddle.net/7HpmE/

提前致谢!

最佳答案

迟到总比不到好。

添加标记后,只需重新加载Pano,就能解决您的问题。
我所做的就是替换以下行:

pano.setVisible(true);


(默认情况下,全景可见):

pano.setPano('a9V_yZU01A7nTQW7S4Hxjw');


这是您的jsfidle的更新版本:
http://jsfiddle.net/7mfswdbg/

关于google-maps-api-3 - 带有自定义全景图和标记的Google街景,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23498921/

10-15 00:54
查看更多