Mapnik初學筆記


  前言:夏天總是感覺想要睡覺,一心想頹廢的我卻要一周六天都要處於工作狀態,但有些事雖然麻煩,但還是要去做,不由得想起火影忍者里面鹿丸這一個角色,有時候真能理解他的心理狀態,或許我應該向他學習:善於思考的頭腦+悠然自得的生活狀態。前陣子想玩node.js,這幾天因為看單反教程和修圖給暫停了,現在有一個關於地圖的項目要去做,有一個有趣的工具叫做mapnik,不知道你們有沒有聽說過,反正我是沒聽說過,不過讓我驚喜的是mapnik能和node.js一起玩,哎呦,不錯哦,這個叼。

Mapnik:

    Mapnik 是一個用來開發 GIS (即地理信息系統)應用程序的工具包,其核心是一個 C++ 的共享庫提供空間數據訪問和可視化的算法和模式。特別是包含一些地理對象,如地圖、層、數據源、特征和地理幾何等。該共享庫支持多種操作系統,可以在多線程環境下很好的運行,主要面向一些提供GIS服務的Web應用開發。

    從另一種角度解釋,Mapnik是一個開源的Python/Node.js/C++地圖渲染引擎,其功能是把數據形式的地圖,包含一些地理對象,如地圖、層、數據源、特征和地理幾何等,通過一個樣式表的定義,渲染成位圖格式,用來提供網絡地圖服務(WMS服務)。

 

矢量瓦片:

        矢量瓦片是將矢量數據轉換成圖片塊,用於在線地圖,借助瓦片的緩存機制,實現可縮放的地圖呈現服務,每一個圖片塊都代表一個坐標區域。

        一個矢量瓦片,包含所有的坐標信息和元數據,比如道路名稱、地塊類型、建築高度,以一種緊湊的可解析的格式。矢量瓦片是一種高性能格式,在樣式、輸出格式和交互方面更加靈活。

3.Node.js 與 Express

    Node.js是一個基於Chrome JavaScript運行時建立的平台, 用於方便地搭建響應速度快、易於擴展的網絡應用。Node.js 使用事件驅動,非阻塞 I/O 模型而得以輕量和高效,非常適合在分布式設備上運行的數據密集型的實時應用。

    Node.js官網:https://nodejs.org/

    Express 是一個簡潔、靈活的 Node.js Web 應用開發框架, 它提供一系列強大的特性,幫助你創建各種 Web 和移動設備應用。

    推薦網站:http://www.expressjs.com.cn/

 

通過Node.js與Express搭建本地Http訪問服務命令:(基於Windows)

去Node.js官網下載安裝node.js

確認已經安裝     node  -v

npm安裝Express插件     npm  install  express

Express安裝node.js項目bin      express  bin

進入項目目錄,安裝node.js依賴模塊       cd  bin &&  npm  install

啟動服務   node  ./bin/www

瀏覽器輸入http://localhost:3000/,進行訪問.(localhost可換成IP地址)

 

Mapbox Studio:      

 

關於mapnik這個工具包的使用我找到一款軟件可以供大家參考,即Mapbox推出的Mapbox Studio,官網是https://www.mapbox.com/,mapbox是一個更專業的地圖應用,可以定制出簡單、專業、漂亮的地圖,但我們需要一個Mapbox賬號來訪問Mapbox中默認的矢量瓦片數據源。

     而Mapbox Studio是一款開源軟件,使用了大量的web技術,其中有mapnik、node.js、backbone.js、codemirror、leaflet等,其客戶端本身就是一個webapp + Chrome,跨平台並且有良好的交互體驗,加入了前端的技術。Mapbox Studio 是一個由Mapbox全新設計的應用,全力支持矢量瓦片,開源,Mapbox Studio代碼托管在GitHub。

      Mapbox Studio基於矢量瓦片,使得樣式渲染更快,允許任何人使用海量全球數據庫,樣式修改布局可以在幾秒鍾內完成。分辨率獨立,基於矢量瓦片的樣式項目,可以支持視網膜屏幕,支持高達600dpi渲染,這是普通地圖所不支持的。

      Mapbox Studio這個平台基於mapnik矢量瓦片格式,用Mapnik在后端渲染。PS:任何單獨的瓦片不能超過500k,優化時,記得降低數據源的最小縮放比例,可使在較低的縮放級別時每個矢量瓦片包含較少的數據。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM