ウェブページが読み込まれたときにGoogleEarthプラグインに次のことを行わせる方法はありますか?
- http://www.ppacg.org/tours/logo.htmlのように、静的な.kmzファイルを表示します
- http://www.ppacg.org/tours/tabview.html?project=08-37のように、ツアープレーヤー.kmzを開始します
上記の#1または#2のいずれかを個別に実行できますが、Webページの読み込み時に両方を実行する方法がわかりません。
ウェブページが読み込まれたときにGoogleEarthプラグインに次のことを行わせる方法はありますか?
上記の#1または#2のいずれかを個別に実行できますが、Webページの読み込み時に両方を実行する方法がわかりません。
google.earth名前空間でfetchKmlメソッドを使用して、両方のファイルを簡単に読み込むことができます。次に、データの表示とコールバックパラメーターへのツアーの入力を処理するロジックを提供できます。
ツアーを再生するには、KmlDOMを歩いてKmlTourオブジェクトを探し、GETourPlayerで開くことができるようにする必要があります。これを行うには、earthユーティリティライブラリを使用するか、またはkmldomwalk.jsスクリプト を使用できます。
次のjava-scriptのようなものが機能するはずです(ただし、ここに記述されており、テストされていません)。
<script src="//www.google.com/jsapi/"></script>
<script src="//earth-api-samples.googlecode.com/svn/trunk/lib/kmldomwalk.js"></script>
<script>
google.load("earth", "1");
var ge = null;
var kml1= '//www.ppacg.org/tours/logo.html';
var kml2= '//www.ppacg.org/tours/tabview.html?project=08-37';
var tour = null; // so you can call pause, stop, etc globally...
function init() {
// presumes you have a div with the id 'map3d'
google.earth.createInstance("map3d", initCallback, function(e){alert(e);});
}
function initCallback(object) {
ge = object;
ge.getWindow().setVisibility(true);
// load your data
google.earth.fetchKml(ge, kml1, fetchKmlCallback);
google.earth.fetchKml(ge, kml2 , fetchKmlCallback);
}
function fetchKmlCallback(object) {
if (object) {
// add the features to the plugin
ge.getFeatures().appendChild(object);
// Walk the DOM looking for a KmlTour
walkKmlDom(object, function() {
if (this.getType() == 'KmlTour') {
tour = this;
ge.getTourPlayer().setTour(tour); // enter the tour
return false; // stop the DOM walk here.
}
});
} else {
setTimeout(function() {
alert('Bad or null KML.');
}, 0);
}
}
google.setOnLoadCallback(init);
</script>
また、行き詰まった場合は、 fetchkmlを使用してツアーをプレイするこれらの例もご覧ください。