SVG实例之中国地图

SVG 做地图具有可以任意比例放大缩小不失真的优点。本例基于d3.js的svg制作。

地图数据用GeoJSON存储。GeoJSON 是基于JSON 的、为Web 应用而编码地理数据的一个标准。实际上,GeoJSON 并不是另一种格式,而只是JSON 非常特定的一种使用方法。

网上有很多免费的GeoJSON下载,本例子中国地图GeoJSon 可以从本例源码 下载

1.获取d3

在项目中引入即可, <script src="http://d3js.org/d3.v3.min.js"></script>

2.创建svg

var width = 960, height = 500;
var svg = d3.select("body")
 .append("svg")
 .attr("width", width)
 .attr("height", height);

3.创建投影(projection)

var projection = d3.geo.mercator().translate([width / 2, height / 2]).center([105, 38]).scale(550);

4.创建path

var path = d3.geo.path().projection(projection);

5. 解析json

d3.json("china.geo.json", function(json) {

 svg.selectAll("path")
 .data(json.features)
 .enter()
 .append("path")
 .attr("d", path)
 .on('mouseover', function(data) {
 d3.select(this).attr('fill', 'rgba(2,2,139,0.61)');

 //创建显示tooltip用的矩形
 svg.append("rect")
 .attr("id", "tooltip1")
 .attr("x", 50)
 .attr("y",50)
 .attr("width",140)
 .attr("height",130)
 .attr("stroke","black")
 .attr("fill","none")
 ;

 //创建显示tooltip文本
 svg.append("text")
 .attr("id", "tooltip2")
 .attr("x", 100)
 .attr("y", 100)
 .attr("text-anchor", "middle")
 .attr("font-family", "sans-serif")
 .attr("font-size", "11px")
 .attr("font-weight", "bold")
 .attr("fill", "black")
 .text(data.properties.name);
 })
 .on('mouseout', function(data) {
 d3.select(this).attr('fill', 'rgba(128,124,139,0.61)');
 //Remove the tooltip
 d3.select("#tooltip1").remove();
 d3.select("#tooltip2").remove();
 })
 .attr('fill', 'rgba(128,124,139,0.61)')
 .attr('stroke', 'rgba(255,255,255,1)')
 .attr('stroke-width', 1)
 ;
});

完整源码下载

中国地图GeoJSON

查看例子

时间: 2024-08-04 09:39:51

SVG实例之中国地图的相关文章

PHP+Mysql+jQuery中国地图区域数据统计实例讲解_php实例

今天我要给大家介绍在实际应用中,如何把数据载入到地图中.本文结合实例,使用PHP+Mysql+jQuery实现中国地图各省份数据统计效果. 本例以统计某产品在各省份的活跃用户数为背景,数据来源于mysql数据库,根据各省份的活跃用户数,分成不同等级,并以不同的背景色显示各省份的活跃程度,符合实际应用需求. HTML 首先在head部分载入raphael.js库文件和chinamapPath.js路径信息文件. <script type="text/javascript" src=

Jquery中国地图热点效果-鼠标经过弹出提示层信息的简单实例_jquery

如下所示: 复制代码 代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head>    <title>Jquery中国地图热点效果-鼠标经过弹出提示层信息的简单实例</title>    <meta http-equiv=

Jquery中国地图热点效果

 本篇文章主要是对Jquery中国地图热点效果-鼠标经过弹出提示层信息的简单实例进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 如下所示:    代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head>     <title>

raphael.js绘制中国地图

 在本文中给大家分享如何使用raphael.js来完成地图交互,raphael.js是一个很小的javascript库,它可以在网页中实现绘制各种矢量图.各类图表.以及图像裁剪.旋转.运动动画等等功能,需要的朋友可以参考下 最近的数据统计项目中要用到中国地图,也就是在地图上动态的显示某个时间段某个省份地区的统计数据,我们不需要flash,仅仅依靠raphael.js以及SVG图像就可以完成地图的交互操作.在本文中,我给大家分享如何使用js来完成地图交互.     先简单介绍下raphael.js

javascript html5 canvas实现可拖动省份的中国地图_javascript技巧

本文实例分享了html5 canvas可拖动省份的中国地图实现方法,供大家参考,具体内容如下 1.数据获取 画地图需要省份边界坐标,理论上可以每次都用百度API获取数据并绘图,但为了增加效率,首先将所有坐标都获取下来并存入数据库中. 新建省份数据数组 复制代码 代码如下: var allZoneData = [{'name':'辽宁省','been':'yes','id':'01'},<span style="font-family: Arial, Helvetica, sans-seri

raphael.js绘制中国地图 地图绘制方法_javascript技巧

最近的数据统计项目中要用到中国地图,也就是在地图上动态的显示某个时间段某个省份地区的统计数据,我们不需要flash,仅仅依靠raphael.js以及SVG图像就可以完成地图的交互操作.在本文中,我给大家分享如何使用js来完成地图交互. 先简单介绍下raphael.js,raphael.js是一个很小的javascript库,它可以在网页中实现绘制各种矢量图.各类图表.以及图像裁剪.旋转.运动动画等等功能.此外raphael.js还跨浏览器兼容,而且还兼容老掉牙的IE6啊.raphael.js的官

使用R语言绘制中国地图

R语言环境     R3.1.1 Windows8.1     需要安装的packages: maptools,gp 绘图所需要的数据     中国地图的GIS数据(可以此下面的网址下载)         http://cos.name/wp-content/uploads/2009/07/chinaprovinceborderdata_tar_gz.zip          是一个压缩包,完全解压后包含三个文件(bou2_4p.dbf.bou2_4p.shp和bou2_4p.shx)    中

如何做出Jsp页面的中国地图啊``

问题描述 如何做出Jsp页面的中国地图啊`` 解决方案 解决方案二:报表统计的一般都有吧搜一搜

淘宝推出淘宝中国地图 涉足LBS服务

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 继五月份淘宝网对淘江湖进行升级并融入"我的淘宝"界面,尝试在淘宝中增加更多SNS基因.这一调整使得"我的淘宝"社交属性进一步增强,同步推出的还有掌柜说.好友分享等功能.6月17日淘宝推出了淘宝中国地图,又一次融入了当前最热门的LBS概念.这个淘宝中国地图只要商家在地图上标注自己的位置,用户就很容易在自己