使用谷歌地球,我有一个加载的 kml 图层,显示美国每个县的多边形。单击气球时会弹出一些有关状态的相关信息(名称、状态、区域等) 当用户单击多边形时,我希望该信息也可以在其他地方的 DIV 元素上弹出。
到目前为止,这是我的代码。
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()
获取多边形气球信息。我什至走在正确的轨道上吗?