I was easily similar. Source : http://cafe.naver.com/gisapplication/50
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <maps:Map xmlns:maps="com.google.maps.*" id="map" key="myKey" mapevent_mapready="onMapReady(event)" width="100%" height="100%" left="0" top="0"/> <mx:Button x="116" y="169" label="▶" click="OnBtnMapMove2(event)" height="30" width="47" id="Btn_Right0"/> <mx:Button x="63" y="131" label="▲" click="OnBtnMapMove2(event)" height="30" width="51" id="Btn_UP0"/> <mx:Button x="20" y="169" label="◀" click="OnBtnMapMove2(event)" height="30" width="45" id="Btn_Left0"/> <mx:Button x="63" y="207" label="▼" click="OnBtnMapMove2(event)" height="30" width="51" id="Btn_Down0"/> <mx:Button x="67" y="48" label="STOP" click="OnBtnSTOP()" height="30" width="47" id="Btn_STOP" fontWeight="normal" fontSize="8"/> <mx:Button x="63" y="10" label="▲" click="OnBtnMapMove(event)" height="30" width="51" id="Btn_UP"/> <mx:Button x="20" y="48" label="◀" click="OnBtnMapMove(event)" height="30" width="45" id="Btn_Left"/> <mx:Button x="116" y="48" label="▶" click="OnBtnMapMove(event)" height="30" width="47" id="Btn_Right"/> <mx:Button x="63" y="84" label="▼" click="OnBtnMapMove(event)" height="30" width="51" id="Btn_Down"/> <mx:Script> <![CDATA[ import com.google.maps.LatLng; import com.google.maps.Map; import com.google.maps.LatLngBounds; import com.google.maps.MapOptions; import com.google.maps.MapType; import com.google.maps.MapMouseEvent; private function onMapReady(event:Event):void { this.map.setCenter(new LatLng(37.560327,126.950185), 13, MapType.HYBRID_MAP_TYPE); var myMapOptions:MapOptions = new MapOptions(); myMapOptions.zoom = 13; myMapOptions.center = new LatLng(37.560327,126.950185); myMapOptions.mapType = MapType.HYBRID_MAP_TYPE; this.map.setInitOptions(myMapOptions); this.map.enableScrollWheelZoom(); this.map.addEventListener(MapMouseEvent.MOUSE_UP, onMapMouseUp); this.map.addEventListener(MapMouseEvent.MOUSE_DOWN, onMapMouseDown); } private var MouseDownPoint : Point; private var MouseUpPoint : Point; private function onMapMouseDown(event:Event):void{ OnMapMove(0,0,0); MouseDownPoint = new Point(map.contentMouseX, map.contentMouseY); } private function onMapMouseUp(event:Event):void{ MouseUpPoint = new Point(map.contentMouseX, map.contentMouseY); if (MouseUpPoint.toString() != MouseDownPoint.toString()) { var PointAngle : Number = GetAngle(MouseDownPoint, MouseUpPoint); var Diff_X : Number = 1000* (1-(3/(map.width / Math.abs(MouseUpPoint.x - MouseDownPoint.x)))); var Diff_Y : Number = 1000* (1-(3/(map.height / Math.abs(MouseUpPoint.y - MouseDownPoint.y)))); var ScaleMoveLat : Number; var PointAngleSin : Number = Math.sin(PointAngle); if (PointAngleSin == 0) ScaleMoveLat = 0; else ScaleMoveLat = Diff_Y / PointAngleSin; var ScaleMoveLng : Number; var PointAngleCos : Number = Math.cos(PointAngle); if (PointAngleCos == 0) ScaleMoveLng = 0; else ScaleMoveLng = -Diff_X / PointAngleCos; OnMapMove(0, ScaleMoveLat, ScaleMoveLng); } } private function GetAngle( p1:Point, p2:Point):Number { //-1~0~1 var dx:Number = p2.x - p1.x; var dy:Number = p2.y - p1.y; if (dx == 0){ if (dy == 0 ) return 0; else if (dy < 0 ) return -Math.PI/2; else return Math.PI/2; } else if (dy == 0){ if (dx >= 0 ) return 0; else return Math.PI; } else { return Math.atan2( dy, dx ); } } private function OnBtnMapMove(event:Event):void{ OnMapMove(0,0,0); var ScaleMoveLat : Number = 0; var ScaleMoveLng : Number = 0; if(event.target == Btn_UP){ ScaleMoveLat = 500; ScaleMoveLng = 0; }else if(event.target == Btn_Down){ ScaleMoveLat = -500; ScaleMoveLng = 0; }else if(event.target == Btn_Left){ ScaleMoveLat = 0; ScaleMoveLng = -500; }else if(event.target == Btn_Right){ ScaleMoveLat = 0; ScaleMoveLng = 500; } OnMapMove(0, ScaleMoveLat, ScaleMoveLng); } private function OnBtnSTOP() : void { OnMapMove(0,0,0); } private function OnBtnMapMove2(event:Event):void{ OnMapMove(0,0,0); var ScaleMoveLat : Number = 0; var ScaleMoveLng : Number = 0; if(event.target == Btn_UP0){ ScaleMoveLat = 500; ScaleMoveLng = 0; }else if(event.target == Btn_Down0){ ScaleMoveLat = -500; ScaleMoveLng = 0; }else if(event.target == Btn_Left0){ ScaleMoveLat = 0; ScaleMoveLng = -500; }else if(event.target == Btn_Right0){ ScaleMoveLat = 0; ScaleMoveLng = 500; } OnMapMove(50, ScaleMoveLat, ScaleMoveLng); } private var currentTimer:Timer = new Timer(10, 50); private var MoveLat : Number = 0; private var MoveLng : Number = 0; private function OnMapMove(TimerRepeatCount : Number, MoveScaleLat : Number, MoveScaleLng : Number):void{ currentTimer.stop(); currentTimer.removeEventListener(TimerEvent.TIMER, OnMapMoveTIMER); currentTimer.repeatCount = TimerRepeatCount; currentTimer.reset(); var MapLatLngBound : LatLngBounds = map.getLatLngBounds(); if (MoveScaleLat == 0) MoveLat = 0; else MoveLat = (MapLatLngBound.getNorth()- MapLatLngBound.getSouth()) / MoveScaleLat; if (MoveScaleLng == 0) MoveLng = 0; else MoveLng = (MapLatLngBound.getEast()- MapLatLngBound.getWest()) / MoveScaleLng; currentTimer.addEventListener(TimerEvent.TIMER, OnMapMoveTIMER); currentTimer.start(); } public function OnMapMoveTIMER(event:TimerEvent) :void { var CLatLng : LatLng = new LatLng(map.getCenter().lat()+MoveLat, map.getCenter().lng()+MoveLng); map.setCenter(CLatLng); } ]]> </mx:Script> </mx:Application> /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□ 카페 : http://cafe.naver.com/gisapplication 싸이월드: http://www.cyworld.com/srhong007 ■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□ -- You received this message because you are subscribed to the Google Groups "Google Maps API For Flash" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-maps-api-for-flash?hl=en.
