分享

Convert KML to SHP [arcgis 学习]

 昵称QAb6ICvc 2014-07-14

Convert KML to SHP [arcgis 学习]

熟悉GIS的人應該會瞭解到Google Earth只是一個很好的展示平台,但對於GIS的分析功能還是要靠GIS專業軟體,你或許在找資料時發現Google Earth上有你想要的資料,但Google Earth的kml檔你卻無法直接在你熱悉的GIS軟體上使用,這篇文章就以ESRI的ARCGIS來作個示範,教大家如何將kml檔轉為shape檔。

一直有人因為不同的研究需求向我要原始資料,但因為我手頭上的資料並未獲官方授權同意轉給他人使用,所以對我來說實在有點困擾,所以還是請有需求者照我這個範例自已想辦法吧。

一、kml2shp程式的下載與安裝

1.首先,請進http://www.官網,點選Support頁籤,即可進入ESRI Support Center。

2然後點選”Downloads”頁籤,再點選ArcScripts連結。

3.在Search Arcscripts視窗,鍵入”kml”,按search鍵,即可找到21筆與”kml”相關的小程式(Script),第二項”Convert KML files to Shapefiles”,即是我們要找的。

4.點擊之後,即可看到這支程式的描述,這是由Jason Parent以Python所寫的,適用在ArcGIS – ArcView,再點擊”download”。

5.這一頁是一些版權的宣告,按下”I agree”,再按”download”鍵。

6.決定要直接開啟或儲存檔案,我們選先儲存到電腦內。

7.下載後,先解壓縮到目錄內,可先打開Installation Guide.pdf,來看如何安裝。

8.在這個pdf檔內,可以看到如何安裝的描述

9.這是上圖安裝步驟3的畫面

二、準備kml檔

SHP檔有點、線、面分別儲存的三個形態,剛好可以對映到kml檔的地標(Point)、路徑(Polyline)、以及多邊形(Polygon)等三種物件(feature),依據上述Installation_Guide.pdf的說明,基本上它是可以將放在目錄下的地標、路徑、以及多邊形全部轉換至對映的SHP檔,也就是說我們要將目錄存成一個kml檔。

所以我們可以在Google Earth中將各包含點、線、面的地標點,集中放在同一個目錄之下,你可以將點、線、面分開在不同的目錄,雖然放在一起也行,只是執行轉換時要分別操作。

以下舉我作的”台北縣都市計畫圖(2001)”為例,台北縣的都市計畫區有44個,我將每個計畫區存為一個kmz檔,再以NetworkLink方式,將44個連結存放一個全縣的kmz檔內,這是一個比較複雜的kmz檔,所以若學會這些動作,其它的就簡單了。

1.首先先進入”台北縣都市計畫圖(2001)”這篇文章,下載台北縣都市計畫圖的kmz檔,執行之,在Google Earth的左側”地標面版”,即可看到展開的兩個目錄,上方的”都市計畫區”我把它作為定位用,下方的”都市計畫圖”內含44個都市計畫區kmz檔的連結,我們要把這個目錄另存為kml檔,請按右鍵如下圖的操作。

2.請用除了”筆記本”之外的文字編輯器,打開這個kml檔,你會看到如下圖的NetworkLink tag,標示著每一個計畫區的kmz檔存放的地方。

3.利用這個網址去下載這個kmz檔,但因為它是kmz檔,你無法直接用文字編輯器來處理,所以只好進Google Earth打開,再另存為kml檔。

3.由於”Convert KML files to Shapefiles”會將中文字轉出成亂碼,所以我建議先將kml檔中的所有中文字改成英文,你可以照著我下圖的方式,將每種分區用”replace all”的方式來全部換成英文,看有幾種使用分區,就作幾次,應該不會花太多的時間,全部轉成英文之後,再儲存之,這個kml檔就是我們要轉成shp檔的source。

三、kml2shp程式的操作

1.回到ArcMap,經過第一步的安裝之後,在ArcToolBox之下會多了個”Convert KML to SHP”的ArcTool,打開目錄就可看到”Convert KML to SHP”的小程式(scripts),點擊執行它,會開啟”Convert KML to SHP”的視窗,在第一欄選到我們第二步完成的kml檔,第二欄有點、線、面等三種格式,使用分區是區塊形態,當然要選”polygon”,第三欄就是轉出的shp檔了,然後按下”ok”。

2.這是程序正進行轉換的畫面

4.完成後,這個使用分區shp檔就會顯示出來,把attribute table打開,可以看到這支程式會把kml的Name、Description、Folder等三個欄位轉出來,所以你可以看到英文的使用分區名稱,Description因為原來的kml沒設,所以這裡是空白的,Folder顯示原來kml的目錄結構,比如工業區是放在”Features/03Industrial Zone”的目錄之下。

四、後續的作業

若有多個kml要處理,就重覆以上的第二步及第三步。完成了轉出為SHP檔的作業之後,接下來就是ARCVIEW的處理,如分區顏色的設定等等,這部分就是各GIS軟體的專業領域了。

備註:若是你取得的kml資料原來是shp檔,可能原始的shp檔有很多屬性欄位,你也想要還原原來的shp檔,這牽涉到當初從shp檔轉出為kml時是否有將其它屬性也一起轉出放在description內,若有的話,又涉及到這些欄位是否定義的很清楚,若也很清楚的話,接下來就要靠你自已了,若你也會寫程式也對於處理shp檔案的運作很清楚,那你應該可以試著自已來寫支專屬的kml2shp的script程式,或者直接將在description欄位的內容改派到各個欄位,這支程式已經把kml的Name、Description、Folder等三個欄位轉出來,我覺得已經很不錯了。

----------------------------------------内容为网络收集---------------------------------------

http:///archives/513

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多