Я пытаюсь добавить массив случайно размещенных маркеров на карту Google во Flash с помощью API V3 и AS3.

Я могу создать маркеры без проблем, но у меня возникли некоторые проблемы с помещением их в массив, а затем с их очисткой, поскольку мне нужно предоставить эту функцию.

Я видел другой пост, в котором люди говорили об отсутствии map.clearOverlays (); в V3? и мне нужна небольшая помощь, чтобы включить мой код.

Маркеры var: Array = new Array ();

 function addmarkers()
{
    // Add 10 markers to the map at random locations
    var bounds:LatLngBounds = map.getLatLngBounds();
var southWest:LatLng = bounds.getSouthWest();
var northEast:LatLng = bounds.getNorthEast();
var lngSpan:Number = northEast.lng() - southWest.lng();
var latSpan:Number = northEast.lat() - southWest.lat();
for (var i:int = 0; i < 10; i++)
{
    var newLat:Number = southWest.lat() + (latSpan * Math.random());
    var newLng:Number = southWest.lng() + (lngSpan * Math.random());
    var latlng:LatLng = new LatLng(newLat,newLng);
    map.addOverlay(new Marker(latlng));
    markers.push();

}

}

У меня есть кнопка, которая вызывает это, но мне также нужна кнопка, которая

1
weaveoftheride 13 Май 2011 в 22:01

2 ответа

Лучший ответ

Мой рабочий код с вашим включен, спасибо.

function dorandomPoints(e:MouseEvent):void
{
if (chkbox.selected)
{

    var bounds:LatLngBounds = map.getLatLngBounds();
    var southWest:LatLng = bounds.getSouthWest();
    var northEast:LatLng = bounds.getNorthEast();
    var lngSpan:Number = northEast.lng() - southWest.lng();
    var latSpan:Number = northEast.lat() - southWest.lat();


    for (var i:int = 0; i < 10; i++)
    {
        var newLat:Number = southWest.lat() + (latSpan * Math.random());
        var newLng:Number = southWest.lng() + (lngSpan * Math.random());
        var latlng:LatLng = new LatLng(newLat,newLng);
        var marker:Marker = new Marker(latlng);
        markerArray.push(marker);
        map.addOverlay(markerArray[i]);
        //map.removeOverlay(marker);
        //trace(markerArray.length);
    }
}
else
{


    while (markerArray.length > 0)
    {
        var m:Marker = markerArray.shift() as Marker;
        map.removeOverlay(m);
        m = null;
    }


}
}
1
weaveoftheride 17 Май 2011 в 13:22

Можете ли вы перебрать массив и вызвать map.removeOverlay () для каждого маркера?

function removeMarkers():void {
    while(markers.length > 0) {
        var m:Marker = markers.shift() as Marker;
        map.removeOverlay(m);
        m = null;
    }
}
2
Corey 13 Май 2011 в 23:04
Привет, это звучит как хорошая идея, но я правильно добавляю маркеры в массив, чтобы потом можно было их удалить. Как посмотреть, какая информация добавляется в массив с помощью маркера. Есть возможность вывести содержимое массива в консоль. спасибо, Энди.
 – 
weaveoftheride
14 Май 2011 в 15:29