D3.js是一個強大的JavaScript圖形庫,可以用于創建各種各樣的可視化。其中地圖是D3.js中非常有趣和實用的功能。本文介紹如何使用JSON和D3.js快速創建地圖。
D3.js第一個版本是由Mike Bostock在2011年推出的。它使得JavaScript可以輕松地控制SVG元素并將它們綁定到數據源。隨著時間的推移,它也變成了一個具有廣泛功能的庫。
首先要準備一個JSON文件,它包含了地圖上每個區域的形狀數據。免費的開源地圖數據可以在geojson-maps.ash.ms下載
{ "type": "FeatureCollection", "features": [ { "type": "Feature", "properties": { "name": "Alabama" }, "geometry": { "type": "Polygon", "coordinates": [ [ [-87.359296,35.00118],[-85.606675,34.984749],[-85.431413,34.124869],[-85.184951,32.859696],[-85.069935,32.580372],[-84.960397,32.421541],[-85.004212,32.322956],[-84.889196,32.262709],[-85.058981,32.13674],[-85.053504,32.01077],[-85.141136,31.840985],[-85.042551,31.539753],[-85.113751,31.27686],[-85.004212,31.003013],[-85.497137,30.997536],[-87.600282,30.997536],[-87.633143,30.86609],[-87.408589,30.674397],[-87.446927,30.510088],[-87.37025,30.427934],[-87.518128,30.280057],[-87.655051,30.247195],[-87.90699,30.411504],[-88.011052,30.657966],[-88.10416,30.685351],[-88.137022,30.499135],[-88.394438,30.367689],[-88.471115,31.895754],[-88.241084,33.796253],[-88.098683,34.891641],[-88.202745,34.995703],[-87.359296,35.00118] ] ] } }, ] }
準備好JSON文件之后,就可以開始書寫代碼了。
// 設置地圖的寬和高 var width = 960; var height = 500; // 設置投影模式, 等比縮放 var projection = d3.geoAlbersUsa() .scale(1070) .translate([width/2, height/2]); //設置地圖路徑生成器 var path = d3.geoPath().projection(projection); // 創建SVG容器,設置寬高 var svg = d3.select("body").append("svg") .attr("width", width) .attr("height", height); // 加載JSON文件 d3.json("map.json", function(error, us) { if (error) throw error; // 為每一個GeoJSON特征創建一個SVG路徑元素 svg.append("g") .attr("class", "states") .selectAll("path") .data(us.features) .enter().append("path") .attr("d", path) .style("fill", "#ccc") .style("stroke", "#fff"); });
最后,我們就可以看到使用D3.js和JSON快速創建的地圖了。在這個基礎上,我們可以添加更多的交互和自定義元素。希望這篇文章對你有所幫助。
上一篇vue data加括號
下一篇vue 阻止多次點擊