網頁

2014年11月17日 星期一

軌跡檔KML的簡易編修

產生軌跡檔的方式有許多種,利用GPS導航設備、手機的APP,還是直接從網路地圖畫一條線段都可以得到不同的軌跡檔。在眾多的軌跡檔案格式中,KML (Keyhole Markup Language) 是谷歌地圖及谷歌地球採用的一種軌跡檔案格式,應該也是最容易得到的一種軌跡檔。

我想大家跟我一樣會有一種需求,例如:如何將一條軌跡去除多餘的部份,或者將幾條短軌跡合併成一條比較長的軌跡。騎車騎到便利商店買飲料,甚至離開自行車道去吃個中餐,再回到車道繼續騎行,這中間的「不正常」軌跡就是想要去除的部份。另外一種情況是一條河濱自行車道分好幾次騎行,想要將多次的軌跡合併成一條。今天的目的就是要完成這樣的工作。

以一個例子來說明,邊講邊做。我們用手機APP run keeper,從動物園沿著景美溪騎到一壽橋,得到一個KML檔案,檔名叫RK_kml_2014-11-14_0824.kml,由google earth 讀取此檔,可得下圖,紅色線條就是騎行的路線。



↓Google Earth 讀取並顯示RK_kml_2014-11-14_0824.kml



↓從Google Map讀取相同的KML檔


我們現在要將此路徑切成兩條,切點就在地圖中的「道南橋」。由於KML是個文字檔,用任何文字編輯器都可以編輯它,我們用Notepad++開啟這個軌跡檔。



↓KML軌跡檔的內容(局部)


為了簡易說明,我們將該檔更名為A.KML,並將第4行的內容改為<name>景美溪左岸</name>,並由google earth 重新讀取。



↓編修第4行內容




↓重新讀取A.KML後,位置名稱也同步更新成景美溪左岸



以道南橋為切點,將軌跡切兩段,所以我們要找出切點的座標。將google earth的地圖放大,將滑鼠指向道南橋,在視窗下方的狀態列會顯示該點座標。



↓道南橋的座標是北緯24.59.16.83、東經121.34.19.54


可是這種表示法與KML檔內的不一樣,因此我們修改google earth 的設定,讓它的座標表示法與KML一樣。在google earth中,按《工具》→《選項》,將顯示經緯度由《度、分、秒》改成《十進制度小數



↓將顯示經緯度改成《十進制度小數》


座標改好後,再將滑鼠移到相同位置,狀態列的座標就變成《緯度24.988007 經度121.572607



↓座標變成十進位了


接著,在A.KML檔中,找出最接近道南橋座標的地方,大約在第179行,它的座標是《121.572591, 24.988108》,在經緯度後面的數字是高度。


↓最接近道南橋位置的座標


把第180行之後的座標剪下,貼到另一檔案中,待會還會用到。


↓把第180行之後的座標(反白部份, 直到第434行)剪下


繼續把A.KML上半部,在景美溪左岸下方的《Cycling 11/14/14 8:24 am》改成《北段》



↓增修字樣《北段》


再用google earth重新讀取這個刪掉部份座標及修改<NAME>標籤的軌跡檔。


↓修改路徑名為《北段》,並將道南橋之後的路徑給刪除了




↓接下來,將<Placemark>與</Placemark>之間的文字反白,再複製



↓將上述反白的文字貼在第184與185行之間,結果如下:


再將第197至361行間的座標全部刪除,把原檔剪下來的道南橋之後座標貼於此。為了標示清楚,把第186行的《北段》改成南段,第189行的顏色改成《ff00ffff



↓修改後的KML檔


↓最後的結果,將一條路徑拆成兩條,並給予不同的名稱與顏色


上圖的路徑名稱《北段》與《南段》可以分開或同時顯示,只要動一動左欄的勾勾就可以了。

這篇文章示範如何將一條路徑拆成兩條,將兩個檔案的路徑合併也是用相同的方法,重點就是在KML中<Placemark>與</Placemark>間之資料的合併。

大家可動手試試看吧!

-- end --


2 則留言: