Проблема с маркером Google Map API V2

У меня есть следующий код

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

Этот код создает 10 маркеров на карте Google, теперь я хочу удалить маркеры, ниже приведен код для удаления маркеров.

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

Этот код не работает, он удаляет только информационное окно из маркера, но не удаляет изображение. Пожалуйста, направьте меня, что я делаю неправильно.


person Siddiqui    schedule 15.04.2011    source источник
comment
Настало время перейти на GoogleMaps v3, так как он полностью изменился по сравнению с v2. Большинство разработчиков, возможно, тоже не смогут вам помочь. Возможно, стоит выполнить отладку с помощью firebug для объекта карты после вызова removeOverlay.   -  person Senthil    schedule 15.04.2011


Ответы (1)


Вы помещаете свои маркеры в свой массив marker_list внутри функции обратного вызова для GEvent Listener, который вы зарегистрировали. Ваш массив будет заполнен только маркерами, у которых было запущено их InfoWindow.

Переместить "marker_list.push(маркер);" на строку выше "map.addoverlay(marker);" то есть..

  GEvent.addListener(marker, "click", function() {
                    marker.openInfoWindowHtml("iLocator <b>"+Myarr[2]+"</b>");
                 });
                    marker_list.push(marker);
                    map.addOverlay(marker);
                }//End for
person Duncan_m    schedule 15.04.2011
comment
есть еще одна проблема, с которой я столкнулся: информационное окно отображается только на одном маркере. - person Siddiqui; 15.04.2011