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

查看例子

目录
相关文章
|
数据可视化 定位技术
svg数据可视化地图实战笔记
svg数据可视化地图实战笔记
517 0
|
并行计算 API C++
又欲又撩人,基于新版Bert-vits2V2.0.2音色模型雷电将军八重神子一键推理整合包分享
Bert-vits2项目近期炸裂更新,放出了v2.0.2版本的代码,修正了存在于2.0先前版本的重大bug,并且重炼了底模,本次更新是即1.1.1版本后最重大的更新,支持了三语言训练及混合合成,并且做到向下兼容,可以推理老版本的模型,本次我们基于新版V2.0.2来本地推理原神小姐姐们的音色模型。
又欲又撩人,基于新版Bert-vits2V2.0.2音色模型雷电将军八重神子一键推理整合包分享
|
1月前
|
存储 人工智能 自然语言处理
LlamaIndex 深度实战:用《长安的荔枝》学会构建智能问答系统
本文深入浅出地讲解了RAG(检索增强生成)原理与LlamaIndex实战,通过《长安的荔枝》案例,从AI如何“读书”讲起,详解三大关键参数(chunk_size、top_k、overlap)对问答效果的影响,并结合真实实验展示不同配置下的回答质量差异。内容兼顾新手引导与进阶优化,帮助读者快速构建高效的文档问答系统。
513 22
LlamaIndex 深度实战:用《长安的荔枝》学会构建智能问答系统
|
3月前
|
机器学习/深度学习 人工智能 算法
火眼金睛:如何检测文本内容是否出自AI之手?
火眼金睛:如何检测文本内容是否出自AI之手?
744 115
|
8月前
|
数据可视化 前端开发 开发工具
如何在网页中嵌入UE/Unity/WebGL程序,并与网页端通信
LarkXR实时云渲染平台,为UE数字孪生提供的产品化、平台化功能模块,以及必备的二次开发能力。
449 11
如何在网页中嵌入UE/Unity/WebGL程序,并与网页端通信
|
5月前
|
监控 算法 API
用抖音电商 API 实现抖音小店商品标签精准打标
本文介绍如何利用抖音电商 API 实现商品标签精准打标,提升曝光与转化率。内容涵盖打标重要性、API 调用准备、标签自动化更新流程及最佳实践,助力商家高效运营,优化推荐效果。
373 0
|
数据可视化 搜索推荐 定位技术
网站地图(sitemap)生成及数据可视化分析工具(SiteMap.Top)
SiteMap.Top 是一款专注于网站地图生成与数据可视化分析的工具,支持一键生成 sitemap.xml 并提供详细的统计数据与可视化界面,帮助网站管理员、SEO 专家及内容创作者高效管理和优化网站结构,提升网站可见性和用户体验。[官网链接](https://sitemap.top/)
847 0
网站地图(sitemap)生成及数据可视化分析工具(SiteMap.Top)
|
机器学习/深度学习 编解码 人工智能
ColorFlow:腾讯和清华大学联合推出的图像序列着色模型,通过参考图像的颜色对黑白漫画进行着色生成彩色漫画
ColorFlow是由清华大学和腾讯ARC实验室共同推出的图像序列着色模型,通过检索增强、上下文学习和超分辨率技术,确保黑白图像序列的着色与参考图像颜色一致,适用于漫画、动画制作等工业应用。
1521 15
ColorFlow:腾讯和清华大学联合推出的图像序列着色模型,通过参考图像的颜色对黑白漫画进行着色生成彩色漫画
网页课程设计-期末大作业-简单设计【原神狂喜】
本文介绍了一个以“原神”为主题的网页课程设计项目,包括登录页、博客首页、文件上传页面、相册页面和留言板页面的设计与实现,并提供了完整的源代码下载链接。
网页课程设计-期末大作业-简单设计【原神狂喜】

热门文章

最新文章