通过KML关闭国家/地区边界

时间:2012-05-08 17:02:09

标签: kml google-earth google-earth-plugin

Google地球默认为“边框和标签”(即显示国家大纲)。我有KMZ / KML文件,我想要关闭边框。我搜索了描述KML的文档,但找不到与图层相关的任何内容。

我也尝试在打开和不打开边框的情况下保存KMZ文件,它们是相同的。

任何人都知道如何通过KML API访问图层?

2 个答案:

答案 0 :(得分:0)

您无法通过KML直接打开/关闭Google地球中的图层。目前,它是由Google地球用户完成的手动操作。

但是,目前有一项指令可以打开/关闭历史图像,街景和太阳光模式。 https://developers.google.com/kml/documentation/kmlreference#gxvieweroptions

但您可以通过GE API轻松打开/关闭图层:

启用特定图层:

  ge.getLayerRoot().enableLayerById(ge.LAYER_NAME, true)

禁用图层:

  ge.getLayerRoot().enableLayerById(ge.LAYER_NAME, false);

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

答案 1 :(得分:0)

API没有为ge.LAYER_BORDERS中的各个层定义常量,但如果你查看KML文件,每个“Folder”节点都有一个ID,因此,正如JasonM1所说,你可以为每个使用enableLayerById你想关掉,打开顶部包含节点(在这种情况下是ge.LAYER_BORDERS)。

以下是我用于通过API清理“边框和标签”图层的代码:

ge.getLayerRoot().enableLayerById(ge.LAYER_BORDERS, true);
ge.getLayerRoot().enableLayerById("530286de-c7b3-11dc-938c-dd553d8c9902", false);       // internation borders
ge.getLayerRoot().enableLayerById("cfdff130-394a-11e0-98fa-dd5743f1dfd8", false);       // coastline
ge.getLayerRoot().enableLayerById("533444c6-c7b3-11dc-b02e-dd553d8c9902", false);       // 1st level borders too
ge.getLayerRoot().enableLayerById("534ab67a-c7b3-11dc-a2a7-dd553d8c9902", false);       // 2nd level borders too
ge.getLayerRoot().enableLayerById("e2334aaa-e853-11df-9192-77880e18aa7d", false);       // geographic features

P.S。我似乎无法找到我现在获得“borders and labels.kml”文件的位置,但它可能在某处,将继续寻找......