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绘制中国地图的更多相关文章

  1. 利用d3.js绘制雷达图

    利用d3,js将数据可视化,能够做到数据与代码的分离.方便以后改动数据. 这次利用d3.js绘制了一个五维的雷达图.即将多个对象的五种属性在一张图上对照. 数据写入data.csv.数据类型写入typ ...

  2. D3.js 制作中国地图 .net 公共基础类

    D3.js 制作中国地图 from:  http://d3.decembercafe.org/pages/map/index.html GeoJSON is a format for encoding ...

  3. Javascript实战开发:教你使用raphael.js绘制中国地图

    最近的数据统计项目中要用到中国地图,也就是在地图上动态的显示某个时间段某个省份地区的统计数据,我们不需要flash,仅仅依靠raphael.js以及SVG图像就可以完成地图的交互操作.在本文中,我给大 ...

  4. D3.js 制作中国地图

    from:  http://d3.decembercafe.org/pages/map/index.html GeoJSON is a format for encoding a variety of ...

  5. matlab利用m_map工具包画中国地图及散点云图

    开始之前需要准备好malab,中国地图shp文件,m_map工具包. 中国地图shp文件可以在下面的链接中下载: https://gadm.org/download_country_v3.html 本 ...

  6. Android 绘制中国地图

    最近的版本有这样一个需求: 有 3 个要素: 中国地图 高亮省区 中心显示数字 面对这样一个需求,该如何实现呢? 高德地图 因为项目是基于高德地图来做的,所以很自然而然的想到了高德.但是当查阅高德地图 ...

  7. 用matlab绘制中国地图

    reference:https://jingyan.baidu.com/article/870c6fc36fdacfb03ee4be58.html shp: http://muchong.com/ht ...

  8. 利用Matlab快速绘制栅格地图

    代码演示 % 基于栅格地图的机器人路径规划算法 % 第1节:利用Matlab快速绘制栅格地图 clc clear close all %% 构建颜色MAP图 cmap = [1 1 1; ... % ...

  9. D3.JS V4 绘制中国地图

    参考:http://bl.ocks.org/almccon/fe445f1d6b177fd0946800a48aa59c71 http://blog.csdn.net/lzhlzz/article/d ...

随机推荐

  1. JavaSE学习总结第18天_集合框架4

      18.01 Map集合概述和特点 Map接口概述:将键映射到值的对象,一个映射不能包含重复的键,每个键最多只能映射到一个值 Map接口和Collection接口的不同 1.Map是双列的,Coll ...

  2. wdcp centos6.5多网站部署

    一.wdcp介绍 wdCP是WDlinux Control Panel的简称,是一套通过WEB控制和管理服务器的Linux服务器管理系统以及虚拟主机管理系统,旨在易于使用Linux系统做为我们的网站服 ...

  3. python的二维数组操作

    需要在程序中使用二维数组,网上找到一种这样的用法: ? 1 2 3 4 5 6 #创建一个宽度为3,高度为4的数组 #[[0,0,0], # [0,0,0], # [0,0,0], # [0,0,0] ...

  4. 谷歌三大核心技术(三)Google BigTable中文版

    谷歌三大核心技术(三)Google BigTable中文版 Bigtable:一个分布式的结构化数据存储系统 译者:alex 摘要 Bigtable是一个分布式的结构化数据存储系统,它被设计用来处理海 ...

  5. cocos2d-x游戏开发系列教程-超级玛丽04-AppDelegate

    代码下载链接 http://download.csdn.net/detail/yincheng01/6864893 解压密码:c.itcast.cn 背景 上一篇博文提到在CCApplication: ...

  6. Save Princess(丑数)

    Save Princess 时间限制:1000 ms  |  内存限制:65535 KB 难度:2   描述 Yesterday, the princess was kidnapped by a de ...

  7. vb.net 字符串的操作 应用

    Module Module1 Sub Main() ' 定义3个字符串变量 Dim str1, str2, str3 As String '给str1,str2付初值 str1 = "Hel ...

  8. BZOJ 1096: [ZJOI2007]仓库建设( dp + 斜率优化 )

    dp(v) = min(dp(p)+cost(p,v))+C(v) 设sum(v) = ∑pi(1≤i≤v), cnt(v) = ∑pi*xi(1≤i≤v), 则cost(p,v) = x(v)*(s ...

  9. javascript时间函数

    //时间函数 var myDate = new Date(); myDate.getYear();        //获取当前年份(2位) myDate.getFullYear();    //获取完 ...

  10. Raphael入门实例:动画与箭头

    raphael 实例 动画 隐藏和显示参数说明 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 var c = paper.circle(50, 50, 40);   function ...