轉手把手教你制作Iphone戶外徒步地圖


轉自:http://www.sosaw.com/threads-360728-1-1.html

我是一個GIS科班畢業生,戶外徒步比較業余,但沒事喜歡倒騰地圖。最近想去香山看看紅葉,借着網絡上的資源和學習前輩的經驗,自給做了一個Iphone上能用的戶外徒步地圖,和大家一起分享分享。


先來上個圖:


優勢
相比之前在手持機上的制圖方法的優勢在於:
1. DEM暈渲圖疊加影像,不僅能一目了然山體情況,也能通過詳細的衛星影像給自己提供地標參照。不用來回切換不同地圖來看顧此失彼。
2. 用矢量等高線在Tilemill中渲染切片,可以自由定義等高線樣式,同時也能滿足在不同比例尺顯示不同細節的要求,不會出現縮小看到鋸齒,放大看不清的問題。同時切片數據平滑了使用性能,不會一次要加載很大面積的等高線導致卡機。
3. 對於我這種沒手持機的小驢,可以用手機看到差不多的地圖。

地圖結構
這個地圖呢主要分了5層:
1. 谷歌衛星影像作為最底層的地圖。
2. AsterGDEM2生成的暈渲圖,疊加在影像之上。
3. AsterGDEM2生成的等高線。
4. 谷歌地圖的地標層。
5. 徒步路線和標注層。

實現方式:
谷歌衛星影像和地標層是在線加載的,也可以離線緩存。
AsterGDEM2的暈渲圖和等高線是離線的Mbtiles格式的瓦片地圖。
徒步路線是通過【跟我走-自制路線分享】ios app畫出來的。
最終這一切都在【地圖加加】ios app中加載顯示出來。

制作的步驟:
1. AsterGDEM2數據下載, GlobalMapper配准,輸出矢量等高線shape數據和柵格的GeoTiff暈渲圖
2. Mapbox的Tilemill配置等高線樣式,加載暈渲圖並切圖轉換為Mbtiles數據
3.【跟我走】ios app手繪香山徒步路線並導出kmz
4.【地圖加加】配置谷歌影像和地標,並加載路線kmz、等高線、暈渲圖。

相關數據和工具介紹:

【AsterGDEMV2】數據(我一般是在這個地址下載)
http://gdem.ersdac.jspacesystems.or.jp/search.jsp


【GlobalMapper】 一個強大的GIS地圖軟件,這里我們主要用來對DEM數據進行配准、渲染和導出。

Mapbox的【Tilemill】,可以按照自己需要配置樣式,並渲染出MBtiles格式的地圖。
https://www.mapbox.com/tilemill/


【跟我走】 ios app可以在手機上手繪徒步路線並導出kmz/gpx。
https://itunes.apple.com/cn/app/id917066259



【地圖加加】Ios app可以在手機上加載在線地圖和離線地圖
https://itunes.apple.com/cn/app/id438868200



下面我來說說怎么一步步的做出這樣的地圖:
一、等高線數據配准、暈渲圖渲染、矢量等高線導出。

1. DEM數據下載,我們這里選用的是AsterGDEMV2的數據。根據香山所處位置總共下載了四塊數據。

