d3加载geojson实现地图显示
D3.js是最流行的可视化库之一,下面是一个d3加载geojson地图数据实现一个简单的地图显示demo。
官方地址:https://d3js.org/
1、首先引用d3库:<script src="d3.min.js"></script>
2、定义一个div显示地图:<div id="main">
3、js代码:json使用你自已的geojson数据
官方地址:https://d3js.org/
1、首先引用d3库:<script src="d3.min.js"></script>
2、定义一个div显示地图:<div id="main">
3、js代码:json使用你自已的geojson数据
var json={"type":"FeatureCollection","features":[...]}
var width = 1600,height = 700;
var svg = d3.select("#main").append("svg").attr("width", width).attr("height", height);
var projection = d3.geoMercator().fitSize([width, height], json);
var path = d3.geoPath(projection);
svg.selectAll("path")
.data( json.features )
.enter()
.append("path")
.attr("stroke","#000")
.attr("stroke-width",1)
.attr("d", path)
.attr("fill", function(d,i){
if(d.geometry.type == 'Polygon') {
return d.properties.fill || "#555555";
} else {
return 'none';
}
})
.on("mouseover",function(d,i){
if(d.geometry.type == 'Polygon') {
d3.select(this)
.attr("fill","yellow");
d3.select("#tooltip").transition().duration(200).style("opacity", .9);
d3.select("#tooltip").html(tooltipHtml(d.properties.id))
.style("left", (d3.event.pageX) + "px")
.style("top", (d3.event.pageY) + "px");
}
})
.on("mouseout",function(d,i){
if(d.geometry.type == 'Polygon') {
d3.select(this)
.attr("fill",d.properties.fill || "#555555");
d3.select("#tooltip").transition().duration(500).style("opacity", 0);
}
});
function tooltipHtml(m){
return "<h4>"+m+"</h4><table>"+
"<tr><td>Low</td><td>test</td></tr>"+
"<tr><td>Average</td><td>test</td></tr>"+
"<tr><td>High</td><td>test</td></tr>"+
"</table>";
}