最近作一個三維項目,需求中有加載本地影像數據的功能,這就須要提供一個切片工具切本地影像數據。python
一番搜索後,git
方案一:利用現成的軟件,如MapTiler(http://www.maptiler.com/),可是其免費版有限制,只能處理10k*10k大小的數據,顯然不合適,pass;github
方案二:利用現成軟件,GlobeMaper,但沒法單獨集成其切片模塊,pass;segmentfault
方案三:直接利用GDAL庫中的gdal2tiles(MapTiler底層也是用的這個,作了界面及其餘優化),可自主集成在本身項目中。已經有了車輪,就不必本身再從頭造,因而直接GitHub,各類語言版本都有。多線程
對其餘語言不太熟,選中python版本(也是初學者),從第一個一路試下來,走了很多彎路,只有「Luqqk/gdal2tiles」能適用,緣由:工具
所作項目底圖爲雅虎數據,其採用的瓦片座標爲XYZ形式,座標原點爲左上角(Left-Up Corner),而gdal2tiles切出的爲標準TMS瓦片,其座標原點爲左下角(Left-Down Corner),數據上球后顯示混亂(瓦片地圖原理見:https://segmentfault.com/a/1190000011276788);優化
不採用其餘代碼緣由:url
IzAndCuddles/gdal2tiles、CjS77/gdal2tiles、pramsey/gdal2tilesp(調試中總有錯誤提示,功力淺沒法解決),切片爲標準TMS瓦片,數據上球混亂,棄用;spa
commenthol/gdal2tiles-leaflet,有XYZ選項,可是隻針對leaflet,必須將參數-p設置爲raster,而雅虎數據爲mercator,故棄用。線程
採用Luqqk/gdal2tiles,參數-x, --xyz,支持輸出XYZ形式,而且支持多線程,問題解決。
好記性不如爛筆頭,記錄之。