2010-12-18 51 views
0

我已經使用ExternalInterface.call("javascriptMethodName")方法成功地將Google地球與Flex集成,並在嵌入了swf文件的html文件中編寫javascript東西。它成功運行並加載Google地球。如何將Google Earth功能集成到Flex中?

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 
<script src="http://earth-api-samples.googlecode.com/svn/trunk/lib/kmldomwalk.js" type="text/javascript"> </script> 
<script type="text/javascript" src="http://www.google.com/jsapi?key=I_Put_my_Key_Here"></script> 
<script type="text/javascript"> 
google.load("earth", "1"); 
google.load("maps", "2.xx"); 

var ge = null; 
var geocoder; 
var _position = [0,0,0,0]; 

function init() { 
    geocoder = new GClientGeocoder(); 
    google.earth.createInstance('map3d', initCB, failureCB); 
} 

這是HTML文件的一個片段,但是當我像添加到HTML文件的東西:

var directionsService = new google.maps.DirectionsService(); 

地球不會加載。任何人都可以建議如何克服這個問題。

謝謝!

回答

1

您只能在地圖API加載後才能調用它,這取決於您撥打電話的位置。

進一步說,爲DirectionsService是V3 API的一部分,您加載版本2.

此外,google.maps.DirectionsService()是異步的,因爲谷歌地圖API需要外部服務器的呼叫。出於這個原因,你需要傳遞一個回調方法來在請求完成時執行。這個回調方法應該處理結果。請注意,路線服務可能會返回多個可能的路線作爲單獨路線[]的數組。

要使用V3中的路線,創建一個DirectionsService類型的對象並調用DirectionsService.route()向Directions服務發起一個請求,並向它傳遞一個DirectionsRequest對象字面值,該字面值包含輸入條件和回調方法,的迴應。

請參閱文檔以獲取更多信息:http://code.google.com/apis/maps/documentation/javascript/services.html#Directions