嘿嘿将kml文件加载到谷歌地球后我试图让用户点击kml中的某个多边形时突出显示该多边形。
到目前为止,我可以记录click事件,获取事件类型(KmlPlacemark)并获取其kml标记。 我尝试做类似于这个example的事情,他们在kmlObject的getFeatures上添加了一个地标,但目标和类型似乎都没有“getFeatures'”。在查看文档之后,我想我可能想要来自Kml Polystyle类的setOutline或来自KmlLineStyle类的setWidth(),但我不确定。当我尝试像target.setOutline(true);它没有用。
任何人都可以告诉我,我是否走在正确的轨道上,暗示我做错了什么,以及是否有更好的方法来做到这一点?
function recordEvent(event) {
var target = event.getTarget();
var type = target.getType();
if(type == "KmlPolygon") {
alert("KMLPolygon ");
}else if(type == "KmlPlacemark") {
// // get the data you want from the target.
var description = target.getDescription();
var balloon = target.getBalloonHtml();
var outputKml = target.getKml();
if ('getFeatures' in event) {
console.log("test");
event.getFeatures().appendChild(placemark);
}
console.log("hello?")
// target.setOutline(true);
console.log(outputKml);
}
};
google.earth.addEventListener(ge.getGlobe(), 'click', recordEvent);
谢谢!
答案 0 :(得分:0)
我发现你要做的最好的方法是:
检测您当前所做的点击事件
如果单击,则创建一个新样式,然后将其指定给目标
var newStyle = ge.createStyle('');
// Assign your Style's attributes such as LabelStyle and IconStyle
// eg to set the scale of your label
newStyle.getLabelStyle().setScale(2.5);
// Set the Style
target.setStyleSelector(newStyle);
编辑以添加Google示例的此链接,以更深入地展示它 https://code.google.com/apis/ajax/playground/#styling_placemarks_using_style_maps