1
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

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

4

1 回答 1

0

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

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

使 map 成为一个以 null 开头的全局变量。

var map = null;

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

于 2013-03-04T02:55:04.700 回答