利用d3.js绘制中国地图
d3.js是一个比較强的数据可视化js工具。
利用它画了一幅中国地图,例如以下图所看到的:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3ZhcDE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
源代码例如以下:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="d3.js"></script>
<script type="text/javascript" src="d3.csv.js"></script>
<script type="text/javascript" src="d3.geo.js"></script>
<script type="text/javascript" src="d3.geom.js"></script>
</head>
<body>
<div id='map'></div> <script type="text/javascript"> var w = 1280,
h = 800; var projection = d3.geo.azimuthal()// //mercator()
//.mode("equidistant")
//.origin([-98, 38])
//.scale(1400)
//.translate([640, 360]);
.mode("equidistant")
.origin([107, 32])///???
.scale(1000)
.translate([w/2, h/2]); var path = d3.geo.path()
.projection(projection); var svg = d3.select("#map").insert("svg:svg")
//.append('svg')//
.attr("width", w)
.attr("height", h); var states = svg.append("svg:g")
.attr("id", "states"); var circles = svg.append("svg:g")
.attr("id", "circles"); var texts = svg.append("svg:g")
.attr("id", "texts"); var cells = svg.append("svg:g")
.attr("id", "cells"); d3.json("china.json", function(collection) {
states.selectAll("path")
.data(collection.features)
.enter().append("svg:path")
.attr("d", path)
.attr('fill','#ddd')
.attr('stroke','#222')
.attr('stroke-width','1px')
;
});
var positions=[];
d3.csv('china-cities.csv',function(c){
circles.selectAll("circle")
.data(c)
.enter().append("svg:circle")
.attr("cx", function(d,i){return projection([d.lon,d.lat])[0];})
.attr("cy",function(d,i){return projection([d.lon,d.lat])[1];})
.attr("r", 3)
.attr('fill','red'); texts.selectAll("text")
.data(c)
.enter().append("svg:text")
.text(function(d){return d.city;})
.attr("x", function(d){
var local=projection([d.lon,d.lat]);
if(d.lon=='113.5575191')//处理澳门
return (local[0]-30);
else return local[0];})
.attr("y",function(d){
var local=projection([d.lon,d.lat]);
if(d.lat=='39.1439299') return (local[1]+10);//处理天津
else return local[1];
})
.attr('fill','#000')
.attr('font-size','14px')
;
}); </script>
</body>
</html>
利用d3.js绘制中国地图的更多相关文章
- 利用d3.js绘制雷达图
利用d3,js将数据可视化,能够做到数据与代码的分离.方便以后改动数据. 这次利用d3.js绘制了一个五维的雷达图.即将多个对象的五种属性在一张图上对照. 数据写入data.csv.数据类型写入typ ...
- D3.js 制作中国地图 .net 公共基础类
D3.js 制作中国地图 from: http://d3.decembercafe.org/pages/map/index.html GeoJSON is a format for encoding ...
- Javascript实战开发:教你使用raphael.js绘制中国地图
最近的数据统计项目中要用到中国地图,也就是在地图上动态的显示某个时间段某个省份地区的统计数据,我们不需要flash,仅仅依靠raphael.js以及SVG图像就可以完成地图的交互操作.在本文中,我给大 ...
- D3.js 制作中国地图
from: http://d3.decembercafe.org/pages/map/index.html GeoJSON is a format for encoding a variety of ...
- matlab利用m_map工具包画中国地图及散点云图
开始之前需要准备好malab,中国地图shp文件,m_map工具包. 中国地图shp文件可以在下面的链接中下载: https://gadm.org/download_country_v3.html 本 ...
- Android 绘制中国地图
最近的版本有这样一个需求: 有 3 个要素: 中国地图 高亮省区 中心显示数字 面对这样一个需求,该如何实现呢? 高德地图 因为项目是基于高德地图来做的,所以很自然而然的想到了高德.但是当查阅高德地图 ...
- 用matlab绘制中国地图
reference:https://jingyan.baidu.com/article/870c6fc36fdacfb03ee4be58.html shp: http://muchong.com/ht ...
- 利用Matlab快速绘制栅格地图
代码演示 % 基于栅格地图的机器人路径规划算法 % 第1节:利用Matlab快速绘制栅格地图 clc clear close all %% 构建颜色MAP图 cmap = [1 1 1; ... % ...
- D3.JS V4 绘制中国地图
参考:http://bl.ocks.org/almccon/fe445f1d6b177fd0946800a48aa59c71 http://blog.csdn.net/lzhlzz/article/d ...
随机推荐
- JavaSE学习总结第03天_Java基础语法2
03.01 数据类型中补充的几个小问题 1:在定义Long或者Float类型变量的时候,要加L或者f. 整数默认是int类型,浮点数默认是double. byte,short在定义的时候, ...
- python命令行解析工具argparse模块【2】
上一节,我们简要的介绍了argparse的用法,接下来几节,将详细讲解其中的参数及用法,这一节我们讲解ArgumentParser对象. argparse.ArgumentParser([descri ...
- memcache学习使用
一.安装 二.telnet测试 启动:memcached -d -m 120.24.242.100 -p 11211 -u root 测试:telnet localhost 11211 >> ...
- Laravel 5.1 ACL权限控制 四 之middleware
1.创建Middleware php artisan make:middleware MustBeAnAdmin 2.实现 MustBeAnAdmin.php中的handle方法,判断登录的用户是否为 ...
- subplot的几个详细说明
http://blog.sciencenet.cn/blog-251664-800766.html
- Week16(12月23日):复习
Part I:提问 =========================== 1.声明强类型视图时,使用关键字( ) A.ViewBag B.model C.Type D.Tit ...
- 第五节 Code 128 码
128码开始於1981年推出,是一种长度可变.连续性的字母数字条码.与其他一维条码比较起来,128码是较为复杂的条码系统,而其所能支援的字元也相对地比其他一维条码来得多,又有不同的编码方式可供交互运用 ...
- mysql merge table
SELECT COUNT(*) FROM `comment` SHOW CREATE TABLE `comment` CREATE TABLE `comment1` ( `id` INT(8) NOT ...
- Java怎样高速构造JSON字符串
目标:依据key/value高速构造一个JSON字符串作为參数提交到web REST API服务上. 分别測试里阿里巴巴的FastJson和Google Gson,终于我採用了Google Gson来 ...
- 查锁住的表,以及kill进程,Oracle常用语句
--找出所有被锁的对象,定位出哪个回话占用 select l.session_id,o.owner,o.object_name from v$locked_object l,dba_objects o ...