Index: lang/actionscript/swfgmap/trunk/gyuque/gmap/GMapMapLayer.as
===================================================================
--- lang/actionscript/swfgmap/trunk/gyuque/gmap/GMapMapLayer.as (revision 2413)
+++ lang/actionscript/swfgmap/trunk/gyuque/gmap/GMapMapLayer.as (revision 2421)
@@ -4,4 +4,5 @@
 	import flash.display.*;
 	import flash.geom.Point;
+	import flash.net.URLRequest;
 	
 	public class GMapMapLayer extends Layer
@@ -25,5 +26,19 @@
 		protected override function updateContent(refreshAll:Boolean):void
 		{
-			
+			var v:GMapViewport = mViewport;
+			if (refreshAll && v)
+			{
+				var tiledata:Object = GMapCalc.calcTileData(v.centerNX, v.centerNY, v.zoom, 0);
+				
+				var ldr:Loader = new Loader();
+				var Murl:String = "http://mt1.google.com/mt?n=404&v=w2.61&x="+tiledata.tile_index.x+"&y="+tiledata.tile_index.y+"&zoom="+tiledata.tile_zoom;
+				var req:URLRequest = new URLRequest(Murl);
+				addChild(ldr);
+				ldr.load(req);
+				ldr.x = -128;
+				ldr.y = -128;
+				
+				GMapView(stage.getChildAt(0)).puts(Murl);
+			}
 		}
 	}
Index: lang/actionscript/swfgmap/trunk/gyuque/gmap/GMapView.as
===================================================================
--- lang/actionscript/swfgmap/trunk/gyuque/gmap/GMapView.as (revision 2413)
+++ lang/actionscript/swfgmap/trunk/gyuque/gmap/GMapView.as (revision 2421)
@@ -39,4 +39,5 @@
 				fmtDebugOut.size = 9;
 				txDebugOut.height = height;
+				txDebugOut.width = 600;
 			}
 			
Index: lang/actionscript/swfgmap/trunk/gyuque/gmap/GMapViewport.as
===================================================================
--- lang/actionscript/swfgmap/trunk/gyuque/gmap/GMapViewport.as (revision 2413)
+++ lang/actionscript/swfgmap/trunk/gyuque/gmap/GMapViewport.as (revision 2421)
@@ -72,4 +72,10 @@
 		}
 		
+		public function get zoom():int
+		{
+			return mZoom;
+		}
+		
+		
 		public function moveByPixel(dx:Number, dy:Number):void
 		{
@@ -80,6 +86,9 @@
 			transformVectorScreenToView(dx, dy, v);
 			
-			mNrmXY.x = mScreenXY.x / mMapSize;
-			mNrmXY.y = mScreenXY.y / mMapSize;
+			mBitmapXY.x += dx;
+			mBitmapXY.y += dy;
+			
+			mNrmXY.x = mBitmapXY.x / mMapSize;
+			mNrmXY.y = mBitmapXY.y / mMapSize;
 			
 			GMapCalc.XYtoLatLng(mNrmXY.x, mNrmXY.y, mLatlng);
@@ -119,5 +128,25 @@
 			return mViewToScreen;
 		}
+		
+		public function get centerBitmapX():Number
+		{
+			return mBitmapXY.x;
+		}
 	
+		public function get centerBitmapY():Number
+		{
+			return mBitmapXY.y;
+		}
+		
+		public function get centerNX():Number
+		{
+			return mNrmXY.x;
+		}
+	
+		public function get centerNY():Number
+		{
+			return mNrmXY.y;
+		}
+		
 	}
 }
Index: lang/actionscript/swfgmap/trunk/gyuque/gmap/GMapCalc.as
===================================================================
--- lang/actionscript/swfgmap/trunk/gyuque/gmap/GMapCalc.as (revision 2384)
+++ lang/actionscript/swfgmap/trunk/gyuque/gmap/GMapCalc.as (revision 2421)
@@ -52,4 +52,24 @@
 			return Math.pow(2, zoom+8);		
 		}
+		
+		public static function calcTileData(x:Number, y:Number, zoom:int, layer:int):Object
+		{
+			if (zoom < 0)
+				throw "illegal zoom level";
+
+			var mapSize:Number = calcMapSize(zoom);
+			var ox:int = Math.floor(x*mapSize) % TILE_SIZE;
+			var oy:int = Math.floor(y*mapSize) % TILE_SIZE;
+			var tx:int = Math.floor(x*mapSize / TILE_SIZE);
+			var ty:int = Math.floor(y*mapSize / TILE_SIZE);
+
+			switch(layer)
+			{
+			case 0:
+				return {tile_index: {x:tx, y:ty}, offset: {x:ox, y:oy}, tile_zoom: (17-zoom)};
+			}
+	
+			throw "illegal layer index";
+		}
 	}
 }
Index: lang/actionscript/swfgmap/trunk/TestApp.as
===================================================================
--- lang/actionscript/swfgmap/trunk/TestApp.as (revision 2413)
+++ lang/actionscript/swfgmap/trunk/TestApp.as (revision 2421)
@@ -17,5 +17,5 @@
 			stage.scaleMode = StageScaleMode.NO_SCALE;
 			
-			var vp:GMapViewport = new GMapViewport(36.09992, 139.65497, 640, 480, 2);
+			var vp:GMapViewport = new GMapViewport(36.09992, 139.65497, 640, 480, 9);
 			
 			
