开发者

create and then remove random markers google maps api3 flash

I am trying to add an array of randomly placed markers to a Google Map in Flash with the API V3 and AS3.

I can create the markers no problem, but I'm having a bit of trouble putting them into an array and then clearing them afterwards as I need to provide this functionality.

I saw another post where people were talking about the lack of map.clearOverlays(); in V3? and I need a bit of help incorporated my code .

var markers:Array = new Array();

 function addmarkers()
{
    // Add 10 markers to the map at random locations
    var bounds:LatLngBounds = map.getLatLngBounds();
v开发者_StackOverflowar 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();

}

}

I've got a button that calls this but then I also want a button that


can you loop through the array and call map.removeOverlay() on each marker?

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


my working code with yours incorporated, thanks.

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


}
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