跳到主要内容
版本:8.3.0

世界地图管理

概述

世界地图管理用于维护世界地图的地区映射关系地图数据文件。配置完成后,世界地图可以根据业务数据中的地区名称或地区代码,识别需要展示的地图层级,并加载对应的 GeoJSON 地图数据。

例如,业务数据中的地区值为“加利福尼亚州”时,会先识别出其地区代码为 US-CA,再根据 US-CA 的查找到上级地区代码为 US ,从而加载 US.json,最终绘制美国地图并对“加利福尼亚州”的区域进行着色。

配置界面如下:

世界地图管理页面

注意

本功能仅支持基于 ECharts 渲染的世界地图。

配置说明

地区代码

地区代码应使用唯一的字符串,建议仅包含英文字母、数字和中横线且不含空格,区分大小写。

地区代码用在如下地方:

  • textToCode 的值
  • codeToUpperCode 的键和值
  • 地图数据文件名
  • 地图数据文件中的feature.properties.code

地区代码建议使用 USUS-CAUS-CA-LA 这类能够体现层级的命名,但实际上下级关系仍以 codeToUpperCode 的配置为准。

文件之间的关系

需要以下两类文件来实现自定义地区的地图绘制:

文件作用命名要求
world-geo-map.json维护业务地区名称、地区唯一识别码以及上下级地区关系文件名固定,不可修改
地图数据文件保存某个地区下一级区域的 GeoJSON 边界数据文件名必须与该地区的地区代码一致,例如 US.json 用于加载美国的地图

系统按以下顺序识别并加载地图:

  1. 根据 world-geo-map.json,将业务地区名称转换为地区代码。
  2. 根据地区代码找到其上级地区代码。
  3. 加载以上级地区代码命名的地图数据文件。
  4. 根据「地图数据JSON」中各区域的 code 关联业务数据,并使用 name 显示区域名称。

以“加利福尼亚州”为例:

加利福尼亚州 → US-CA → 上级地区 US → 加载 US.json → 匹配地图地图 JSON文件中 code 为 US-CA 的区域

映射关系文件

映射关系文件名固定为 world-geo-map.json,可以在「世界地图管理」页面下载,文件中包含以下两个对象:

  • textToCode:定义业务地区名称与地区代码的映射。同一个地区可以配置中文名、英文名或企业内部使用的业务名称。
  • codeToUpperCode:定义地区代码与上级地区代码的关系。系统根据该关系判断需要加载哪个地图数据文件。

以下示例在系统内置的美国映射基础上,补充加利福尼亚州和洛杉矶县的名称及上下级关系:

{
"textToCode": {
"加利福尼亚州": "US-CA",
"California": "US-CA",
"洛杉矶县": "US-CA-LA",
"Los Angeles County": "US-CA-LA"
},
"codeToUpperCode": {
"US-CA": "US",
"US-CA-LA": "US-CA"
}
}

可以下载系统内置映射关系参考文件 base-world-geo-map.json查看系统已经支持的常用国家或地区中英文名称、地区代码和上下级关系。该文件仅用于参考,不需要修改或上传。

用户维护的 world-geo-map.json 中只需填写以下内容:

  • 系统内置映射中没有的地区名称、地区代码或上下级关系。
  • 需要覆盖系统内置映射的名称、地区代码或上下级关系。

用户上传的映射关系配置会与系统内置映射合并;存在相同名称或地区代码时,以用户上传的配置为准。

维护映射关系文件时,请注意:

  • world-geo-map.json 文件名固定,只能在「映射关系」区域维护。
  • 修改前请先从系统下载当前文件,在已有内容上增补或修改,避免覆盖其他用户已经维护的自定义映射。
  • 业务数据中的地区字段也可以直接使用 US-CA 等地区代码。此时可以不在 textToCode 中重复配置该值,但仍需在 codeToUpperCode 中配置其上级地区,系统才能确定需要加载的地图文件。

地图数据文件

地图数据文件使用 GeoJSON 格式。每个 feature.properties 至少需要包含:

  • code:当前区域的地区代码(注意唯一性),用于关联业务数据。
  • name:当前区域在地图上显示的名称。

例如,US.json 中的加利福尼亚州可以按以下方式定义:

{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"code": "US-CA",
"name": "California"
},
"geometry": {
"type": "Polygon",
"coordinates": []
}
}
]
}

上述代码中的 coordinates 仅用于说明文件结构,实际使用时需要填写完整、有效的 GeoJSON 坐标。

地图数据文件遵循“文件名等于当前地图代码”的规则:

希望展示的区域业务数据对应的地区代码上级地区代码需要上传的地图文件
世界各国家或地区USCNworld1world1.json
美国各州US-CAUS-NYUSUS.json
加利福尼亚州下级区域US-CA-LAUS-CAUS-CA.json

维护地图数据文件时,请注意:

  • 单个地图数据文件仅支持 JSON 格式,文件大小不超过 10 MB,上传前请尽量使用工具进行压缩或裁剪坐标点精度,减小地图加载压力。
  • 文件名需要与对应地区代码一致;除 .json 后缀外,只能包含字母、数字和中横线。
  • 批量导入时压缩包内单个 JSON 文件仍需符合上述规则。
  • 新增或批量导入同名文件时,系统会覆盖已有文件。
  • 更新已有文件只会替换文件内容,不会修改列表中的原文件名。
  • 删除地图数据文件后,依赖该文件的下级地图将无法加载。
文件内容校验

上传页面只校验文件类型、大小和文件名,不校验 JSON 语法、GeoJSON 坐标以及 codename 是否完整。建议在上传前使用 JSON 或 GeoJSON 校验工具检查文件。code 缺失或上下级关系配置错误,可能导致地图无法生成、区域无法着色或下钻后地图加载失败。

使用示例

世界地图卡片的创建和字段配置方法参见世界地图

以下示例为美国下钻后的效果。示例所需的业务数据、映射关系和地图数据可以参考:世界地图美国下钻示例

世界级展示效果:

世界地图国家级展示效果

下钻到美国州级区域后的效果:

美国州级区域展示效果

继续下钻到加利福尼亚州下级区域后的效果:

加利福尼亚州下级区域展示效果

常见问题

图表提示“当前图表配置的地理位置信息无法识别”

请按以下顺序检查:

  1. 业务地区名称是否已在 textToCode 中配置,或业务数据是否直接使用了有效的地区代码。
  2. 地区代码是否已在 codeToUpperCode 中配置上级地区。
  3. world-geo-map.json 是否为合法 JSON,字段名是否正确。

下钻后地图加载失败

请检查对应的地图文件是否已经上传。例如,展示美国各州时需要上传 US.json;展示加利福尼亚州下级区域时需要上传 US-CA.json

同时确认文件名与 codeToUpperCode 配置完全一致,包括大小写。

地图可以打开,但部分区域没有着色

请检查:

  • 业务数据转换后的地区代码是否与 GeoJSON 中 feature.properties.code 完全一致。
  • GeoJSON 中是否包含 codename
  • 当前维度数据是否混入其他层级或其他上级地区的数据。
  • 业务地区名称是否存在多余空格、不同语言写法或企业自定义别名;如有,请在 textToCode 中补充映射。