Changeset 2485 for lang/actionscript/swfgmap
- Timestamp:
- 12/05/07 18:15:26 (13 months ago)
- Location:
- lang/actionscript/swfgmap/trunk
- Files:
-
- 1 added
- 8 modified
-
TestApp.as (modified) (1 diff)
-
gyuque/gmap/GMapView.as (modified) (3 diffs)
-
gyuque/gmap/GMapViewport.as (modified) (2 diffs)
-
gyuque/gmap/IDebugOut.as (added)
-
gyuque/gmap/IMeshMap.as (modified) (1 diff)
-
gyuque/gmap/LayerManager.as (modified) (1 diff)
-
gyuque/gmap/Math2D.as (modified) (1 diff)
-
gyuque/gmap/ViewportUpdater.as (modified) (3 diffs)
-
gyuque/gmap/googlemaps/GMapMapLayer.as (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
lang/actionscript/swfgmap/trunk/TestApp.as
r2425 r2485 21 21 22 22 var T:Matrix = new Matrix(); 23 T.rotate(0. 1);23 T.rotate(0.2); 24 24 vp.setTransform(T); 25 25 setViewport(vp); -
lang/actionscript/swfgmap/trunk/gyuque/gmap/GMapView.as
r2429 r2485 7 7 import gyuque.gmap.googlemaps.*; 8 8 9 public class GMapView extends MovieClip 9 public class GMapView extends MovieClip implements IDebugOut 10 10 { 11 11 private static const GOOGLE_LOGO_URL:String = "http://www.google.com/intl/ja_jp/mapfiles/poweredby.png"; … … 20 20 public function GMapView(options:*) 21 21 { 22 GMapCalc.DEFAULT_TILE_SIZE // compile focibly. remove later!23 22 mBaseSprite = putBaseSprite(); 24 23 if (options.initial_size) … … 75 74 protected function addGoogleMapLayer():Boolean 76 75 { 77 var lyr:Layer = new GMapMapLayer(this); 76 var lyr:GMapMapLayer = new GMapMapLayer(this); 77 lyr.debug_out = this; 78 78 mSuperLayer.push(lyr); 79 79 -
lang/actionscript/swfgmap/trunk/gyuque/gmap/GMapViewport.as
r2425 r2485 40 40 } 41 41 42 p rivatefunction transformVectorScreenToView(x:Number, y:Number, out:Point):void42 public function transformVectorScreenToView(x:Number, y:Number, out:Point):void 43 43 { 44 44 out.x = x; … … 48 48 } 49 49 50 p rivatefunction transformVectorViewToScreen(x:Number, y:Number, out:Point):void50 public function transformVectorViewToScreen(x:Number, y:Number, out:Point):void 51 51 { 52 52 out.x = x; -
lang/actionscript/swfgmap/trunk/gyuque/gmap/IMeshMap.as
r2477 r2485 5 5 public interface IMeshMap 6 6 { 7 function getCurrentPanning(out:Point) :void; 7 function getCurrentPanning(out:Point) :void; 8 function get centerTileX() :int; 9 function get centerTileY() :int; 8 10 function resetPanning(tx:int, ty:int) :void; 9 11 function setTileOffset(ox:int, oy:int) :void; -
lang/actionscript/swfgmap/trunk/gyuque/gmap/LayerManager.as
r2413 r2485 3 3 public class LayerManager extends Layer 4 4 { 5 import flash.display. DisplayObjectContainer;5 import flash.display.*; 6 6 import flash.geom.Matrix; 7 7 -
lang/actionscript/swfgmap/trunk/gyuque/gmap/Math2D.as
r2413 r2485 8 8 public static function transformNoMove(v:Point, M:Matrix):void 9 9 { 10 var x:Number = v.x; 11 var y:Number = v.y; 10 var m:Matrix = M.clone(); 11 m.tx = 0; 12 m.ty = 0; 12 13 13 v.x = x*M.a + y*M.b; 14 v.y = x*M.c + y*M.d; 14 var res:Point = m.transformPoint(v); 15 v.x = res.x; 16 v.y = res.y; 15 17 } 16 18 } -
lang/actionscript/swfgmap/trunk/gyuque/gmap/ViewportUpdater.as
r2477 r2485 3 3 import flash.events.*; 4 4 import flash.utils.Timer; 5 import flash.geom. Point;5 import flash.geom.*; 6 6 7 7 public class ViewportUpdater 8 8 { 9 public var dout:IDebugOut; 10 9 11 private var mCurViewport:GMapViewport = null; 10 12 private var mListener:IMeshMap; … … 56 58 } 57 59 58 private function spread(tx:int, ty:int):void 60 private static const AROUND_POS:Array = [0, 1, 0, -1]; 61 private function spread(tx:int, ty:int, nest:int = -1):Boolean 59 62 { 60 addLoadJob(tx , ty - 1); 61 addLoadJob(tx + 1, ty ); 62 addLoadJob(tx , ty + 1); 63 addLoadJob(tx - 1, ty ); 63 if (nest == -1) 64 { 65 for (var n:int = 0;n < 5;n++) 66 { 67 if (!spread(tx, ty, n)) 68 break; 69 } 70 return false; 71 } 72 73 var retval:Boolean = false; 74 for (var i:int = 0;i < 4;i++) 75 { 76 var x:int = tx + AROUND_POS[i]; 77 var y:int = ty + AROUND_POS[(i+3)%4]; 78 79 if (nest == 0) 80 { 81 if (isTileVisible(x, y) != T_INVISIBLE) 82 { 83 retval = true; 84 addLoadJob(x, y); 85 } 86 } 87 else 88 retval = spread(x, y, nest-1) || retval; 89 } 90 91 92 93 return retval; 64 94 } 65 95 66 96 private function checkAndLoad(tx:int, ty:int):void 67 97 { 68 if (!mGHash.peek(tx, ty)) 69 { 70 mGHash.poke(tx, ty, 1); 98 if (mGHash.peek(tx, ty)) 71 99 mListener.loadTile(tx, ty); 72 }73 100 } 74 101 75 102 private function addLoadJob(tx:int, ty:int):void 76 103 { 77 mReqQueue.push(tx, ty, 1); 104 if (!mGHash.peek(tx, ty)) 105 { 106 mGHash.poke(tx, ty, 1); 107 mReqQueue.push(tx, ty, 1); 108 109 dout.puts((tx-29095)+", "+(ty-12855)); 110 } 78 111 } 79 112 … … 86 119 mListener.setTileOffset(tiledata.offset.x, tiledata.offset.y); 87 120 88 checkAndLoad(tiledata.tile_index.x, tiledata.tile_index.y);121 addLoadJob(tiledata.tile_index.x, tiledata.tile_index.y); 89 122 spread(tiledata.tile_index.x, tiledata.tile_index.y); 123 } 124 125 private static const T_INVISIBLE :int = 0; 126 private static const T_CLOSELY :int = 1; 127 private static const T_VISIBLE :int = 2; 128 private function isTileVisible(tx:int, ty:int):int 129 { 130 if (!mListener) 131 return T_INVISIBLE; 132 133 var bx:Number = (tx - mListener.centerTileX) * GMapCalc.TILE_SIZE; 134 var by:Number = (ty - mListener.centerTileY) * GMapCalc.TILE_SIZE; 135 136 var p:Point = new Point(); 137 138 mListener.getCurrentPanning(p); 139 bx += p.x; 140 by += p.y; 141 142 mCurViewport.transformVectorViewToScreen(bx, by, p); 143 144 var padding:Number = GMapCalc.TILE_SIZE*0.7; 145 for (var i:int = 0;i < 2;i++) { 146 if (p.x >= (-mCurViewport.width*0.5 - padding) && p.y >= (-mCurViewport.height*0.5 - padding) && p.x < (mCurViewport.width*0.5 + padding) && p.y < (mCurViewport.height*0.5 + padding)) 147 return T_VISIBLE-i; 148 149 padding *= 1.5; 150 } 151 152 return T_INVISIBLE; 90 153 } 91 154 } -
lang/actionscript/swfgmap/trunk/gyuque/gmap/googlemaps/GMapMapLayer.as
r2477 r2485 12 12 protected var mCenterTX:int; 13 13 protected var mCenterTY:int; 14 15 public function set debug_out(d:IDebugOut):void 16 { 17 mVPobs.dout = d; 18 } 14 19 15 20 public function GMapMapLayer(eventSrc:EventDispatcher) … … 70 75 { 71 76 out.x = x; 72 out.x = y; 77 out.y = y; 78 } 79 80 public function get centerTileX():int 81 { 82 return mCenterTX; 83 } 84 85 public function get centerTileY():int 86 { 87 return mCenterTY; 73 88 } 74 89 }
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)