Lesson10:An encoding utility for polyline and polygon data

 

  • 利用ArcGIS ToolBoxs將shapefile轉成 kml格式

3D Analyst Tools -->Conversion --> To KML--> Layer to KML,將向量式或網格式的圖層,轉換為可在GoogleEarth或GoogleMap上讀取的Keyhole Markup Language(KML),可記錄目前圖層的Symbology的透明度或顏色設定。如果一次要轉換整個計畫檔全部的圖層,可選擇Map to KML。

linedraw1.jpg

 

...
'GGeoXml物件可以載入kmz檔案,這個物件可以以圖層的方式疊覆在GoogleMap上
var newlayer = new GGeoXml("http://gis.nhlue.edu.tw/gmap/sample27.kmz");
...
map.addOverlay(newlayer);

http://gis.nhlue.edu.tw/gmap/sample27.htm sample27.kmz


注意1:需要設定這張圖需要顯示的比例尺範圍的Layer Output Scale比例尺參數,透過設定Dataframe這些數值圖層的Map Units,就可以在工具列上看到參考的數字。
注意2:因為轉換出來的KML需要疊在Google瀏覽器的衛星地圖上,因此座標系統必須和Google瀏覽器上的WGS84相同,所以轉換前的圖層也必須是WGS84經緯度的座標系統。 簡單的小工具:TWD67轉TWD97(TWD67-97.rar),TM2轉經緯度座標系統(TM2DD.exe)。

linedraw2.jpg

 

注意3:和在個人電腦的單機版執行不同,個人電腦的顯示卡、記憶體、和硬碟的存取能力,都可以讓你擁有很快速的資料讀取能力,雖然我們可以不需要這麼精確詳細的資料,但是個人電腦的能力讓我們可以擁有更多的彈性,讀取較大的圖檔。但是在網路上讀取資料,卻又是完全不同的事情,速度是最重要的關鍵,可以用10個點來表達一條線,就不要用100個點來做,可以使用2K的圖檔,就不要用20K的圖檔,因為前者讓使用者等1秒才能顯示圖層的話,後者卻需要等10秒,網路的瀏覽者比你想像的更沒有耐心多了。因此我們必須對圖層進行簡括化的工作。

linedraw3.jpg

可以在ArcGIS9的ArcInfo版本 ToolBoxs中的Data Managements找到Simplified Line的工具

 

  • Shapefile轉Kml外掛程式 

前述ArcToolBoxs的工具只能存成壓縮後無法編輯的KMZ檔(雖然工具名稱叫做To KML),因此如果要存成可以編輯未壓縮的KML檔,需要使用外掛的程式,ESRI的ArcScripts (http://arcscripts.esri.com/details.asp?dbid=14273)有一個很熱門的外掛程式Export_to_KML_V2_5_3.zip可供使用,需要設定圖層的座標系統後,可以自行調整圖的顏色和透明度後輸出。

 

sample27.kml

  • Polyline和Polygon資料的編碼和解碼

不論是線或是多邊形,都需要一長串的點資料來表示,這些記錄座標的點資料如果用未編碼過得ASCII格式的大小,和編碼過後的BINARY格式比較,檔案的大小相差很多。因此,在秒秒必爭的網路傳送速度的環境中,北卡羅萊納州 The University of North Carolina at Asheville數學系的Mark McClure教授,提供了一個可以將KML的ASCII格式轉換為BINARY的網路公用程式。

Step1:連結http://facstaff.unca.edu/mcmcclur/GoogleMaps/EncodePolyline/encodeForm.html

Step2:全選kml檔案內容(檔案不要超過1MB),貼到InputText中。

Step3:按「show code」可以看到編碼後的程式內容,再將程式碼copy到Google Map的程式。

sample28ascii.kml(74KB), 減為 sample28binary.kml(12KB),少了約6倍 http://gis.nhlue.edu.tw/gmap/sample28.htm

linedraw5.jpg

Last modified: Wednesday, 18 December 2013, 04:49 PM