> For the complete documentation index, see [llms.txt](https://gisp-ndc.gitbook.io/gisp-operating-manual/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://gisp-ndc.gitbook.io/gisp-operating-manual/ji-hua-kong-jian-zi-liao-tian-bao-gong-neng/data-format/kml.md).

# KML格式資料標準

KML全稱為Keyhole Markup Language，是以XML為基礎架構所發展的語言。KML格式由Google旗下公司發展，2008年被國際組織OGC(開放地理空間協會)宣布為開放地理資料編碼標準，並交由OGC維護發展。

KML提供元素眾多，如下圖所示，可達成使用者的許多空間呈現需求。GISP系統僅針對最常用的標籤(tag)、且能夠達成使用者基礎需求的元素進行約束，相關KML格式資料基礎規範如下所述，接續針對各項元素與標籤進行規範說明。KML格式資料標準支援點、線、面圖徵資料，一份KML檔除了單一圖徵呈現之外，亦可同時包含多項圖徵資料。

![https://developers.google.com/kml/documentation/kmlreference](/files/-LxP6H4ZhUTzADwJwwef)

{% hint style="warning" %}

#### 注意事項

KML檔案中，一個`<Placemark>`下僅支援一組`<coordinates>`，詳細支援內容如下所示。

若有相關需求，建議將`<coordinates>`坐標分別製作成一`<Placemark>`，GISP系統即可正常支援。
{% endhint %}

{% tabs %}
{% tab title="點圖徵" %}
**支援**

```markup
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
    <Placemark>
        <name>點</name>
        <description>點</description>
        <Point>
            <coordinates>121.5653263,25.0383226</coordinates>
        </Point>
    </Placemark>
    <Placemark>
        <name>點</name>
        <description>點</description>
        <Point>
            <coordinates>121.5245743735813,25.02930079086847</coordinates>
        </Point>
    </Placemark>
</kml>
```

**部分支援**

GISP系統僅會取得第一組`<coordinates>`坐標資料。

```markup
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
    <Placemark>
        <name>點</name>
        <description>點</description>
        <Point>
            <coordinates>121.5653263,25.0383226</coordinates>
            <coordinates>121.5245743735813,25.02930079086847</coordinates>
        </Point>
    </Placemark>
</kml>
```

```markup
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
    <Placemark>
        <name>點</name>
        <description>點</description>
        <MultiGeometry>
            <Point>
                <coordinates>121.5653263,25.0383226</coordinates>
                <coordinates>121.5245743735813,25.02930079086847</coordinates>
            </Point>
        </MultiGeometry>
    </Placemark>
</kml>
```

**不支援**

```markup
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
    <Placemark>
        <name>點</name>
        <description>點</description>
        <Point>
            <coordinates>121.5653263,25.0383226</coordinates>
        </Point>
        <Point>
            <coordinates>121.5245743735813,25.02930079086847</coordinates>
        </Point>
    </Placemark>
</kml>
```

```markup
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
    <Placemark>
        <name>點</name>
        <description>點</description>
        <MultiGeometry>
            <Point>
                <coordinates>121.5653263,25.0383226</coordinates>
            </Point>
            <Point>
                <coordinates>121.5245743735813,25.02930079086847</coordinates>
            </Point>
        </MultiGeometry>
    </Placemark>
</kml>
```

{% endtab %}

{% tab title="線圖徵" %}

{% endtab %}

{% tab title="面圖徵" %}
**支援**

```markup
<?xml version="1.0" encoding="utf-8" ?>
<kml xmlns="http://www.opengis.net/kml/2.2">
    <Placemark>
        <name>star</name>
        <Polygon>
            <outerBoundaryIs>
                <LinearRing>
                    <coordinates>121.548171166966,25.0506649532584 121.548231967865,25.0506649532584 121.548231967865,25.0506649532584 121.544644714831,25.0349783213483 121.540814258202,25.0527321838202 121.553886451461,25.0405112031461 121.538199819551,25.0392343842697 121.548171166966,25.0506649532584</coordinates>
                </LinearRing>
            </outerBoundaryIs>
        </Polygon>
    </Placemark>
</kml>
```

**不支援**

```markup
<?xml version="1.0" encoding="utf-8" ?>
<kml xmlns="http://www.opengis.net/kml/2.2">
    <Placemark>
        <name>star</name>
        <MultiGeometry>
            <Polygon>
                <outerBoundaryIs>
                    <LinearRing>
                        <coordinates>121.5653263,25.0383226,0 121.5688273,25.028995,0 121.5801294,25.0353636,0 121.5653263,25.0383226,0</coordinates>
                    </LinearRing>
                </outerBoundaryIs>
            </Polygon>
            <Polygon>
                <outerBoundaryIs>
                    <LinearRing>
                        <coordinates>121.5688273,25.028995,0 121.5675491,25.0282747,0 121.5701731,25.0254091,0 121.5688273,25.028995,0</coordinates>
                    </LinearRing>
                </outerBoundaryIs>
            </Polygon>
            <Polygon>
                <outerBoundaryIs>
                    <LinearRing>
                        <coordinates>121.5675491,25.0282747,0 121.5612056,25.0352014,0 121.5590151,25.0234647,0 121.5675491,25.0282747,0</coordinates>
                    </LinearRing>
                </outerBoundaryIs>
            </Polygon>
            <Polygon>
                <outerBoundaryIs>
                    <LinearRing>
                        <coordinates>121.5619154,25.0390042,0 121.5653263,25.0383226,0 121.5629633,25.0446175,0 121.5619154,25.0390042,0</coordinates>
                    </LinearRing>
                </outerBoundaryIs>
            </Polygon>
            <Polygon>
                <outerBoundaryIs>
                    <LinearRing>
                        <coordinates>121.5619154,25.0390042,0 121.5567835,25.0400295,0 121.5612056,25.0352014,0 121.5619154,25.0390042,0</coordinates>
                    </LinearRing>
                </outerBoundaryIs>
            </Polygon>
        </MultiGeometry>
    </Placemark>
</kml>
```

{% endtab %}
{% endtabs %}
