文章标题
来源:互联网 发布:java获取浏览器类型 编辑:程序博客网 时间:2024/06/05 05:01
在学一张图的时候要弄清作者的写作思路,哪几个元素是成套出现的,谁在前谁在后,将思路轨迹理清楚,就像这篇文章
1.projection—>path(projection)—->svg添加path并绑定数据,生成地图
2.marker中添加arrow的path,生成箭头—–》marker中添加circle,定义起点—->svg中添加line标签,并绑定circle与arrow
marker的数据形式,帮助我们理解为什么要这样做
var width=500,height=500;/*生成svg画布*/ var svg=d3.select("body") .append("svg") .attr("width",width) .attr("height",height) /*给地理路径生成器定义投影方式*/ var projection=d3.geo.mercator() .center([107,31]) .scale(600) .translate([width/2,height/2]); var path=d3.geo.path().projection(projection);
下边是定义marker,marker标签包裹path或者circle
var defs=svg.append("defs"); /*定义arrowmarker*/ var arrowMarker=defs.append("marker") .attr("id","arrow") .attr("markerUnits","strokeWidth") .attr("markerWidth","10") .attr("markerHeight","10") .attr("viewBox","0 0 12 12") .attr("refX","6") .attr("refY","6") .attr("orient","auto"); var arrow_path = "M2,2 L10,6 L2,10 L6,6 L2,2"; arrowMarker.append("path") .attr("d",arrow_path) .attr("fill","red"); var startMarker=defs.append("marker") .attr("id","startPoint") .attr("markerUnits","strokeWidth") .attr("markerWidth","12") .attr("markerHeight","12") .attr("viewBox","0 0 12 12") .attr("refX","6") .attr("refY","6") .attr("orient","auto"); startMarker.append("circle") .attr("cx",6) .attr("cy",6) .attr("r",2) .style("fill","red");
最后加载数据
d3.json("china.topojson",function(error,toporoot){ /*topojson转换为geojson*/ if(error){ window.alert("loading data error"); } var georoot=topojson.feature(toporoot,toporoot.objects.china); console.log(georoot) var province=svg.append("g") province.selectAll("path") .data(georoot.features) .enter() .append("path") .attr("class","province") .style("fill","steelblue") .attr("d",path) var beijing = projection([116.3, 39.9]); var guilin = projection([110.3, 25.3]); svg.append("line") .attr("class","line_to") .attr("x1",guilin[0]) .attr("y1",guilin[1]) .attr("x2",beijing[0]) .attr("y2",beijing[1]) .attr("marker-start","url(#startPoint)") .attr("marker-end","url(#arrow)"); })
阅读全文
0 0
- 文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题 文章标题 文章标题 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- CentOS学习24_Centos7 关闭防火墙
- hdu 2680 Choose the best route(SPFA或者Dijkstra)
- tinyalsa
- 新版android studio去掉cmake
- 类与对象第四题
- 文章标题
- CSP考试 2017年9月第1题 打酱油 C++实现
- 用户组的建立和权限修改
- Java集合框架的一些总结
- 码云上传小工具
- 四则运算练习器
- Redis事务详解
- 模板类与类模板、函数模板与模板函数等的区别
- 406. Queue Reconstruction by Height Difficulty : Medium