0

次のコードがあります

var marker;
var marker_list = [];
                    for (iLoopIndex=0;iLoopIndex<10;iLoopIndex++)
                    {
                        centerPoint = new GLatLng(32+iLoopIndex,68+iLoopIndex);
                        alert(centerPoint);
                        map.setCenter(centerPoint);

                        blueIcon = new GIcon(G_DEFAULT_ICON);
                        blueIcon.image = "truck.png";
                        blueIcon.iconSize = new GSize(40, 20);

                        // Set up our GMarkerOptions object
                        markerOptions = { icon:blueIcon };
                        //map.addOverlay(new GMarker(centerPoint, markerOptions));
                        marker = new GMarker(centerPoint, markerOptions);

                        GEvent.addListener(marker, "click", function() {
                        marker.openInfoWindowHtml("iLocator <b>"+Myarr[2]+"</b>");
                        marker_list.push(marker);
                     });
                        map.addOverlay(marker);
                    }//End for

このコードは、Googleマップ上に10個のマーカーを作成します.マーカーを削除したいのですが、マーカーを削除するコードは次のとおりです.

for (iLoopIndex=0;iLoopIndex<marker_list.length;iLoopIndex++)
{
    map.removeOverlay(marker_list[iLoopIndex]);
}

このコードは、マーカーから情報ウィンドウを削除するだけで機能しませんが、画像は削除しません。私が間違っていることを教えてください。

4

1 に答える 1

1

登録した GEvent Listener のコールバック関数内で、marker_list 配列にマーカーをプッシュしています。配列には、InfoWindow がトリガーされたマーカーのみが読み込まれます。

「marker_list.push(marker);」を移動 「map.addoverlay(marker);」の上の行まで つまり..

  GEvent.addListener(marker, "click", function() {
                    marker.openInfoWindowHtml("iLocator <b>"+Myarr[2]+"</b>");
                 });
                    marker_list.push(marker);
                    map.addOverlay(marker);
                }//End for
于 2011-04-15T04:42:17.943 に答える