【问题标题】:KML + Google Earth: Make a Polygon or GroundOverlay clickable?KML + Google 地球:制作多边形或 GroundOverlay 可点击?
【发布时间】:2010-02-23 19:16:08
【问题描述】:

很简单的问题。

我在 KML 中定义了一些多边形和 GroundOverlay。有没有办法指定它们应该是可点击的,并且(至少在 Google 地球中)在点击它们时会弹出一个信息气球或类似的东西?

同样,是否可以为多边形/GroundOverlays 提供任何类型的鼠标悬停行为?例如鼠标悬停时更改图标或颜色?

【问题讨论】:

    标签: kml google-earth


    【解决方案1】:

    是的。为地标指定名称和说明将使其成为 Google 地球中的可点击对象,并打开一个显示两者的信息窗口。您可以使用样式映射来创建鼠标悬停/鼠标悬停行为,这里是一个同时实现两者的示例:

    <?xml version="1.0" encoding="UTF-8"?>
    <kml xmlns="http://www.opengis.net/kml/2.2">
    <Document>
    <name>Highlighted Icon</name>
    <description>Place your mouse over the icon to see it display the new
          icon</description>
    <StyleMap id="exampleStyleMap">
      <Pair>
        <key>normal</key>
        <!-- you could also use a <styleUrl> here instead of inlining -->
        <Style>
          <PolyStyle>
            <color>7dff0000</color>
          </PolyStyle>
        </Style>
      </Pair>
      <Pair>
        <key>highlight</key>
        <!-- you could also use a <styleUrl> here instead of inlining -->
        <Style>
          <PolyStyle>
            <color>7dffffff</color>
          </PolyStyle>
        </Style>
      </Pair>
    </StyleMap>
    
    <!-- and now, a Placemark that uses the StyleMap -->
    <Placemark>
      <name>Roll over this polygon</name>
      <description>this will show up when clicked</description>
      <visibility>1</visibility>
      <styleUrl>#exampleStyleMap</styleUrl>
      <Polygon>
        <tessellate>1</tessellate>
        <altitudeMode>absolute</altitudeMode>
        <outerBoundaryIs>
          <LinearRing>
            <coordinates>
              -112.3372510731295,36.14888505105317,1784
              -112.3356128688403,36.14781540589019,1784
              -112.3368169371048,36.14658677734382,1784
              -112.3384408457543,36.14762778914076,1784
              -112.3372510731295,36.14888505105317,1784
            </coordinates>
          </LinearRing>
        </outerBoundaryIs>
      </Polygon>
    </Placemark>
    </Document>
    </kml>
    

    【讨论】:

    • 一个问题:你能单独为每个地标做两部分样式吗?例如,有一个包含 100 个 JPEG 图像的库,并且在地图上布置了 100 个纯色多边形,每次将鼠标悬停在其中一个上时,100 个图像中的一个就会出现在它的位置?
    猜你喜欢
    • 1970-01-01
    • 2012-12-05
    • 2015-04-10
    • 2012-07-03
    • 2016-06-29
    • 1970-01-01
    • 2011-07-02
    • 1970-01-01
    • 2016-11-06
    相关资源
    最近更新 更多