2. 解壓后,通過globalmapper打開這四個塊的數據,然后導出為DEM格式,由於我們只需要香山部分的數據,所以在導出時,在Drawbox中選取 香山這一塊即可。(這部分和之前很多前輩介紹的方法相同,我就不詳細說了,可以參考http://blog.163.com/djy_zxh/blog /static/34269441201210213549637/)


3. 再次打開剛才導出的香山這塊的DEM,下面我們需要對這一塊做幾件事情:

    a. 配准(因為我們最終會在火星坐標系地圖上顯示,所以我們需要將DEM偏移到火星坐標系上)
   點擊圖層控制,右鍵選擇DEM圖層,並點擊右鍵,選擇:Rectify(配准),選擇后會彈出如下窗口:


具體的配准過程可以參考前輩的文章http://www.doyouhike.net/forum/comm_nav/1014375,0,0,0.html


    b. 生成等高線

      方法與前輩們的方法相同,參考:

      http://blog.163.com/djy_zxh/blog/static/34269441201210213549637/

     

c. 設置投影(這里不同的是我們不需要改成UTM50的投影,還是使用平面經緯度投影,單位為度)
  點擊設置按鈕

在彈出的設置窗口,選擇投影,這里投影我們還是保留原有的平面經緯度投影,只是把單位改成dgree


d. 添加格網(這里由於單位變了,所以設置格網寬度例如500m,就會改成0.005度)
        繼續在設置窗口中選擇“General”一般。 選擇Current Projection,在custom中輸入0.005


  完成后格網如下效果:


e. 導出,與以往不同的是,這里我們將等高線和暈渲圖分開導出。等高線導出為矢量shape格式,暈渲圖導出為柵格圖。
    導出等高線,從菜單上點擊 文件(files)→導出矢量數據格式(Export Vector Format...)然后顯示如下界面

    在下拉菜單中選擇Shapefile


點擊下一步后,在shapefile導出設置中勾選導出線,並輸入導出路徑和文件名,點擊OK即導出完畢。


導出的shape文件如下,這里面包含了等高線和格網的矢量線數據


緊接着再導出柵格暈渲圖,首先請確認兩點:立體光照效果關閉,等高線不顯示。




導出柵格格式GeoTIFF地圖,點擊文件-導出柵格圖像(Export Raster/Image format...),格式選擇GeoTiff
   在導出設置中我們可以選擇更高的采樣精度,這里我選擇為0.00005度,值越小生成的GeoTiff文件會越大,但也會越清楚


導出完成后,會生成一個tiff文件:

二 TileMill等高線樣式配置和暈渲圖渲染切片,生成MBtiles

使用TileMill的目的,是需要使用TileMill把我們第一步制作的等高線與暈渲圖輸出成MBtiles的地圖。這樣能導入到手機上。同時由於暈渲圖會設置半透明和影像疊加顯示,所以等高線和暈渲圖會分離開來制作兩個MBtiles。



打開TileMill 在Projects里面選擇新建一個項目:


在項目列表中找到剛才新建的項目,例如本例我們項目名叫“xiangshan_hike2”。點擊進入項目后會出現左側是地圖,右側是樣式表的頁面如下


擊左下方的圖層,選擇Add Layer 添加圖層,我們現在開始導入剛才的暈渲圖和等高線。


導入暈渲圖shader.tif文件,設置如下

同樣的方式導入等高線Shp數據


查看導入數據,點擊圖層,選擇導入的數據,如shader點擊一下放大鏡會將地圖居中顯示


配置項目設置,點擊整個應用窗口右上角的設置按鈕:




開始配置Style並導出Mbtiles,我們先導出暈渲圖,在圖層控制選項中關掉等高線和背景countries的顯示

刪除Map的背景色樣式,並保存


這個時候在地圖上就只能看到暈渲圖了。並且背景是網格白色

導出為MBtiles





完成導出后文件會生成在 我的文檔\mapbox\export\*.mbtiles 的位置。



接着我們配置等高線樣式,為了看顯示效果,我們打開暈渲圖和背景,並把如下樣式拷貝到樣式表中,然后點擊Save(也可以自己定義)



#countries {
  polygon-fill: rgb(82,133,78);
}

#shader {
  raster-opacity:0.35;
}

#contourline ::gridline{
  line-width:0.5;
  line-color:#ccc;
  line-opacity:0.5;
  [LAYER='Contour Line, Minor']{
    line-width:0.5;
    line-color:rgb(204,204,26);
    line-opacity:1;
    }
  [LAYER='Contour Line, Intermediate']{
    line-width:1;
    line-color:rgb(204,204,26);
    line-opacity:1;
    }
  [LAYER='Contour Line, Minor']{
    line-width:1;
    line-color:rgb(204,204,26);
    line-opacity:1;
    }
  text-name:[ELEVATION];
  text-face-name:'Arial Regular';
  text-size:12;
  text-fill:rgb(204,204,26);
  text-placement:line;
  }



保存后效果如圖:




接下來開始導出等高線,導出之前先關掉背景層和暈渲圖,只保留等高線層。





然后選擇右上角的Export以同樣的方法導出等高線mbtiles文件。



三、跟我走 IOS APP 手繪徒步路線,並導出KMZ。



之所以用跟我走畫,我是覺得比在GoogleEarth上面畫起來方便,尤其是在地圖參照比較好的情況下。直接用手畫很快。



在手機上打開跟我走,在畫布上找到我們這次徒步的起點,閔庄路南的入口,然后開始沿着路划線。



這個APP操作起來很簡單就不細說了。



手指在屏幕上滑動划線



長按添加一個標點




完成后導出



四  地圖加加把地圖加載進來顯示。

地圖加加要做幾點:

1. 配置谷歌地標,多服務器配置:0,1,2,3   URL規則是

http://mt{$serverpart}.google.cn/vt/imgtp=png32&lyrs=h@279019843&hl=zh-CN&gl=CN&src=app&expIds=201527&rlbl=1&x={$x}&y={$y}&z={$z}&s=Galileo&scale={$scale}

   
2. 配置谷歌影像,多服務器配置:0,1,2,3 URL規則是

http://mt{$serverpart}.google.cn/vt/lyrs=s@159&hl=zh-CN&gl=CN&src=app&expIds=201527&rlbl=1&x={$x}&y={$y}&z={$z}&s=Galileo&scale={$scale}

  
3. 導入MBtiles文件

在Itunes或者Itools上,手機連接電腦后,將之前生成的兩個mbtiles導入進來。並把跟我走app畫的kmz路線導入進來。



4. 圖層配置

設置暈渲圖不透明度35%,疊加圖層順序如下圖:






最終效果:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM