一边看Google的文档,一边做的记录。
注意,HTML中要在FlashVars中加入key=XXXXX(XXXX相当于注册码,在Google上可以免费获得)
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="100%" height="100%">
<mx:Panel title="Google Maps API for Flash - Simple Map" width="100%" height="100%">
<mx:UIComponent
id="mapContainer"
initialize="startMap(event);"
resize="resizeMap(event)" width="100%" height="100%"
/>
</mx:Panel>
<mx:Script>
<![CDATA[
import com.google.maps.controls.ControlPosition;
import com.google.maps.controls.MapTypeControl;
import com.google.maps.controls.ZoomControl;
import com.google.maps.controls.PositionControl;
import mx.controls.Alert;
import com.google.maps.MapMoveEvent;
import com.google.maps.MapMouseEvent;
import com.google.maps.InfoWindowOptions;
import com.google.maps.overlays.Marker;
import com.google.maps.LatLngBounds;
import flash.events.Event;
import com.google.maps.MapEvent;
import com.google.maps.Map;
import com.google.maps.MapType;
import com.google.maps.LatLng;
private var map:Map;
private var message:Array = ["This","is","the","secret","message"];
public function startMap(event:Event):void {
map = new Map();
map.addEventListener(MapEvent.MAP_READY, onMapReady);
mapContainer.addChild(map);
}
public function resizeMap(event:Event):void {
map.setSize(new Point(mapContainer.width, mapContainer.height));
}
private function onMapReady(event:MapEvent):void {
map.setCenter(new LatLng(37.4419, -122.1419), 13, MapType.NORMAL_MAP_TYPE);
map.removeMapType(MapType.HYBRID_MAP_TYPE);
var bottomRight:ControlPosition = new ControlPosition(ControlPosition.ANCHOR_BOTTOM_RIGHT);
var PC:MapTypeControl = new MapTypeControl();
//PC.setControlPosition(bottomRight);
map.addControl(PC);
//setCenter(new LatLng(37.4419, -122.1419), 13, MapType.NORMAL_MAP_TYPE);
//map.setMapType(MapType.SATELLITE_MAP_TYPE);
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 latlng:LatLng = new LatLng(southWest.lat() + latSpan * Math.random(),
southWest.lng() + lngSpan * Math.random());
//map.addOverlay(new Marker(latlng));
map.addOverlay(createMarker(latlng, i + 1));
}
map.openInfoWindow(map.getCenter(), new InfoWindowOptions({title: “Hello”, content: “World”}));
var myTimer:Timer = new Timer(1000, 1);
myTimer.addEventListener(”timer”, timedFunction);
myTimer.start();
//map.addEventListener(MapMouseEvent.CLICK, onMapClick);
map.addEventListener(MapMoveEvent.MOVE_END, onMapMoveEnd);
}
private function timedFunction(eventArgs:TimerEvent):void {
map.panTo(new LatLng(37.4569, -122.1569));
}
private function onMapMoveEnd(event:MapMoveEvent):void {
var center:LatLng = map.getCenter();
map.openInfoWindow(center, new InfoWindowOptions({title: “Move Event”, content: “MOVE_END generated on Map”}));
}
private function onMapClick(event:MapMouseEvent):void {
map.openInfoWindow(event.latLng, new InfoWindowOptions({title: “Click Event”, content: “You clicked the map!”}));}
private function createMarker(latlng:LatLng, number:Number):Marker {
var marker:Marker = new Marker(latlng);
marker.addEventListener(MapMouseEvent.CLICK, function(e:MapMouseEvent):void {
var myHtml:String = “#” + number + ” ” + message[number -1];
map.openInfoWindow(latlng, new InfoWindowOptions({title:”",content:myHtml}));
});
return marker;
}
]]>
</mx:Script>
</mx:Application>