KML文件格式和支持添加的内容

KML(Keyhole Markup Language)是一种用于表示地理数据的 XML 格式,除了颜色,KML 还支持许多其他属性和元素。以下是一些常见的属性和元素,可以在 KML 文件中使用:

1. 名称和描述

  • name: 用于指定地标的名称。
  • description: 用于提供地标的详细描述,可以包含 HTML 格式的内容。

2. 位置和几何

  • coordinates: 指定地理坐标,通常是经度、纬度和高度。
  • Point: 用于表示单个点的位置。
  • LineString: 用于表示一系列连接的点形成的线。
  • Polygon: 用于表示封闭的多边形区域。

3. 样式

  • Style : 定义点、线和多边形的样式,包括颜色、宽度、透明度等。
    • IconStyle: 用于定义点的图标样式。
    • LineStyle: 用于定义线的样式(颜色和宽度)。
    • PolyStyle: 用于定义多边形的填充样式(颜色和透明度)。

4. 时间

  • TimeStamp: 用于指定某个地标的时间戳。
  • TimeSpan: 用于定义一个时间段,包含开始和结束时间。

5. 图标和标记

  • Icon: 定义要用于标记的图标,包括图标的 URL 和尺寸。
  • HotSpot: 指定图标的热点位置,通常用于定义用户点击图标时的响应区域。

6. 网络链接

  • NetworkLink: 允许 KML 文件链接到其他 KML 文件或网络资源。
  • refreshInterval: 指定 KML 文件的刷新间隔。

7. 视角

  • Camera: 定义视角的位置、朝向和视野。
  • LookAt: 定义观察点的经纬度、范围和朝向。

8. 地面覆盖

  • GroundOverlay: 用于在地面上覆盖图像,例如卫星图像。
  • ScreenOverlay: 用于在屏幕上覆盖图像,例如标记或图标。

9. 多媒体

  • gx:Track: 用于表示运动轨迹,包含时间、位置和速度等信息。

示例 KML 片段

以下是一个 KML 文件的示例片段,展示了如何使用这些属性:

xml 复制代码
<Placemark>
    <name>Sample Point</name>
    <description><![CDATA[This is a sample point with <b>HTML formatting</b>.]]></description>
    <Point>
        <coordinates>-122.0838,37.421999,0</coordinates>
    </Point>
    <Style>
        <IconStyle>
            <color>ff0000ff</color>
            <scale>1.1</scale>
            <Icon>
                <href>http://example.com/icon.png</href>
            </Icon>
        </IconStyle>
    </Style>
</Placemark>

以下是一个标准的 KML 文件示例和一个包含常见属性和元素的 KML 示例文件。

标准 KML 文件示例

xml 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
    <Document>
        <name>Standard KML Example</name>
        <description>This is a basic KML example.</description>

        <Placemark>
            <name>Sample Point</name>
            <description>This is a sample point.</description>
            <Point>
                <coordinates>-122.0838,37.421999,0</coordinates>
            </Point>
        </Placemark>

    </Document>
</kml>

包含常见属性和元素的 KML 示例文件

xml 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
    <Document>
        <name>Comprehensive KML Example</name>
        <description>This KML file demonstrates various features.</description>

        <!-- 定义样式 -->
        <Style id="pointStyle">
            <IconStyle>
                <color>ff0000ff</color> <!-- 红色 -->
                <scale>1.2</scale>
                <Icon>
                    <href>http://example.com/icon.png</href> <!-- 图标 URL -->
                </Icon>
            </IconStyle>
        </Style>

        <Style id="lineStyle">
            <LineStyle>
                <color>ff00ff00</color> <!-- 绿色 -->
                <width>2</width>
            </LineStyle>
        </Style>

        <Style id="polygonStyle">
            <PolyStyle>
                <color>7f0000ff</color> <!-- 半透明蓝色 -->
            </PolyStyle>
        </Style>

        <!-- 添加一个点 -->
        <Placemark>
            <name>Sample Point</name>
            <description><![CDATA[This is a sample point with <b>HTML formatting</b>.]]></description>
            <styleUrl>#pointStyle</styleUrl>
            <Point>
                <coordinates>-122.0838,37.421999,0</coordinates>
            </Point>
        </Placemark>

        <!-- 添加一条线 -->
        <Placemark>
            <name>Sample Line</name>
            <description>A simple line example.</description>
            <styleUrl>#lineStyle</styleUrl>
            <LineString>
                <coordinates>
                    -122.0838,37.421999,0
                    -122.0840,37.4220,0
                    -122.0842,37.4221,0
                </coordinates>
            </LineString>
        </Placemark>

        <!-- 添加一个多边形 -->
        <Placemark>
            <name>Sample Polygon</name>
            <description>A simple polygon example.</description>
            <styleUrl>#polygonStyle</styleUrl>
            <Polygon>
                <outerBoundaryIs>
                    <LinearRing>
                        <coordinates>
                            -122.0840,37.4210,0
                            -122.0840,37.4230,0
                            -122.0820,37.4230,0
                            -122.0820,37.4210,0
                            -122.0840,37.4210,0
                        </coordinates>
                    </LinearRing>
                </outerBoundaryIs>
            </Polygon>
        </Placemark>

        <!-- 添加时间戳 -->
        <Placemark>
            <name>Sample TimeStamp</name>
            <description>This placemark has a timestamp.</description>
            <TimeStamp>
                <when>2023-10-01T12:00:00Z</when>
            </TimeStamp>
            <Point>
                <coordinates>-122.0850,37.4215,0</coordinates>
            </Point>
        </Placemark>

        <!-- 添加网络链接 -->
        <NetworkLink>
            <name>External KML</name>
            <description>A link to an external KML file.</description>
            <refreshInterval>1</refreshInterval>
            <Link>
                <href>http://example.com/external.kml</href>
            </Link>
        </NetworkLink>

    </Document>
</kml>

总结说明

  1. 标准 KML 文件示例

    • 包含基本的 KML 结构,定义了一个文档和一个地标(点)。
  2. 包含常见属性和元素的 KML 示例文件

    • 包含多个地标(点、线、多边形)。
    • 定义了样式(点、线、多边形的颜色和图标)。
    • 使用了 HTML 格式的描述。
    • 包含时间戳示例。
    • 包含网络链接,指向外部 KML 文件。
相关推荐
charlee441 小时前
记一次GIS专业职称水平能力测试考试
gis·rs·职称评审·职场干货·水平能力测试
丷丩1 小时前
MapLibre GL JS第11课:获取鼠标指针坐标
前端·javascript·gis·地图·mapbox·maplibre gl js
WebGIS开发4 小时前
2027地信考研怎么选适合自己的学校?
考研·gis·地图学与地理信息系统·地理学考研
charlee442 天前
《GIS基础原理与技术实践》配套案例(Python版)
python·conda·numpy·gis·环境配置
GIS6688002 天前
2026 低空经济 3S(地信/测绘/遥感) 对口岗位合集
gis·遥感·测绘·低空经济·地信
BlowhardChen8 天前
《OpenLayers从入门到企业级GIS系统实战》二
gis
丷丩8 天前
工程级MVT地图瓦片服务器Web前端架构设计文档
前端·vue·gis·pinia·geoai-up
丷丩9 天前
三级缓存下MVT地图瓦片服务性能优化策略
算法·缓存·性能优化·gis·geoai-up
丷丩9 天前
WMS、WFS、MVT 在WebGIS开发中,应该如何选择?
gis·mvt·geojson·地图瓦片