创建然后删除随机标记google maps api3 flash

时间:2011-05-13 18:01:32

标签: flash google-maps-api-3

我正在尝试使用API​​ V3和AS3将一组随机放置的标记添加到Flash中的Google Map。

我可以创建标记没问题,但是我将它们放入一个数组然后在我需要提供此功能之后清除它们会有点麻烦。

我看到另一个帖子,人们在谈论缺少map.clearOverlays();在V3?我需要一些帮助合并我的代码。

var markers: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();

}

}

我有一个调用它的按钮但是我还想要一个按钮

2 个答案:

答案 0 :(得分:2)

你可以遍历数组并在每个标记上调用map.removeOverlay()吗?

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

答案 1 :(得分:1)

我的工作代码与您合并,谢谢。

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;
    }


}
}