(數據科學學習手札158)基於martin爲在線地圖快速構建精靈圖服務

本文示例代碼已上傳至我的Github倉庫https://github.com/CNFeffery/DataScienceStudyNotes

1 簡介

  大家好我是費老師,martin作爲快速發展中的新一代開源高性能地圖服務框架,在之前的兩篇文章中,我已爲大家分別介紹過使用martin快速發佈矢量切片地圖服務https://www.cnblogs.com/feffery/p/17581158.html )以及字體切片服務https://www.cnblogs.com/feffery/p/17846899.html )的相關教程。

  而在基於MaplibreMapbox等高性能地圖框架構建地圖應用時,使用一整張集成了多個圖片信息的精靈圖Sprite)來代替單獨請求各個圖標文件,可以在地圖應用需要渲染類型衆多的圖標時,大幅度提升相關資源的網絡請求加載速度(精靈圖示例如下):

  而想將原始的衆多圖片,轉換爲類似上圖所示的一整張精靈圖並附帶生成對應的索引信息,傳統的方式都比較繁瑣。而在今天的文章中,費老師我就將爲大家介紹如何基於martin,僅通過一行命令就搞定從精靈圖動態生成,到部署爲直接可用服務的全過程😎~

2 利用martin快速構建精靈圖服務

  本文演示所使用的martin版本爲0.13.0

  有關martin的環境配置、安裝及版本升級,請移步我先前的相關文章,這裏不再贅述。

  直接使用martin命令,我們只需要通過參數--sprite來指定存放精靈圖原始文件的路徑即可,下面舉個實際案例,我在設施點目錄下存放了若干個svg格式的圖標文件:

  在此基礎上,只需要執行martin --sprite ./設施點命令,就直接啓動了相關的服務:

  默認參數下,訪問http://127.0.0.1:3000/catalog,即可看到有關精靈圖的相關資源目錄信息:

  其中,sprites下的鍵名即爲對應精靈圖的id,據此,我們可以訪問http://127.0.0.1:3000/sprite/精靈圖id.png來查看對應的目標精靈圖:

  而訪問http://127.0.0.1:3000/sprite/精靈圖[email protected]則可以看到高精度版本的目標精靈圖:

  將後綴名更換爲json則可以直接獲取到相對應的精靈圖索引信息:

  而在命令中使用多個--sprite參數來指定多個路徑,即可同時架起多個獨立的精靈圖服務,非常的方便:

  在此基礎上,我們就可以直接在MaplibreMapbox等地圖框架中直接使用了,下面是一個簡單的地圖應用示例,全部數據及源碼你可以在文章開頭的倉庫地址中找到,按照requirements.txt使用pip安裝相關依賴後,直接python app.py即可啓動該應用:


  以上就是本文的全部內容,歡迎在評論區與我進行討論~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章