D3.js中加载地图GeoJson

D3.js函数库可用来实现数据的图形化显示,功能强大,特别是配合GeoJSON地图,只需要几条指令就可以加载并显示地图,实现数据的地图显示。加载GeoJSON地图的方法为:

var width = 900,height = 600;
var svg = d3.select("#chart").append("svg").attr("width", width).attr("height", height);
var projection = d3.geo.mercator()//设定投影函数 
  .center([108.0, 37.5])// 函数是用于设定地图的中心位置,[107,31] 指的是经度和纬度。
  .scale(700)//函数用于设定放大的比例。
  .translate([width/2, height/2]);//函数用于设定平移。
var path = d3.geo.path().projection(projection);
var color = d3.scale.category20();
d3.json("china.json", function(error, json) {
  if (error)
    return console.error(error);
  console.log(json.features);
  var china= svg.selectAll("path")
    .data( json.features )
    .enter()
    .append("path")
    .attr("stroke","#000")//线的颜色
    .attr("stroke-width",1)
    .attr("fill", function(d,i){
      return color(i);
    })
    .attr("d", path )
    .attr("fill",color(i));
  })
  .append("text").attr("transform",function(d,a){
    return d.name;
  });

其中china.json是中国的GeoJSON格式地图,可以在网上下载到。注意,上述方法是使用d3.v3版本,v4版本有了比较大的变化,与v3方法的名称大部分完全不同。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值