分類
資料品質提升機制說明文件
KML 的設計本來就不是為了表達表格式資料,因此表格化 KML 從定義面來看是不存在的。
舉例來說,KML 最常用來存放的資料是
Placemark:
<Placemark>
<name>Extruded placemark</name>
<visibility>0</visibility>
<description>Tethered to the ground by a customizable
"tail"</description>
<LookAt>
<longitude>-122.0845787421525</longitude>
<latitude>37.42215078737763</latitude>
<altitude>0</altitude>
<heading>-148.4126684946234</heading>
<tilt>40.55750733918048</tilt>
<range>365.2646606980322</range>
</LookAt>
<styleUrl>#globeIcon</styleUrl>
<Point>
<extrude>1</extrude>
<altitudeMode>relativeToGround</altitudeMode>
<coordinates>-122.0857667006183,37.42156927867553,50</coordinates>
</Point>
</Placemark>
可以看到,一個 Placemark 放的是一個點的描述與坐標等等的資訊,在 schema 上來說是一樹狀的描述,這樣的資料要把它單一表格化是極困難的。
但凡事皆有例外,KML 的定義允許自定欄位形態來存放外部資料。如下面的描述可以在 KML中發現:
<Schema name="Town_moi" id="Town_moi">
<SimpleField name="TOWNID" type="string"></SimpleField>
<SimpleField name="TOWNCODE" type="string"></SimpleField>
<SimpleField name="COUNTYNAME" type="string"></SimpleField>
<SimpleField name="TOWNNAME" type="string"></SimpleField>
<SimpleField name="TOWNENG" type="string"></SimpleField>
<SimpleField name="COUNTYID" type="string"></SimpleField>
<SimpleField name="COUNTYCODE" type="string"></SimpleField>
<SimpleField name="ZIPCODE" type="string"></SimpleField>
<SimpleField name="CENTERLONGITUDE" type="string"></SimpleField>
<SimpleField name="CENTERLATITUDE" type="string"></SimpleField>
</Schema>
其相對應的資料形式為
<SchemaData schemaUrl="#Town_moi">
<SimpleData name="TOWNID">V02</SimpleData>
<SimpleData name="TOWNCODE">1001321</SimpleData>
<SimpleData name="COUNTYNAME">屏東縣</SimpleData>
<SimpleData name="TOWNNAME">佳冬鄉</SimpleData>
<SimpleData name="TOWNENG">Jiadong Township</SimpleData>
<SimpleData name="COUNTYID">T</SimpleData>
<SimpleData name="COUNTYCODE">10013</SimpleData>
<SimpleData name="ZIPCODE">931</SimpleData>
<SimpleData name="CENTERLONGITUDE">120.547612438793</SimpleData>
<SimpleData name="CENTERLATITUDE">22.4298062414283</SimpleData>
</SchemaData>
(上述資料由 http://data.gov.tw/node/37759 截取)
這是目前 KML 內最接近表格化資料的形式,至於 Description 內的 HTML table,通常比較類似描述型的資料,沒有轉換的價值。而 KMZ 為 KML 的 zip 檔規範,因此處理上同 KML。
參考資料:
https://developers.google.com/kml/documentation/kml_tut
https://developers.google.com/kml/documentation/kmlreference
https://developers.google.com/kml/documentation/kmzarchives

