使用d3画中国地图

参考的是以下两篇文章:

Let’s Make a MapInteractive Map with d3.js

GEO data下载在natural earth网站,不过我用的抽取数据的命令是:

ogr2ogr -f GeoJSON -where "ADM0_A3 = 'CHN'" cn_cities.json ne_10m_populated_places.shp

ogr2ogr -f GeoJSON -where "sr_adm0_a3 = 'CHN'" cn_province.json ne_10m_admin_1_states_provinces_lakes_shp.shp

ogr2ogr -f GeoJSON -where "gu_a3 = 'CHN'" countries.json ne_10m_admin_0_countries_lakes.shp

具体参数其实可以先用ogr2org不带条件把整个数据导出来,然后再用编辑器看看每一条记录的参数都是什么,再用ogr2ogr带条件的把想要的数据导出来.

中间有一个关键的projection,投影.文中的albers projection中文名称叫等积圆锥投影,搜了一下参数,用如下code即可,简单原理就是

1. 先放大图形

2. 然后转换长宽到自己想要的大小

3. 然后旋转使自己的区域所在经度居中,以0°为基准,西经为正数,东经为负数,参数文中中国正中为105°:

4. 然后变换中心使自己的区域所在维度居中.

5. 标称维度,参数文中为27°和45°.

var projection = d3.geo.albers()
    .scale(800)
    .translate([width / 2, height / 2])
    .rotate([-105, 0])
    .center([0, 36])
    .parallels([27, 45]); 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值