2011-07-12 230 views
0

我有一個谷歌地圖,我想刷新或從我的代碼重新加載地圖。這怎麼可能?刷新/重新加載谷歌地圖

我通過這個鏈接http://www.codigoactionscript.org/langref/googlemaps/com/google/maps/MapEvent.html,但沒有刷新/重新加載映射那裏。

+0

爲什麼你會重新加載地圖?你想重置位置,縮放和覆蓋? –

+0

原因是,有時客戶端由於連接問題而無法訪問互聯網。我需要每5分鐘刷新一次/刷新或爲我的應用程序「onClick」來解決這個問題。我通過'googleMap.dispatchEvent(新的MapEvent(MapEvent.MAP_READY,onMapLoadReady))解決了這個問題。 '但這不是我想要的。 –

回答

1

這並不完全是「刷新地圖」;然而,完成同樣的事情。

使用一個定時器,除去從舞臺的地圖,然後重新添加,呼籲全谷歌地圖的生命週期:

 

package 
{ 
    import com.google.maps.LatLng; 
    import com.google.maps.Map; 
    import com.google.maps.MapEvent; 
    import com.google.maps.MapType; 

    import flash.display.Sprite; 
    import flash.events.TimerEvent; 
    import flash.geom.Point; 
    import flash.utils.Timer; 

    public class Test extends Sprite 
    { 

     private var _map:Map; 

     private var _timer:Timer; 

     public function Test() 
     { 
      super(); 

      createMap(); 

      _timer = new Timer(300000); // 5-min 
      _timer.addEventListener(TimerEvent.TIMER, timerHandler); 
      _timer.start(); 
     } 

     private function timerHandler(event:TimerEvent):void 
     { 
      while (numChildren > 0) 
       removeChildAt(0); 

      createMap(); 
     } 

     protected function createMap():void 
     { 
      _map = new Map(); 
      _map.key = "YOUR_API_KEY"; 
      _map.sensor = "false"; 
      _map.setSize(new Point(stage.stageWidth, stage.stageHeight)); 
      addChild(_map); 

      _map.addEventListener(MapEvent.MAP_READY, mapReadyHandler); 
     } 

     protected function mapReadyHandler(event:MapEvent):void 
     { 
      _map.removeEventListener(MapEvent.MAP_READY, mapReadyHandler); 
      _map.setCenter(new LatLng(37.4419, -122.1419), 13, MapType.NORMAL_MAP_TYPE); 
     } 

    } 
} 
+0

10 000次謝謝......) –