使用D3.js創建令人驚奇的地圖
D3 (有時候也叫D3 或d3.js)是一個JavaScript 庫,用于創建數據可視化圖形。但是這一句話不足以描述D3的功能,如它的官方文檔所說,D3.js 是一個基于數據的處理文檔的JavaScript庫。D3可以幫你使用HTML、SVG、CSS創建可視化的數據。
D3.js得到了廣泛的應用,也創建了很多非常漂亮的圖形,其中之一就是和地圖數據的結合。
本文不是D3的教程,所以沒有多少干活,而是提供了幾個展示D3可視化地圖和基于地圖的數據教程或者實例。之所以寫這篇文章,是因為我看到了一個顯示當前地球大氣環流(風)的地圖,包括污染物、顆粒物等地圖,非常的震撼,所以特意搜索了一下D3.js創建地球地圖的教程,一般都是通過 D3.js + topojson 生成的。
首先看Mike Bostock寫的一篇教程 Let’s Make a Map 。
在這篇教程中,他使用d3.js+topojson創建了英國地圖,同時介紹了如何獲得免費地圖數據以及如何轉換成所需的數據格式,也介紹了如何通過css為不同的區域設置不同的顏色、顯示邊界、顯示標簽等。
A Map to Perfection: Using D3.js to Make Beautiful Web Maps
。
這篇文章只是一個泛泛的介紹,可以參考,他介紹了D3.js和Leaflet的結合。
第三個教程是由 datamaps 提供,它提供了代碼和數據,而且代碼非常的簡單,可以學習D3.js如何方便的創建地圖。
第四個例子是Jason Davies實現的可拖動的世界地圖,非常的漂亮。最重要的是,他提供了一個可以順滑拖動的地球。
第5個教程是Marc Neuwirth寫的 Creating the Earth with D3.js ,也是一個拖動的地球,很詳細。
一個讓人稱奇的D3.js地圖應用就是 earth.nullschool.net ,它以動畫的形式實時的顯示地球上的風向、洋流、波浪、污染物和顆粒物的情況。非常的震撼。它的源代碼也公布在 github 上。
一些D3.js的教程:
- https://github.com/d3/d3/wiki/tutorials
- http://alignedleft.com/tutorials/d3
- https://www.dashingd3js.com/table-of-contents
- https://square.github.io/intro-to-d3/
- https://bost.ocks.org/mike/
一些圖書:
來自:http://colobu.com/2016/08/02/using-D3-js-to-make-amazing-web-maps/