2012-03-13 5 views
0

Google Earthとkmlオブジェクトを表示するWebページを開発しています。 2つのフレーム、1つは地球+ kmlオブジェクト、もう1つは高度、緯度、経度のようなkmlオブジェクトの情報を表示することです...kmlモデルオブジェクトを格納するJavaScriptグローバル変数

私はkmlオブジェクトをロードし、その情報をページ。今、kmlオブジェクトをキーボードで制御するイベントをいくつか追加し、それを移動し、すべての変更を表示フレームに反映させたいと考えています。私fetchKmlが、私は私のobjectInfo.modelにKMLモデルを保存するとき

//Constructor for object ModelInfo 
function ModelInfo(name) { 
    var me = this; 
    me.model = null; 
    me.name = name; 
    me.lon = 120.89250214028388; 
    me.lat = 22.17480037801846; 
    me.alt = 15.00; 
    me.heading = 0.0; 
    me.tilt = 0.0; 
    me.roll = 0.0; 
    me.kmlUrl = ""; 
    me.ALTITUDE_MODE = ge.ALTITUDE_RELATIVE_TO_GROUND; 
    me.scaleX = 0.3; 
    me.scaleY = 0.3; 
    me.scaleZ = 0.3; 
} 

// Fetch a KML file and show it 
function finished(object, objInfo) { 
    if (!object) { 
     // wrap alerts in API callbacks and event handlers 
     // in a setTimeout to prevent deadlock in some browsers 
     setTimeout(function() { 
      alert('Bad or null KML.'); 
     }, 0); 
     return; 
    } 

    var modelPlacemark; 
    walkKmlDom(object, function() { 
     if (this.getType() == 'KmlPlacemark' && this.getGeometry() 
       && this.getGeometry().getType() == 'KmlModel') { 
      modelPlacemark = this; 
     } 
    }); 

    var model = modelPlacemark.getGeometry(); 

    objInfo.model = model; 

これは私が呼び出す方法です私は自分のオブジェクトを作成し、それを行うためには

fetchKml

shutter = new ModelInfo("Shutter"); //shutter is global variable 

    shutter.kmlUrl = 'http://120.125.80.113/kml/student/space_shuttle_23_20110812a/space_shuttle_23_20110812a_SP.kmz'; 
    google.earth.fetchKml(ge, shutter.kmlUrl, function(obj) { 
     finished(obj, shutter); 
    }); 

しかし、問題はfetchKmlが終了した後、私はシャッターにアクセスしようとする、あります.MODELそれは

だから私の質問はどのようにそれが起こったさ、ヌルされていない、常にnullですが、私は、関数内からshutter.model にアクセスするときには、終了しましたか? kmlオブジェクトをグローバル変数に格納して後でその属性を変更することはできますか?

おかげで、 ハンス

答えて

0

いくつかの時間が理由を理解しようとした後、私はコードをデバッグするためにFirebugのを使用することを決めたと理由を見つけました。しかし、私はまだなぜそれが分からない。

変数 "shutter"に使用した名前は、Firebugを使用してデバッグしたときに、このページのメンバーとして表示されません。私はflying_objにそれを変更した場合、その後、すべてがOKですが、私は

誰もが名前と間違って何「シャッター」私にそれを説明してくださいを知っている私のflying_obj.model内のkmlオブジェクトを格納することができました。それは素晴らしいだろう!

ハンス

関連する問題