使用KML在地图上显示名称

时间:2012-11-14 11:33:12

标签: kml google-earth

我可以使用KML显示多边形,圆圈等。 现在我想只使用KML显示一些名称。这可能吗?

1 个答案:

答案 0 :(得分:8)

如果您想要取消在Google地球地图上显示地标标签(通过KML),那么您可以使用0比例向地标添加LabelStyle(请参阅 sn_hide 在下面的例子中的风格)。如果您想要停留地图上的标签名称,直到将鼠标悬停在图标上,那么StyleMaps是您最好的选择。

下面示例中的第一个地标的名称显示在“地点”面板中,但使用 LabelStyle 从地图中隐藏。第二个地标#2使用 StyleMap 隐藏标签,直到用户突出显示或鼠标悬停在图标上,该图标激活显示标签的高亮样式。第三个地标#3使用始终显示标签的默认样式。

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
    <Document>
        <name>Hide and show labels</name>
        <Style id="sn_hide">
            <LabelStyle>
                <scale>0</scale>
            </LabelStyle>
        </Style>
        <Style id="sh_style">
            <LabelStyle>
                <scale>1.1</scale>
            </LabelStyle>
        </Style>
        <StyleMap id="msn_hide">
            <Pair>
                <key>normal</key>
                <styleUrl>#sn_hide</styleUrl>
            </Pair>
            <Pair>
                <key>highlight</key>
                <styleUrl>#sh_style</styleUrl>
            </Pair>
        </StyleMap>

        <Placemark>
            <name>Placemark 1</name>
            <description>Label name always hidden</description>
            <styleUrl>#sn_hide</styleUrl>
            <Point>
                <coordinates>-119.232195,36.016021</coordinates>
            </Point>
        </Placemark>

        <Placemark>
            <name>Placemark 2</name>
            <description>Hover over place to show label</description>
            <styleUrl>#msn_hide</styleUrl>
            <Point>
                <coordinates>-119.2324,36.0155</coordinates>
            </Point>
        </Placemark>

        <Placemark>
            <name>Placemark 3</name>
            <description>Always showing</description>
            <Point>
                <coordinates>-119.232672,36.014837</coordinates>
            </Point>
        </Placemark>
    </Document>
</kml>