Google 地球默认设置为“边界和标签”(即显示国家轮廓)上。我有想要关闭边框的 KMZ/KML 文件。我搜索了描述 KML 的文档,但找不到与图层相关的任何内容。
我还尝试在打开和不打开边框的情况下保存 KMZ 文件,它们是相同的。
有人知道如何通过 KML API 访问图层吗?
Google 地球默认设置为“边界和标签”(即显示国家轮廓)上。我有想要关闭边框的 KMZ/KML 文件。我搜索了描述 KML 的文档,但找不到与图层相关的任何内容。
我还尝试在打开和不打开边框的情况下保存 KMZ 文件,它们是相同的。
有人知道如何通过 KML API 访问图层吗?
You can't yet turn on/off layers in Google Earth directly via KML. Currently it's a manual action done by user of Google Earth.
However, there is currently a directive to turn on/off historical imagery, streetview, and sun light modes. https://developers.google.com/kml/documentation/kmlreference#gxvieweroptions
But you can turn the layers on/off easily via the GE API:
To enable a specific layer:
ge.getLayerRoot().enableLayerById(ge.LAYER_NAME, true)
To disable a layer:
ge.getLayerRoot().enableLayerById(ge.LAYER_NAME, false);
Reference: https://developers.google.com/earth/documentation/layers#layers
API 没有为 ge.LAYER_BORDERS 中的各个层定义常量,但是如果您查看 KML 文件,每个“文件夹”节点都有一个 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
ps 我现在似乎找不到“borders and labels.kml”文件的位置,但它可能就在某个地方,将继续寻找......