Google Earth を使用して、米国内のすべての郡のポリゴンを表示する kml レイヤーをロードしました。クリックすると、州に関する関連情報 (名前、州、地域など) が表示されたバルーン ポップアップが表示されます。
これはこれまでの私のコードです。
var ge;
google.load("earth", "1");
function init() {
google.earth.createInstance('map3d', initCB, failureCB);
}
function initCB(instance) {
ge = instance;
ge.getWindow().setVisibility(true);
ge.getNavigationControl().setVisibility(ge.VISIBILITY_AUTO);
ge.getNavigationControl().setStreetViewEnabled(true);
ge.getLayerRoot().enableLayerById(ge.LAYER_ROADS, true);
//here is where im loading the kml file
google.earth.fetchKml(ge, href, function (kmlObject) {
if (kmlObject) {
// show it on Earth
ge.getFeatures().appendChild(kmlObject);
} else {
setTimeout(function () {
alert('Bad or null KML.');
}, 0);
}
});
function recordEvent(event) {
alert("click");
}
// Listen to the mousemove event on the globe.
google.earth.addEventListener(ge.getGlobe(), 'click', recordEvent);
}
function failureCB(errorCode) {}
google.setOnLoadCallback(init);
私の問題は、ge.getGlobe()
kmlObject に変更した場合、またはge.getFeatures()
機能しないことです。
私の最初の質問は、ユーザーが kml レイヤーのポリゴンをクリックしたときにクリック リスナーを取得できるようにするには、ge.getGlobe() を何に変更すればよいですか?
その後、ポリゴンのバルーン情報を使用getDescription()
または取得することを計画していました。getBalloonHtml()
私は正しい軌道に乗っていますか?