我希望通过使用JavaScript的插件创建一个由Google地球上覆盖的多边形组成的Choropleth地图。
多边形存在于服务器(不一定是我的)的KML文件中,所有文件都具有唯一ID。 我希望能够动态更改多边形的颜色以显示不同的数据集。
这可行吗?
我查找了KML机制,但这只适用于同一台服务器上的文件。
谢谢,
比尔
答案 0 :(得分:2)
您可以从任何网络可访问的URL(同一服务器或其他)通过Google Earth 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