矢量地圖切片-mapbox本地化

矢量地圖切片-mapbox本地化

1. 矢量地圖數(shù)據(jù)切片

使用tippecanoe 進(jìn)行矢量地圖切片,切片格式由geojson轉(zhuǎn)為pbf

1.1. 安裝

  • 需求linux環(huán)境
  • 需要 sqlite3, zlib兩個(gè)庫文件
  1. 安裝庫文件支持
#安裝make
sudo apt-get install build-essential libsqlite3-dev zlib1g-dev
  1. 安裝tippecanoe
#下載
git clone https://github.com/mapbox/tippecanoe.git

#編譯及安裝
cd tippecanoe
make && make install

1.2. 一般數(shù)據(jù)生產(chǎn)使用

tippecanoe -e [文件夾名稱] -z [最大縮放等級] -Z [最小縮放等級] -pC XX.geojson
tippecanoe -e test -s EPSG:3857 -z 20 -Z 18  -pC polygon.geojson
//批處理
for i in `ls`;do tippecanoe -e ${i%_*} -s EPSG:3857 -z 20 -Z 18  -pC $i;done
  • 將polygon.geojson文件進(jìn)行矢量切片,傳入的坐標(biāo)系為3857,切片等級12-18,切片生成的目錄名稱為test,不使用geobuf壓縮

1.3. 常用選項(xiàng)

通常情況,我們需要將geojson文件轉(zhuǎn)換為geobuf。

使用方法為:

tippecanoe -o file.mbtiles [options] [file.json file.geobuf ...]

1.3.1. 輸出格式

  • -o file.mbtiles or --output=file.mbtiles: 輸出mbtiles文件
  • -e directory or --output-to-directory=directory: 輸出文件至指定 目錄
  • -f or --force: 如果mbtiles文件已存在,則刪除它
  • -F or --allow-existing: 如果已經(jīng)存在對應(yīng)的文件,不刪除已存在的文件

1.3.2. 切片描述與水印

  • -n name or --name=name: (默認(rèn))生成XXX.json作為可讀的切片描述
  • -A text or --attribution=text: 切片水印
  • -N description or --description=description: 生成XXX.mbtiles作為切片描述

1.3.3. 輸入文件和圖層名稱

  • name.json or name.geojson: 將geojson的 name 寫入圖層名稱,命名為 name
  • name.geobuf or name.geobuf: 將geobuf的 name 寫入圖層名稱,命名為 name
  • -l name or --layer=name: 使用指定的名稱而不是輸入文件名稱作為圖層名稱
  • -L name:file.json or --named-layer=name:file.json: 對每一個(gè)文件指定圖層名稱

1.3.4. 輸入文件的投影

  • -s projection or --projection=projection: 指定輸入文件的坐標(biāo)系 EPSG:4326 (默認(rèn)WGS84) and EPSG:3857 (Web Mercator). 通常情況下,使用WGS84作為輸入文件的坐標(biāo)系

1.3.5. 縮放等級

  • -z zoom or --maximum-zoom=zoom: 最大縮放等級
  • -zg or --maximum-zoom=g: 默認(rèn)使用估算合理的最大縮放等級
  • -Z zoom or --minimum-zoom=zoom: 最小縮放等級
  • -ae or --extend-zooms-if-still-dropping: 如果最小要素依然存在,增大最大的縮放等級

1.3.6. 切片分辨率

  • -d detail or --full-detail=detail: 最大縮放等級的分辨率(默認(rèn) 12級, 切片分比率 2^12=4096)
  • -D detail or --low-detail=detail: 較低等級的分辨率(默認(rèn) 12級, 切片分比率 2^12=4096)
  • -m detail or --minimum-detail=detail: 最小的分辨率(默認(rèn)7級)

