echarts 渲染 geojson 常见问题记录

2023-11-09

转载请加原文链接。

希望各位转载本文章的时候不要直接复制粘贴(因为格式可能会乱,你也不希望每次百度到的结果前篇一律且参差不齐吧!)

效果图

如何找 GeoJson 数据

  1. 找到具有案例的某某官网,如:echarts
  2. 控制台查看网络请求
  3. 找到官网所使用的数据来源,可能是 js 也可能是 json 数据。
  4. 下载下来提取想要的数据即可

本人常用的数据下载地址:

阿里云的地图选择器Natural EarthGeoJson.ioHighcharts 世界地图

合并 GeoJson 数据

你可能希望画一个 世界地图 ,又希望这份数据里面包含详细的 中国省份地图 。那你不妨把 china.json 的数据直接拷贝到 world.json 的源数据中去。(可以代码实现也可以手动拷贝,请不要破坏原有的数据结构)

渲染地名发生位置偏移

经常有数据的地名不在区域内部显示,本人尝试设置 label.offset 来解决问题,但设置无效。最终修改 json 文件,添加 "cp": [lng, lat] 解决了问题。如:

"properties": {
  "name": "Japan",
  "cp": [139.2612315007275, 37.21842217845101], // 没有就添加此属性
  "childNum": 28
}

自定义渲染地名

参考官方文档:geo.regions

大家应该都遇到过地图上地名挤作一团的情况,有的时候其实我们并不关心某些地区。那么我们可以自定义显示想要显示的地名。

第一步:先设置不显示地名

geo: {
  ...
  label: {
    show: false
  }
  ...
}

第二步:单独设置 regions

geo: {
  ...
  regions: [{
    name: '中华人民共和国', // 地名
    label: {
        show: true, // 单独控制显隐
        color: 'red'
    }
  }],
  ...
}

为不同区域上色也可以使用此方式。

获取点击位置的经纬度

参考官方文档:echartsInstance.convertFromPixel

echartsInstance.getZr().on('click', (params) => {
  console.log(echartsInstance.convertFromPixel({ geoIndex: 0 }, [params.event.offsetX, params.event.offsetY]));
});

这里直接用 echartsInstance.on('click', (params) => { /*...*/ }) 将无法获取非 geojson 数据外的坐标。

拖动和缩放画布事件

这个官方文档暂时没有明确提供说明。

echartsInstance.on('georoam', (params) => {
  // zoom 作为标识判断事件类型
  if (params.zoom) {
    console.log('触发缩放事件')
  } else {
    console.log('触发拖拽事件')
  }
})

你可能会在画布上画一些散点图,然后在对画布进行缩放的时候导致散点图慢慢发生偏移,不妨尝试设置 animation: false

改变尺寸

参考官方文档:echartsInstance.resize

打开调试的时候发现地图的大小不会随窗口的大小而自适应的发生改变,查阅官方文档发现需要手动触发 echartsInstance.resize()

window.addEventListener('resize', () => { echartsInstance.resize() })

地名映射表(英对中)

用于 geonameMap

