1、緣起
- OpenStreetMap(簡稱OSM)不僅可以免費線上使用,還可以免費下載原始資料,資料格式有
.osm.pbf
和shp
。 - 我們將OSM原始資料下載下來,處理成向量瓦片,釋出成服務,就可以實現OSM地圖的本地釋出和自定義配圖。
- OSM對資料的組織方式,是按點、線、面來的,不是我們常見的按道路、建築物、河流來分圖層的方法,但可以根據屬性進行提取。
- openmaptiles提供了一套OSM資料使用的完整解決方案,可以實現OSM資料的下載、入庫、分析、生成向量瓦片、調整地圖樣式、地圖預覽的全套功能,並且開源。
- 接下來我們就來詳細介紹
openmaptiles
開源庫如何安裝和快速入門。
2、準備環境
- 安裝linux系統(
openmaptiles
開源庫只能在linux系統上執行) - 安裝docker
- 安裝Docker Compose
- 安裝git
2.1、安裝linux系統
- 我是在虛擬機器上安裝的,虛擬機器和linux系統的安裝教程參考:https://blog.csdn.net/null_of_error/article/details/108133241
- 虛擬機器版本我用的VM14,百度網盤下載地址:https://pan.baidu.com/s/1BTjByB6oTz8cTxOv_GzGWw,提取碼:kshr,含許可。
- linux系統我使用的是centOS7.9,阿里雲官方映象下載地址:http://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-Everything-2009.iso
2.2、安裝docker
-
安裝教程參考:https://www.runoob.com/docker/centos-docker-install.html
-
我用的是手動安裝方式,安裝步驟:
-
安裝docker
yum install -y yum-utils device-mapper-persistent-data lvm2
-
設定國內阿里雲的映象源,會比官方的快
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
-
安裝Docker Engine-Community
yum install docker-ce docker-ce-cli containerd.io
-
啟動docker
systemctl start docker
-
測試是否安裝正確
docker run hello-world
-
2.3、安裝Docker Compose
-
安裝步驟:
-
安裝docker compose
curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
-
設定許可權
chmod +x /usr/local/bin/docker-compose
- 測試是否安裝正確
docker-compose --version
-
2.4、安裝git
-
安裝步驟:
-
安裝
yum install git
-
測試是否安裝正確
git --version
-
3、釋出地圖
openmaptiles開源庫
- github地址:https://github.com/openmaptiles/openmaptiles
- 快速入門文件:https://github.com/openmaptiles/openmaptiles/blob/master/QUICKSTART.md
3.1、拉取程式碼
-
拉取openmaptiles程式碼
git clone https://github.com/openmaptiles/openmaptiles.git
-
拉取完成後,進入目錄
cd openmaptiles
-
執行make命令
make
3.2、測試網路
-
先測試一下你電腦能不能開啟這個網址:https://www.wikidata.org/,openmaptiles需要從這個網址下載poi資料,如果不能訪問,就按下面的步驟設定,讓程式跳過這一步。後續想要poi的資料的,可以自行翻牆解決。
-
如何跳過下載poi資料:
-
使用vi開啟quickstart.sh檔案,vi使用方法參考:https://zhuanlan.zhihu.com/p/37704677
vi quickstart.sh
-
找到 make import-wikidata 行
-
輸入
i
進入插入模式 -
在 make import-wikidata 命令前輸入#號,然後按
esc
鍵 -
輸入
:wq
儲存退出
-
3.3、處理資料
執行下面的快速啟動命令,程式會自動進行OSM資料的下載、入庫、分析、生成向量瓦片的工作。預設是阿爾巴尼亞地區,生成瓦片的層級是0-7級。後面會講如何設定地區和層級。這個命令執行時間會稍微有些長,需耐心等待。
./quickstart.sh
3.4、釋出向量瓦片服務
資料處理完成後,把生成的向量瓦片釋出成地圖服務,步驟:
-
啟動服務
make start-tileserver
-
在自己電腦瀏覽器中輸入虛擬機器ip地址加埠8080,我電腦的地址是
http://192.168.50.8:8080/
-
點選 view 按鈕,檢視效果
3.5、自定義地圖樣式
-
啟動maputnik
make start-maputnik
-
在自己電腦瀏覽器中輸入虛擬機器ip地址加埠8088,我電腦的地址是
http://192.168.50.8:8088/
-
在剛才啟動的TileServer-GL 網頁中,點選下圖中的TileJSON連結,然後拷貝地址
-
回到maputnik網頁,點選下圖藍框中的按鈕Data Sources,把上面的地址貼上到綠框中,再點選紅框中的刪除按鈕,關閉其它地圖。關閉彈出框,就能看到我們釋出的地圖了。
-
接下來就可以自由奔放的自定義地圖樣式了
3.6、注意
-
中國地區的地圖這樣寫,檢視所有支援的地區
./quickstart.sh china
-
建議第一次還是先使用預設的阿爾巴尼亞地區看看效果,熟悉一下流程,因為它的資料小,處理的快。中國地區會很久,也沒有個進度條,第一次測試就用這麼大的,極容易失去耐心。
-
決定資料處理時間的因素:電腦網速、電腦效能、處理資料的大小、生成瓦片的層級。
-
我電腦的虛擬機器配置比較低,處理阿爾巴尼亞地區,0-7級資料,大概用了10分鐘左右,處理臺灣地區資料,等了1個小時都沒有完成,最後放棄了,等換個好電腦再試。
-
想要全國地圖的需要注意,中國地區和臺灣地區的資料是分開的,需要分別進行下載和處理。
-
切圖等級在
.env
檔案中配置
4、總結
-
本文詳細介紹
openmaptiles
開源庫的安裝和快速入門使用 -
輸入下面的幫助命令,可以檢視
openmaptiles
支援的更多功能,我們後續再寫文章詳細介紹make help
原文地址:http://gisarmory.xyz/blog/index.html?blog=OSMVectorTiles
關注《GIS兵器庫》公眾號, 第一時間獲得更多高質量GIS文章。
本文章採用 知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議 進行許可。歡迎轉載、使用、重新發布,但務必保留文章署名《GIS兵器庫》(包含連結: http://gisarmory.xyz/blog/),不得用於商業目的,基於本文修改後的作品務必以相同的許可釋出。