1.3.7. 屬性表過濾器

  • -x name or --exclude=name: 移除所有要素對應(yīng)的指定字段
  • -y name or --include=name: 移除所有空字段要素
  • -X or --exclude-all: 移除所有屬性字段,只保留幾何字段
  • -Tattribute:type or --attribute-type=attribute:type: 改變指定字段的類別:string, float, int, bool.
  • -j filter or --feature-filter=filter: 字段過濾,"*"表示使用所有圖層,使用mapbox過濾函數(shù)
  • -J filter-file or --feature-filter-file=filter-file: 和"-j"一樣,只不過從文件中過濾

字段過濾example:

tippecanoe -z 5 -o filtered.mbtiles -j '{ "ne_10m_admin_0_countries": [ "all", [ "<", "scalerank", 3 ], [ ">", "LABELRANK", 5 ] ] }' ne_10m_admin_0_countries.geojson

1.3.8. 線、面的簡化

  • -S scale or --simplification=scale: 容差
  • -ps or --no-line-simplification: 無線簡化
  • -pS or --simplify-only-low-zooms: 在高縮放等級時(shí)不簡化
  • -pt or --no-tiny-polygon-reduction: 不合并面

1.3.9. 公共面邊界優(yōu)化

  • -ab or --detect-shared-borders: 檢測公共邊界并簡化
  • -aL or --grid-low-zooms: 線、面吸附

1.3.10. 裁剪切片邊界

  • -b pixels or --buffer=pixels: 緩沖區(qū)(默認(rèn)5,2^5=32)
  • -pc or --no-clipping: 不裁剪
  • -pD or --no-duplication: 無重復(fù)

1.3.11. 切片要素重排

  • -pi or --preserve-input-order: 以輸入順序作為繪制順序
  • -ao or --reorder: 所有同屬性要素按順序重排
  • -ac or --coalesce: 合并具有相同屬性的相鄰線、面
  • -ar or --reverse: 合并相鄰但反向的線段

1.3.12. 增加計(jì)算的額外字段

  • -ag or --calculate-feature-density: 增加字段tippecanoe_feature_density, 用于描述切片中的要素密度

1.3.13. 修復(fù)破損幾何

  • -aw or --detect-longitude-wraparound: 檢測相鄰點(diǎn),并修復(fù)幾何

1.3.14. 切片大小設(shè)

  • -M bytes or --maximum-tile-bytes=bytes: 切片大小指定(默認(rèn)500k)
  • -pf or --no-feature-limit: 切片要素?cái)?shù)量限制(默認(rèn)20W)
  • -pk or --no-tile-size-limit: 不使用切片大小限制
  • -pC or --no-tile-compression: 不使用PBF壓縮(此處必須選擇,否則mapbox無法使用
  • -pg or --no-tile-stats: 不生成切片信息

1.3.15. 臨時(shí)儲存

  • -t directory or --temporary-directory=directory: 臨時(shí)目錄,如果未指定,使用/tmp.

1.3.16. 結(jié)果指示器

  • -q or --quiet: 靜默模式
  • -v or --version: 返回Tippecanoe版本號
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.ios高性能編程 (1).內(nèi)層 最小的內(nèi)層平均值和峰值(2).耗電量 高效的算法和數(shù)據(jù)結(jié)構(gòu)(3).初始化時(shí)...
    歐辰_OSR閱讀 30,203評論 8 265
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,533評論 19 139
  • ----------------------- 頁面 1----------------------- 2013 ...
    長春傳齊3閱讀 5,395評論 0 1
  • 因?yàn)橐鲆粋€(gè)地圖操作的項(xiàng)目,需要用到這個(gè)地圖庫,但是查詢官方API麻煩,而且這個(gè)地圖框架的API做的用起來確實(shí)太麻...
    虛幻的銹色閱讀 34,252評論 1 15
  • 最近火熱的我的前半生,被男神迷得不要不要的,剛看完兩集時(shí)便想寫點(diǎn)什么,奈何近來的狀態(tài)著實(shí)不太適合帶情緒去寫...
    胖胖妞2016閱讀 337評論 0 1

友情鏈接更多精彩內(nèi)容