2010-03-26 33 views
0

我正在使用mxmlc從谷歌編譯示例以開始使用Flex 4中的Google Maps API。但編譯完swf文件後,地圖不會加載。無法通過Flex SDK中的API顯示谷歌地圖

我已經註冊了一個API密鑰 下載並在編譯的時候 C中的XML配置文件包含了地圖SDK:\ SDK \ FLEX4 \框架\柔性-config.xml中

<external-library-path> 
    <path-element>libs/google/maps/lib/map_flex_1_18.swc</path-element> 
</external-library-path> 

Foo.mxml

<?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" mapevent_mapready="onMapReady(event)" 
    width="100%" height="100%" key="{KEY}"/> 
<mx:Script> 
    <![CDATA[ 

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

    private function onMapReady(event:Event):void { 
     this.map.setCenter(new LatLng(40.736072,-73.992062), 14, MapType.NORMAL_MAP_TYPE); 
    } 
    ]]> 
</mx:Script> 
</mx:Application> 

任何有關從哪裏去的提示?我可以毫無問題地編譯一個基本的Flex項目,並顯示我放入的組件,所以我想這是與API密鑰有關的事情?

感謝您的幫助

+0

是不是Flex 3的MXML是? Flex 4中的xmlns完全不同 – MonoThreaded 2010-03-27 10:06:35

回答

0

如果您onMapReady函數獲取調用您的API密鑰可能是OK(你會得到否則會出現錯誤)

我有完全相同的問題。但添加下面的onMapReady()函數似乎解決它:

private function onMapReady(event:Event):void 
      { 
       map.enableScrollWheelZoom(); 
       map.enableContinuousZoom(); 
       map.addControl(new ZoomControl()); 
       this.map.setCenter(new LatLng(40.736072,-73.992062), 14, MapType.NORMAL_MAP_TYPE); 
      } 

你也應該考慮使用最新版本的庫現在是20版 不幸的是,谷歌並沒有「正式」的支持Flex 4,所以我想可能還有其他的錯誤。

注意,如果你碰巧使用HTTPS,你還需要添加一個調用Security.allowInsecureDomain("maps.googleapis.com");