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