如何不改源碼讓maputnik支持geoserver

前段時間分享了如何讓矢量瓦片配圖神器maputnik支持 geoserver,文章中的解決方案是,經過修改maputnik源碼,在界面上增長tms協議選項,從而讓maputnik支持geoserver發佈的矢量瓦片。html

前兩天工做時發現,不修改maputnik源碼,也能讓它支持geoserver矢量瓦片。react

原理以下:docker

  1. maputnik本質上是mapboxgl style文件的編輯器,style文件是個json格式數據。
  2. mapboxgl自己是支持geoserver tms協議矢量瓦片的,在style文件中進行相關配置就能夠實現。
  3. maputnik中的地圖使用mapboxgl實現,不支持geoserver是由於界面上沒有配置tms協議的選項,致使沒法生成包含tms協議配置的style文件。
  4. maputnik支持style文件的導入、導出、編輯功能,咱們能夠在配置geoserver數據源後,導出style文件,在style文件中手工添加tms協議相關配置,再導回maputnik,從而讓它支持geoserver矢量瓦片。

具體操做方法以下:json

  1. 打開maputnik,配置geoserver數據源。
  2. 把style文件下載到本地。
  3. 打開下載的style文件,在source中找到剛添加的geoserver數據源,手動添加tms協議選項。
  4. 從新導入style文件。
  5. 後續添加的geoserver圖層就能正常顯示了。

和以前修改源碼的方案比較:框架

  1. 此次的方案簡單靈活,普適性強,後續再遇到相似mapboxgl支持但maputnik不支持的問題,均可以使用這種方式快速解決。
  2. 修改源碼的方案對於react框架不熟的同窗可能比較吃力,但若是解決了,後續使用就會很方便,一勞永逸。
  3. docker版本的maputnik,沒法修改源碼,只能使用此次的方案解決。

總結:編輯器

  1. style 文件是 maputnik 和 mapboxgl 鏈接的惟一紐帶。
  2. maputnik 本質上是一個mapboxgl style 文件的編輯器。
  3. maputnik 沒有覆蓋到 style 文件的全部選項,致使它不支持geoserver的矢量瓦片。
  4. maputnik 沒有覆蓋到的選項,能夠經過導入、導出功能,手工編輯 style 文件來實現。

<br/>spa

<br/>server


原文地址:http://gisarmory.xyz/blog/index.html?blog=maputnikGeoserverVectorTiles2htm

關注《GIS兵器庫》, 第一時間得到更多高質量GIS文章。blog

本文章採用 知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議 進行許可。歡迎轉載、使用、從新發布,但務必保留文章署名《GIS兵器庫》(包含連接:  http://gisarmory.xyz/blog/),不得用於商業目的,基於本文修改後的做品務必以相同的許可發佈。

相關文章
相關標籤/搜索