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数据可视化地图实战笔记
588 0
|
6月前
|
机器学习/深度学习 缓存 物联网
打造社交APP人物动漫化:通义万相wan2.x训练优化指南
本项目基于通义万相AIGC模型,为社交APP打造“真人变身跳舞动漫仙女”特效视频生成功能。通过LoRA微调与全量训练结合,并引入Sage Attention、TeaCache、xDIT并行等优化技术,实现高质量、高效率的动漫风格视频生成,兼顾视觉效果与落地成本,最终优选性价比最高的wan2.1 lora模型用于生产部署。(239字)
1981 106
|
并行计算 API C++
又欲又撩人,基于新版Bert-vits2V2.0.2音色模型雷电将军八重神子一键推理整合包分享
Bert-vits2项目近期炸裂更新,放出了v2.0.2版本的代码,修正了存在于2.0先前版本的重大bug,并且重炼了底模,本次更新是即1.1.1版本后最重大的更新,支持了三语言训练及混合合成,并且做到向下兼容,可以推理老版本的模型,本次我们基于新版V2.0.2来本地推理原神小姐姐们的音色模型。
又欲又撩人,基于新版Bert-vits2V2.0.2音色模型雷电将军八重神子一键推理整合包分享
|
8月前
|
机器学习/深度学习 人工智能 算法
火眼金睛:如何检测文本内容是否出自AI之手?
火眼金睛:如何检测文本内容是否出自AI之手?
1536 115
|
6月前
|
存储 人工智能 自然语言处理
LlamaIndex 深度实战:用《长安的荔枝》学会构建智能问答系统
本文深入浅出地讲解了RAG(检索增强生成)原理与LlamaIndex实战,通过《长安的荔枝》案例,从AI如何“读书”讲起,详解三大关键参数(chunk_size、top_k、overlap)对问答效果的影响,并结合真实实验展示不同配置下的回答质量差异。内容兼顾新手引导与进阶优化,帮助读者快速构建高效的文档问答系统。
919 22
LlamaIndex 深度实战:用《长安的荔枝》学会构建智能问答系统
|
数据可视化 前端开发 开发工具
如何在网页中嵌入UE/Unity/WebGL程序,并与网页端通信
LarkXR实时云渲染平台,为UE数字孪生提供的产品化、平台化功能模块,以及必备的二次开发能力。
702 11
如何在网页中嵌入UE/Unity/WebGL程序,并与网页端通信
|
机器学习/深度学习 人工智能 算法
Stable Virtual Camera:2D秒变3D电影!Stability AI黑科技解锁无限运镜,自定义轨迹一键生成
Stable Virtual Camera 是 Stability AI 推出的 AI 模型,能够将 2D 图像转换为具有真实深度和透视感的 3D 视频,支持自定义相机轨迹和多种动态路径,生成高质量且时间平滑的视频。
1053 0
Stable Virtual Camera:2D秒变3D电影!Stability AI黑科技解锁无限运镜,自定义轨迹一键生成
|
10月前
|
监控 算法 API
用抖音电商 API 实现抖音小店商品标签精准打标
本文介绍如何利用抖音电商 API 实现商品标签精准打标,提升曝光与转化率。内容涵盖打标重要性、API 调用准备、标签自动化更新流程及最佳实践,助力商家高效运营,优化推荐效果。
|
机器学习/深度学习 人工智能 自然语言处理
Manga Image Translator:开源的漫画文字翻译工具,支持多语言翻译并嵌入原图,保持漫画的原始风格和布局
Manga Image Translator 是一款开源的漫画图片文字翻译工具,支持多语言翻译并能将翻译后的文本无缝嵌入原图,保持漫画的原始风格和布局。该工具基于OCR技术和深度学习模型,提供批量处理和在线/离线翻译功能。
3515 17
Manga Image Translator:开源的漫画文字翻译工具,支持多语言翻译并嵌入原图,保持漫画的原始风格和布局

热门文章

最新文章