【D3.js學習總結】26、D3地理地圖
d3.geo
在學習D3如何製作地圖前,我們需要了解下地圖的資料格式geoJSON,GeoJSON是一種對各種地理資料結構進行編碼的格式,基於Javascript物件表示法的地理空間資訊資料交換格式。
本節我們將製作一幅中國地圖,使用到的地圖資料檔案是從 Natural Earth 上的獲取,經過提取後製作而成的,在本節入門篇中不細述地圖資料的獲取過程,將直接使用已經做好的資料,可通過以下連結下載檢視中國地圖資料。
1、載入資料
d3.json(`geoChina.json`,function(error,data) {
…...
})
2、設定投影方式
var width = 1000;
var height = 800;
var projection = d3.geo.mercator()
.center([107, 31]) //center() 設定地圖的中心位置,[107,31] 指的是經度和緯度
.scale(850) //scale() 設定放大的比例
.translate([width/2, height/2]);
3、建立一個地理路徑生成器
var path = d3.geo.path()
.projection(projection);
3、繪製圖形
生成SVG容器
var svg = d3.select("body").append("svg")
.attr("width", width)
.attr("height", height);
生成地圖路徑並新增互動事件
var color = d3.scale.category20();
svg.selectAll("path")
.data( data.features )
.enter()
.append("path")
.attr("stroke","#000")
.attr("stroke-width",1)
.attr("fill", function(d,i){
return color(i);
})
.attr("d", path ) //使用地理路徑生成器
.on("mouseover",function(d,i){
d3.select(this)
.attr("fill","yellow");
})
.on("mouseout",function(d,i){
d3.select(this)
.attr("fill",color(i));
});
相關文章
- 【D3.js學習總結】16、D3佈局-矩陣圖JS矩陣
- 【D3.js學習總結】12、D3佈局-叢集圖JS
- 【D3.js學習總結】4、D3建立SVGJSSVG
- 【D3.js學習總結】6、D3比例尺JS
- 【D3.js學習總結】23、D3幾何-四叉樹JS
- 【D3.js學習總結】22、D3幾何-泰森多邊形JS
- MATLAB地圖工具箱學習總結(一)從地圖投影說起Matlab地圖
- D3力導向圖使用總結
- 製作地圖d3.js地圖JS
- MATLAB地圖工具箱學習總結(三)地圖工具箱的基本知識Matlab地圖
- d3.js 入門學習記錄(十一) 地圖上的視覺化JS地圖視覺化
- MATLAB地圖工具箱學習總結(四)自定義投影Matlab地圖
- 資料結構學習總結--圖資料結構
- PG知識點學習總結圖
- 高德地圖-地理圍欄功能實現地圖
- MATLAB地圖工具箱學習總結(二)大圓和恆向線Matlab地圖
- D3.js在svg地圖上標點JSSVG地圖
- d3.js 入門學習記錄(十) 力圖JS
- 資料結構學習(C++)——圖(總結) (轉)資料結構C++
- SpringCloud 學習總結(思維導圖)SpringGCCloud
- 學習總結
- 微信小程式地圖開發總結微信小程式地圖
- 騰訊地圖開發填坑總結地圖
- 對接高德地圖API的總結地圖API
- 地圖投影系列介紹(二)_ 地理座標系地圖
- mysqlimport學習總結MySqlImport
- Maven學習總結Maven
- MyBatis 學習總結MyBatis
- awk 學習總結
- JNI 學習總結
- tkinter學習總結
- SVG學習總結SVG
- vue學習總結Vue
- WorkFlow學習總結
- HTML學習總結HTML
- Mybatis學習總結MyBatis
- Kafka 總結學習Kafka
- Typescript學習總結TypeScript