首页 > 解决方案 > ScreenOverlay 方向

问题描述

我想生成一个动态图例,以便图例中的各个图标可以自由更改而不会影响图例的其余部分,但是我在间距方面遇到了一些问题。现在,我为图例中的每个元素使用单独的屏幕叠加层,并使用百分比在 screenXY 上使用偏移量将它们隔开。这适用于一种屏幕分辨率,但是当您拉伸或压缩 google 地球窗口时,图例看起来很奇怪。我想使用像素来使图例静态地分隔图标,但我无法知道窗口的高度,因此无法猜测我应该在什么高度开始图例。有没有办法嵌套 ScreenOverlays 以便我可以按百分比设置 ScreenOverlay,但是在那个 ScreenOverlay 里面静态地间隔单个图标?是否有另一种不涉及为图例创建单个图像的方法?

我试过简单地嵌套屏幕覆盖,但没有运气。我也无法在单个 ScreenOverlay 中找到有关多个图标的文档。

<ScreenOverlay>
  <name>icon1</name>
  <Icon>
    <href>https://url/here.png</href>
  </Icon>
  <overlayXY x="0" y="0" xunits="fraction" yunits="fraction" />
  <screenXY x=".05" y=".75" xunits="fraction" yunits="fraction" />
  <rotationXY x="0" y="0" xunits="fraction" yunits="fraction" />
  <size x="0" y="0" xunits="fraction" yunits="fraction" />
</ScreenOverlay>
<ScreenOverlay>
  <name>icon2</name>
  <Icon>
    <href>https://url/here.png</href>
  </Icon>
  <overlayXY x="0" y="0" xunits="fraction" yunits="fraction" />
  <screenXY x=".05" y=".72" xunits="fraction" yunits="fraction" />
  <rotationXY x="0" y="0" xunits="fraction" yunits="fraction" />
  <size x="0" y="0" xunits="fraction" yunits="fraction" />
</ScreenOverlay>

使用分数有效,但是当用户拉伸或缩小窗口时它不能很好地缩放。它要么挤在一起,要么分散到很远的地方。如果我能从 kml 看出屏幕有多高,像素会更好。

标签: kmlgoogle-earth

解决方案


如果你想控制多个 ScreenOverlays 的布局和间距,而不是随屏幕大小而变化,那么你需要使用 Pixel 单位进行定位是正确的。没有办法嵌套 ScreenOverlays,但只要每个元素的大小是可预测的,您就应该能够堆叠它们。例如,您可能有 3 个图标,每个 100 像素高,并将它们堆叠在左下角,第一个将位于 x=0,y=0,第二个位于 x=0,y=100,第三个在 x=0, y=200。最好的做法是尽量减少屏幕覆盖,尽量减少你覆盖的地图的多少,所以希望它不会太高以至于大多数屏幕尺寸都应该显示整个东西。


推荐阅读