我有作为 GeoJSON 的纬度/经度数据,每个点都有与之关联的附加属性。我需要能够在KmlPlacemark
单击时将这些属性传递给回调函数。我知道我可以使用闭包并在它们上单独注册事件侦听器,但我真的更喜欢在GEWindow
对象上只有一个侦听器。
我的解决方案涉及将属性作为 JSON 数据粘贴到地标 ID 中。
var data = {foo: 123, bar: 321};
var placemark = ge.createPlacemark(JSON.stringify(data));
然后在回调中它被解析回一个对象
google.earth.addEventListener(ge.getWindow(), 'click', function(e){
var target = e.getTarget(),
data;
if (target && target.getType() == 'KmlPlacemark'){
data = JSON.parse(target.getId());
myHandler(target, data);
}
});
有没有更简单的方法来做到这一点?