动态更改链接的 KML 文件中多边形的颜色

Dynamically change color of polygon in linked KML file

本文关键字:多边形 颜色 文件 KML 链接 动态      更新时间:2023-09-26

我希望通过使用JavaScript的插件创建一个由覆盖在Google地球顶部的多边形组成的分区统计图。

多边形存在于服务器上的 KML 文件中,所有多边形都具有唯一的 ID(不一定是我的)。我希望能够动态更改多边形的颜色以显示不同的数据集。

这可行吗?

我查找了 KML 机制,但这仅适用于同一服务器上的文件。

谢谢

法案

您可以通过 Google 地球 API 从任何网络可访问的网址(同一服务器或其他网址)加载/解析远程 KML,然后迭代 KML 对象并以编程方式更改样式和多边形颜色。

var href = 'http://code.google.com/'
           + 'apis/earth/documentation/samples/kml_example.kml';
google.earth.fetchKml(ge, href, function(kmlObject) {
      if (kmlObject) {
         checkObject(kmlObject);
         // append KML objects to current view
         ge.getFeatures().appendChild(kmlObject);
      }    
});
function checkObject(kmlObject) {
    var type = kmlObject.getType();         
    if (type == 'KmlDocument' || type == 'KmlFolder') {
        var features = kmlObject.getFeatures();
        if (features.hasChildNodes()) {
            var children = features.getChildNodes();                    
            for (i=0; i < children.getLength(); i++) {
                checkObject(children.item(i));                      
            }
        }
    } else if (type == 'KmlPlacemark') {
        // check/set style, change color, etc.
        // ...
    }
}

参考:https://developers.google.com/earth/documentation/kml#fetchkml_and_parsekml