无法在Google地图v3中保留标记

时间:2013-03-04 02:49:26

标签: google-maps-api-3

function showPointMarker (point, index, address, changeCenter, changeZoomLevel) {

    if (changeCenter)
    {
        if (changeZoomLevel) {
        //  marker.setMap(map);
            map = new google.maps.Map(
                      document.getElementById('map'), {
                      center: point,
                      zoom: 7,
                      mapTypeId: google.maps.MapTypeId.ROADMAP
                    });
        } else {
            map = new google.maps.Map(
                      document.getElementById('map'), {
                      center: point,
                      zoom: 10,
                      mapTypeId: google.maps.MapTypeId.ROADMAP
                    });


        var letter = String.fromCharCode("A".charCodeAt(0) + index);
        //var letteredIcon = new GIcon(baseIcon);
        //letteredIcon.image = "";
        var pinImage = new google.maps.MarkerImage("http://www.google.com/mapfiles/marker" + letter + ".png" ,
                new google.maps.Size(21, 34),
                new google.maps.Point(0,0),
                new google.maps.Point(10, 34));
        var siteLatLng = new google.maps.LatLng(point.hb,point.ib);
        var marker = new google.maps.Marker({
            position: siteLatLng,
            map: map,
            icon:pinImage,
            html: address
        });
        marker.setMap(map);
        google.maps.event.addListener(marker, "click", function () {
            //  alert(this.html);
              infowindow.setContent(this.html);
              infowindow.open(map, this);
          });

        } //else ends here
    } // if change center ends here

} //function ends here

我试图在地图上添加标记,我无法保留以前的标记,我只看到最后一个,请帮助我在这里..感谢您的帮助。 我在这里遗漏了一些东西,任何人都可以指出我的错误。

1 个答案:

答案 0 :(得分:0)

看起来您每次都要重新初始化地图。您只想执行一次这些操作,例如:

if( ! map ) {
    map = new google.maps.Map(        
    // ...

使map成为以null开头的全局var。

var map = null;

此外,如果您要刷新页面,则需要重新绘制循环中的所有点。