{
   'Afghanistan': '阿富汗',
   'Angola': '安哥拉',
   'Albania': '阿尔巴尼亚',
   'United Arab Emirates': '阿联酋',
   'Argentina': '阿根廷',
   'Armenia': '亚美尼亚',
   'French Southern and Antarctic Lands': '法属南半球和南极领地',
   'Australia': '澳大利亚',
   'Austria': '奥地利',
   'Azerbaijan': '阿塞拜疆',
   'Burundi': '布隆迪',
   'Belgium': '比利时',
   'Benin': '贝宁',
   'Burkina Faso': '布基纳法索',
   'Bangladesh': '孟加拉国',
   'Bulgaria': '保加利亚',
   'The Bahamas': '巴哈马',
   'Bosnia and Herzegovina': '波斯尼亚和黑塞哥维那',
   'Belarus': '白俄罗斯',
   'Belize': '伯利兹',
   'Bermuda': '百慕大',
   'Bolivia': '玻利维亚',
   'Brazil': '巴西',
   'Brunei': '文莱',
   'Bhutan': '不丹',
   'Botswana': '博茨瓦纳',
   'Central African Republic': '中非共和国',
   'Canada': '加拿大',
   'Switzerland': '瑞士',
   'Chile': '智利',
   'China': '中华人民共和国',
   'Ivory Coast': '象牙海岸',
   'Cameroon': '喀麦隆',
   'Democratic Republic of the Congo': '刚果民主共和国',
   'Republic of the Congo': '刚果共和国',
   'Colombia': '哥伦比亚',
   'Costa Rica': '哥斯达黎加',
   'Cuba': '古巴',
   'Northern Cyprus': '北塞浦路斯',
   'Cyprus': '塞浦路斯',
   'Czech Republic': '捷克共和国',
   'Germany': '德国',
   'Djibouti': '吉布提',
   'Denmark': '丹麦',
   'Dominican Republic': '多明尼加共和国',
   'Algeria': '阿尔及利亚',
   'Ecuador': '厄瓜多尔',
   'Egypt': '埃及',
   'Eritrea': '厄立特里亚',
   'Spain': '西班牙',
   'Estonia': '爱沙尼亚',
   'Ethiopia': '埃塞俄比亚',
   'Finland': '芬兰',
   'Fiji': '斐',
   'Falkland Islands': '福克兰群岛',
   'France': '法国',
   'Gabon': '加蓬',
   'United Kingdom': '英国',
   'Georgia': '格鲁吉亚',
   'Ghana': '加纳',
   'Guinea': '几内亚',
   'Gambia': '冈比亚',
   'Guinea Bissau': '几内亚比绍',
   'Equatorial Guinea': '赤道几内亚',
   'Greece': '希腊',
   'Greenland': '格陵兰',
   'Guatemala': '危地马拉',
   'French Guiana': '法属圭亚那',
   'Guyana': '圭亚那',
   'Honduras': '洪都拉斯',
   'Croatia': '克罗地亚',
   'Haiti': '海地',
   'Hungary': '匈牙利',
   'Indonesia': '印尼',
   'India': '印度',
   'Ireland': '爱尔兰',
   'Iran': '伊朗',
   'Iraq': '伊拉克',
   'Iceland': '冰岛',
   'Israel': '以色列',
   'Italy': '意大利',
   'Jamaica': '牙买加',
   'Jordan': '约旦',
   'Japan': '日本',
   'Kazakhstan': '哈萨克斯坦',
   'Kenya': '肯尼亚',
   'Kyrgyzstan': '吉尔吉斯斯坦',
   'Cambodia': '柬埔寨',
   'South Korea': '韩国',
   'Dem. Rep. Korea': '韩国',
   'Kosovo': '科索沃',
   'Kuwait': '科威特',
   'Laos': '老挝',
   'Lao PDR': '老挝',
   'Lebanon': '黎巴嫩',
   'Liberia': '利比里亚',
   'Libya': '利比亚',
   'Sri Lanka': '斯里兰卡',
   'Lesotho': '莱索托',
   'Lithuania': '立陶宛',
   'Luxembourg': '卢森堡',
   'Latvia': '拉脱维亚',
   'Morocco': '摩洛哥',
   'Moldova': '摩尔多瓦',
   'Madagascar': '马达加斯加',
   'Mauritius': '毛里求斯',
   'Seychelles': '塞舌尔',
   'Br. Indian Ocean Ter.': '印度洋',
   'Mexico': '墨西哥',
   'Macedonia': '马其顿',
   'Mali': '马里',
   'Myanmar': '缅甸',
   'Montenegro': '黑山',
   'Mongolia': '蒙古',
   'Mozambique': '莫桑比克',
   'Mauritania': '毛里塔尼亚',
   'Malawi': '马拉维',
   'Malaysia': '马来西亚',
   'Namibia': '纳米比亚',
   'New Caledonia': '新喀里多尼亚',
   'Niger': '尼日尔',
   'Nigeria': '尼日利亚',
   'Nicaragua': '尼加拉瓜',
   'Netherlands': '荷兰',
   'Norway': '挪威',
   'Nepal': '尼泊尔',
   'New Zealand': '新西兰',
   'Oman': '阿曼',
   'Pakistan': '巴基斯坦',
   'Panama': '巴拿马',
   'Peru': '秘鲁',
   'Philippines': '菲律宾',
   'Papua New Guinea': '巴布亚新几内亚',
   'Poland': '波兰',
   'Puerto Rico': '波多黎各',
   'North Korea': '北朝鲜',
   'Korea': '朝鲜',
   'Portugal': '葡萄牙',
   'Paraguay': '巴拉圭',
   'Qatar': '卡塔尔',
   'Romania': '罗马尼亚',
   'Russia': '俄罗斯',
   'Rwanda': '卢旺达',
   'Western Sahara': '西撒哈拉',
   'Saudi Arabia': '沙特阿拉伯',
   'Sudan': '苏丹',
   'South Sudan': '南苏丹',
   'Senegal': '塞内加尔',
   'Solomon Islands': '所罗门群岛',
   'Sierra Leone': '塞拉利昂',
   'El Salvador': '萨尔瓦多',
   'Somaliland': '索马里兰',
   'Somalia': '索马里',
   'Republic of Serbia': '塞尔维亚共和国',
   'Suriname': '苏里南',
   'Slovakia': '斯洛伐克',
   'Slovenia': '斯洛文尼亚',
   'Sweden': '瑞典',
   'Swaziland': '斯威士兰',
   'Syria': '叙利亚',
   'Chad': '乍得',
   'Togo': '多哥',
   'Thailand': '泰国',
   'Tajikistan': '塔吉克斯坦',
   'Turkmenistan': '土库曼斯坦',
   'East Timor': '东帝汶',
   'Trinidad and Tobago': '特里尼达和多巴哥',
   'Tunisia': '突尼斯',
   'Turkey': '土耳其',
   'United Republic of Tanzania': '坦桑尼亚联合共和国',
   'Uganda': '乌干达',
   'Ukraine': '乌克兰',
   'Uruguay': '乌拉圭',
   'United States of America': '美国',
   'United States': '美国',
   'Uzbekistan': '乌兹别克斯坦',
   'Venezuela': '委内瑞拉',
   'Vietnam': '越南',
   'Vanuatu': '瓦努阿图',
   'West Bank': '西岸',
   'Yemen': '也门',
   'South Africa': '南非',
   'Zambia': '赞比亚',
   'Zimbabwe': '津巴布韦'
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

echarts 渲染 geojson 常见问题记录 的相关文章

  • 如何使用 vega 读取 geojson

    这听起来非常简单 但我不知道如何为我的多边形使用 geojson 而不是 topojson 这是我目前的尝试 data name nabs url both boundaries geojson format type json trans
  • R中的光栅层

    我有一个包含多个 adf 文件的 GIS 项目 由于我是 ArcMap 的新手 我不知道如何使用它们 我设法使用光栅库将它们读入 r r lt raster w001001 adf 当查看 sum r 时 我得到 sum r class R
  • 使用行/列索引对栅格进行子集化

    当对矩阵或 DF 进行子集化时 可以引用行列 例如df1 1 5 3 10 or df3 2 4 有没有办法用光栅来做到这一点 也就是说 我可以只剪辑第 500 700 行 例如从光栅对象中剪辑吗 我尝试过使用rasterFromCells
  • Openlayers:不支持的 GeoJSON 类型:未定义

    如果有人记得或看过我之前的帖子 我试图解析 GeoJSON 字符串 但成功率有限 该问题已解决 但我有一个包含大约 80k 行的 geojson 文件 我取出 js 文件中的字符串 并尝试将 geojsonObject 指向 geojson
  • python 中的测地线缓冲

    给定土地多边形作为Shapely https pypi python org pypi Shapely MultiPolygon 我想找到代表例如的 多 多边形海岸线周围12海里缓冲区 使用匀称buffer方法不起作用 因为它使用欧几里德计
  • 在 R SF 中交叉大型空间数据集

    我有两个空间数据集 一个数据集包含许多多边形 总共超过 150k 指定不同的特征 如河流 植被 另一个数据集包含更少的指定不同区域的多边形 500 我需要将这两个数据集相交以获得不同区域的特征 我可以根据不同的特征对第一个数据集进行子集化
  • 使用 geotools api 在 WGS84 crs 中线段和点之间的最短距离

    在geotools中 您可以使用Geometry类中的距离函数找到两个几何图形之间的距离 几何有一个点子类 但没有几何的线段子类 然而 有一个 LineSegment 类派生自 LineString 它不是 Geometry 类的子类 我尝
  • 如何使用 Openlayers 文本图层编辑弹出窗口

    我正在使用 Openlayers 创建一个包含大约 1000 多个点的地图 目前 当我单击一个点的图标时 该点的描述会显示在弹出窗口中 要退出弹出窗口 我需要再次单击同一点的图标 有没有办法修改此代码 以便我可以按关闭按钮或单击地图上的任意
  • 是否有 R 函数用于检查指定的 GeoJSON 对象(多边形或多多边形)是否包含指定点?

    我有一系列点 Sheet1 CoM ID 1040614 Genus Washingtonia Year Planted 1998 Latitude 37 81387927 Longitude 144 9817733 CoM ID 1663
  • 将多边形转换为网格

    我有很多多边形 理想情况下 所有多边形不得相互重叠 但它们可以彼此相邻 但实际上 我必须考虑到slight多边形重叠 由一定的公差定义 因为所有这些多边形都是从用户手绘输入获得的 这并不像我希望的那样机器精确 我的问题是 是否有任何软件库组
  • 计算整个 GeoDataFrame 点的质心

    我想从 geojson 文件导入一些航路点 标记 然后确定所有点的质心 我的代码计算每个点的质心 而不是该系列中所有点的质心 如何计算系列中所有点的质心 import geopandas filepath r Shiloh json gdf
  • D3.js - 如何添加具有默认滚轮鼠标缩放行为的缩放按钮

    因此 我使用默认的 d3 behavior zoom 获得了带有鼠标缩放的世界地图 并进行了限制以防止地图被完全拖出页面 开始工作时很痛苦 但现在可以了 我现在的问题是 这个项目还需要界面中无用的缩放 和 按钮 并且我找不到具有两种缩放类型
  • Mongodb 地理位置边界搜索/查询

    我有一个包含位置 框 方形区域 列表的文档 每个框由 2 个点表示 左下或西南 右上角或东北 文档 例如 locations bottom left top right bottom left top right bottom left t
  • 将 DMS 坐标转换为 R 中的十进制

    我有以下 DMS 格式的坐标 我需要将它们转换为十进制 Libraries gt library sp gt library magrittr Latitide Longitude as strings gt lat lt 21d11m24
  • MongoDB 连接被对等方重置

    我研究过其他解决方案 例如 Mongodb 连接被对等方重置 https stackoverflow com questions 2961648 mongodb connection reset by peer Mongodb 自动重新连接
  • 加载本地 GeoJSON 文件并将其与 Google Maps Javascript API v3 数据层一起使用

    我创建了一个可在 DataLayer 拖放教程中使用的 JSON FeatureCollection 到目前为止 它只是 2 条道路的集合 但我不知道如何加载 JSON 文件 目前它是一个本地文件 所以我认为调用它并按照教程设计它将使我走上
  • 在 R 中从一条线偏移绘制一条平行线

    我有代表沿着一些街道行驶的线串 但我实际上想代表骑自行车者的旅程 它偏离线路 即他们在路边附近行驶 我正在努力思考如何去做 我制作了一段可重现的 R 代码来进行说明 Let s say I have a route along some s
  • 老虎普查数据中的 Shape_area 和 ALAND AWATER

    Shape area 是什么意思 我注意到它不是 Aland 和 Awater 的总和 这三个的单位是什么 ALAND和AWATER的单位是平方米 例如 tl 2015 us county dbf康明县有记录ALAND 1477895811
  • GeoJSON 要素坐标未显示在 OpenLayers 地图上

    我正在尝试显示一个GeoJSON地图上的多边形 我使用了 OpenLayers 提供的示例以及以下数据 但仅显示第二个多边形 var geojsonObject type FeatureCollection crs type name fe
  • 持久(基于磁盘)R 树(或 R* 树)

    R Tree 如何实现为持久性 基于磁盘 树 用于保存 R Tree 索引或保存叶值的文件的架构是什么 注意 此外 如何在这样的持久 R 树中执行插入 更新和删除操作 注释 II 我已经实现了具有批量加载功能的内存中 R 树 但我认为当我们

随机推荐

  • Linux代码比对工具meld

    Ubuntu20 04下安装meld的时候报错 root PC apt get install meld 正在读取软件包列表 完成 正在分析软件包的依赖关系树 正在读取状态信息 完成 您也许需要运行 apt fix broken insta
  • 一本应届计算机混子春招复盘

    回首四年大学摆烂生活 什么都没做 大四上学期去参加10个人小公司实习错过秋招 大四下来卷春招 目前参加过一次群面 两次二面 群面 海天集团软件开发岗 2面3 问的问题还算简单 数据库索引B 树 链表 和我一起面试的都是考研失败者 我自认为答
  • 四个步骤买阿里云国际版

    本文是分享 不是广告 未添加联系方式 首先 本方法肯定是可行的 如果你有信用卡也可以网上搜索绑卡教程注册 本方法是不用你绑定PayPal与信用卡的版本 整个过程非常的简单 所以在开始之前 你务必要准备好下面这几样东西 1 一个用来注册用的邮
  • ruoyi Vue 文件上传组件 2.0

    简化了在页面的使用难度 在每次加载时监控 ids 是否变化 监测到变化就重新从后台通过ids获取数据 文件上传组件完整代码
  • Run-Time Check Failure #2 - Stack around the variable 's' was corrupted.

    https www cnblogs com ambdyx p 11779566 html 建议debug查看内存申请大小 数据大小 以及数组大小 对指针和引用进行甄别修改
  • 如何在CentOS 8上安装PostgreSQL

    PostgreSQL或Postgres是开放源代码的通用对象关系数据库管理系统 具有许多高级功能 使您可以构建容错环境或复杂的应用程序 在本指南中 我们将讨论如何在CentOS 8上安装PostgreSQL数据库服务器 在选择要安装的版本之
  • 【华为OD机试真题2023B卷 JS】观看文艺汇演问题

    华为OD2023 B卷 机试题库全覆盖 刷题指南点这里 观看文艺汇演问题 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 为庆祝中国共产党成立100周年 某公园将举行多场文艺汇演 很多演出都是同时进行 一个人只能同时观看一场
  • 虚幻引擎(UE)C++,加载读取本地路径图片、Texture2D

    通过路径获取单张图片 转为Texture2D UFUNCTION BlueprintCallable Category Image static UTexture2D LoadTexture2D const FString ImagePat
  • location.href通过添加token验证跳转连接(多用于导出下载文件)

    由前端登录验证 页面跳转 携带headers token引发的思考和尝试 传统方式href带参数后边直接添加键值对即可 但是无法传token 解决办法 附代码 var xhr new XMLHttpRequest xhr open get
  • [Linux]进程

    摘于https subingwen cn 作者 苏丙榅 侵删 文章目录 1 进程控制 1 1 进程概述 1 1 1 并行和并发 1 1 2 PCB 1 1 4 进程状态 1 1 5 进程命令 1 2 进程创建 1 2 1 函数 1 2 2
  • PID算法C语言程序STM32单片机控制水温实验(一、位置型PID)

    一 概述 实验所用器材均为容易买到的设备 主要有STM32F103C8T6最小系统板 DS18B20温度传感器 继电器模块 TM1638显示模块 电加热棒 12V 80W 直流电源适配器 12V 10A 再找一个小一些的玻璃杯 水250ml
  • 使用Azkaban调度Spark任务

    概述 为什么需要工作流调度系统 l 一个完整的数据分析系统通常都是由大量任务单元组成 shell脚本程序 java程序 mapreduce程序 hive脚本等 l 各任务单元之间存在时间先后及前后依赖关系 l 为了很好地组织起这样的复杂执行
  • web安全漏洞-SQL注入攻击实验

    实验目的 学习sql显注的漏洞判断原理 掌握sqlmap工具的使用 分析SQL注入漏洞的成因 实验工具 sqlmap是用python写的开源的测试框架 支持MySQL Oracle PostgreSQL Microsoft SQL Serv
  • 设计模式中的UML类图

    在线绘图工具 https app diagrams net https www processon com 第一个需要挂梯子 但很好用 本文用它绘制样例图 最近在看Head First一书 即使在软件工程的课程中学习过UML类图如何绘制 但
  • Mac快捷键手册

    基本操作 切换桌面 Ctrl 左方向 或 Ctrl 右方向 显示当前桌面所有应用 Ctrl 上方向 恢复桌面到当前应用 Ctrl 下方向 显示空桌面 F11 再点击一次 恢复 文件目录操作 当前目录下显示隐藏文件 command shift
  • 基于JAVA旧货网上交易系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署

    基于JAVA旧货网上交易系统计算机毕业设计源码 系统 mysql数据库 lw文档 部署 基于JAVA旧货网上交易系统计算机毕业设计源码 系统 mysql数据库 lw文档 部署 本源码技术栈 项目架构 B S架构 开发语言 Java语言 开发
  • MySQL的卸载

    步骤1 停止MySQL服务 在卸载之前 先停止MySQL8 0的服务 右击 此电脑 选择 管理 可以在 服务 列表找到 MySQL8 0 的服务 如果现在 正在运行 状态 可以右键单击服务 选择 停止 选项停止MySQL8 MySQL5的服
  • IOC的三级缓存图文详细解析(含如何解决循环依赖问题)

    1 三级缓存 1 一级缓存模型 2 二级缓存模型 3 三级缓存模型 2 解决循环依赖问题 1 三级缓存 三级缓存是为了解决循环依赖存在的 一级缓存就是储存最终的完整bean的容器 二级缓存是储存实例化但未初始化的半成品bean 三级缓存是为
  • 集合使用迭代器遍历删除元素的问题

    记一次面试问题 在集合中删除元素再普通不过 一般想到的就是for循环遍历 在里面删除指定的元素 如下所示 public class Main public static void main String args ArrayList
  • echarts 渲染 geojson 常见问题记录

    转载请加原文链接 希望各位转载本文章的时候不要直接复制粘贴 因为格式可能会乱 你也不希望每次百度到的结果前篇一律且参差不齐吧 如何找 GeoJson 数据 找到具有案例的某某官网 如 echarts 控制台查看网络请求 找到官网所使用的数据