使用D3渲染中国地图

//1、先在页面中初始化一个svg标签
		var w = 1000,h = 1000;
		var svg = d3.select('body')
					.append('svg')
					.attr('width',w)
					.attr('height',h)
					.attr('transform','translate(0,0)');
		//d3.geo  是d3中一些地图相关的方法
		var projection =d3.geo.mercator()//投影的方法
					.center([107,31])//经纬度
					.scale(550)//放大的倍数
					.translate([w/2,h/2]);//投影在某个位置
		//坐标的转换	把相应经纬度的点 转换成 svg里面d属性相应的要去画的  坐标点
		var path = d3.geo.path()
					.projection(projection);
		//d3中做服务器请求的  方法来的	
		d3.json('./data/china_diaoyudao.json',function (err,root) {
			//root  是用d3请求回来的数据
			console.log(root.features);//数组  34个
			d3.select('svg').selectAll('path')
							.data(root.features)
							.enter()
							.append('path')
							.attr('stroke','gray')
							.attr('stroke-width','1')
							.attr('d',function (data,index) {
								return path(data);
							})
							.attr('fill',function (data,index) {
								return color();
							})
							.on('mouseover',function () {
								//this dom对象
								d3.select(this)
								.attr('fill','yellow')
							})
							.on('mouseout',function () {
								d3.select(this)
								.attr('fill',color())
							})
		})
		//返回一个随机16进制的 颜色
		function color(){
		    return '#'+Math.floor(Math.random()*0xffffff).toString(16);
		}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值