分類
資料品質提升機制說明文件
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