package { /* Hi peeps, I'm no AS3 programmer, so grant me some slack for the mess here, no copyright/credit crap, G. */ //include some google map classes import com.google.maps.Map; import com.google.maps.LatLng; import com.google.maps.MapType; import com.google.maps.MapEvent; import com.google.maps.MapZoomEvent import com.google.maps.LatLngBounds; import com.google.maps.MapMouseEvent; import com.google.maps.interfaces.IProjection; import com.google.maps.interfaces.IMapType; import com.google.maps.controls.OverviewMapControl; import com.google.maps.controls.MapTypeControl; import com.google.maps.controls.ZoomControl; import com.google.maps.controls.ZoomControlOptions; import com.google.maps.controls.PositionControl; import com.google.maps.controls.PositionControlOptions import com.google.maps.controls.ControlPosition; import com.google.maps.overlays.Marker; import com.google.maps.overlays.MarkerOptions; import com.google.maps.overlays.Polyline; import com.google.maps.overlays.PolylineOptions; import com.google.maps.overlays.EncodedPolylineData; import com.google.maps.styles.StrokeStyle; import com.google.maps.styles.FillStyle; //bleuuuh flash classes import flash.display.MovieClip; import flash.events.Event; import flash.events.MouseEvent; import flash.display.*; import flash.geom.*; import flash.net.*; import flash.utils.Timer; import flash.events.TimerEvent; import fl.video.*; import fl.transitions.Tween; import fl.transitions.TweenEvent; import fl.transitions.easing.*; import flash.utils.Timer; import flash.events.TimerEvent; import flash.system.Security; import flash.utils.getTimer; // public class gdrive extends MovieClip { //declare map object var map:Object var pos:Array = new Array();// << holds all LatLng var vid:FLVPlayback = new FLVPlayback(); var currentPlayTime:Number = new Number(); var oldPlayTime:Number = new Number(); Security.allowDomain("maps.googleapis.com/maps/flashapi"); var limit:Number; var loader:URLLoader = new URLLoader(); var oldGetTimer:Number; // var fakeMover:Object = {xpos:0,ypos:0}; var fakeTween:Tween; // public function gdrive() { map = new Map(); //This key works only for my domain, you can get yours at http://code.google.com/apis/maps/signup.html from the really nice Google people map.key = "ABQIAAAAADe8VyvZ4mVIbOBavvYPXhTVPvtv2R_FApopADP4OF5rRSNshRQYOEJk9cQsLnCnHO-TIwlyqGByyQ"; //set size of the map map.setSize( new Point( 400, 358 ) ); //can't be bothered with these right now, no space anyway. //map.addControl( new PositionControl() ); //map.addControl( new MapTypeControl() ); var zozo:ZoomControlOptions = new ZoomControlOptions; zozo.hasScrollTrack = false; map.addControl(new ZoomControl(zozo)); //listen to map and fire the onMapReady Event map.addEventListener( MapEvent.MAP_READY, onMapReady, false, 0, true ); //add the map object to DisplayObject "previously known as" stage, "previously known as" _root, "previously known as" _level0, actionscript madness this.addChild( DisplayObject( map ) ); } //map init done private function onMapReady( event:MapEvent ):void { //remove the map listener since its finished loading map.removeEventListener( MapEvent.MAP_READY, onMapReady ); //set map center map.setCenter( new LatLng( 46.357970, 8.032244 ), 18, MapType.SATELLITE_MAP_TYPE ); map.addEventListener(MapMouseEvent.CLICK, onMapClick); map.enableCrosshairs(); //load positions getPositions(); } // public function onMapClick(event:MapMouseEvent):void { vid.pause(); } // public function onMapZoomed(MapZoomEvent:Object):void{ var newLimit:Number = new Number(20 - MapZoomEvent.zoomLevel);// << not perfect but who cares really?! newLimit *= newLimit; drawPoly(pos,newLimit); } //load the file with all the positions public function getPositions() { var request:URLRequest = new URLRequest("positions.txt"); loader.dataFormat = URLLoaderDataFormat.TEXT; loader.addEventListener(Event.COMPLETE, loaderComplete); loader.load(request); } //parse the positions into two-dimensional array public function loaderComplete(event:Event):void { pos = loader.data.split("\n"); for(var i=0;i