麦粉社区
>
帖子详情

[系统运维] 内置地图不够用?从零绘制自定义区域地图超详细攻略

动态中心 发表于 2 小时前
发表于 2 小时前

在使用SmartBI内置地图展示数据时,默认提供的是标准的中国地图,分级结构为:省份 → 城市 → 区县。但在实际业务中,可能需要按照区域(如华东、华南)或城镇街道等层级进行展示。例如:数据中存储了“区域/省份/城市/区县/街道”字段,要求在仪表盘中打开地图时,首先看到的是华东、华南、东北等区域的指标完成情况,并支持点击下钻到省份或其他自定义区域。


此时,内置的地图 JSON 文件已无法满足需求。可以使用产品提供的地图编辑器,根据实际业务数据手动划分地图区域,实现自定义区域的数据展示。


如果不熟悉地图编辑器或区域地图配置,建议先阅读以下文档:


地图编辑器:https://wiki.smartbi.com.cn/pages/viewpage.action?smt_poid=43&pageId=111888274


地图区域配置:https://wiki.smartbi.com.cn/pages/viewpage.action?smt_poid=43&pageId=111754516


 


 


一、根据业务数据绘制地图区域,生成 JSON 文件


以下将“中国七大区域”根据实际业务情况,按下面省份进行划分:


 








































区域



包含省份/地区



东北地区



黑龙江省、吉林省、辽宁省、内蒙古自治区



华北地区



北京市、天津市、河北省、山西省



华东地区



上海市、江苏省、浙江省、安徽省、江西省、山东省、福建省、台湾省



华中地区



河南省、湖北省、湖南省



华南地区



广东省、广西壮族自治区、海南省、香港特别行政区、澳门特别行政区



西南地区



重庆市、四川省、贵州省、云南省、西藏自治区



西北地区



陕西省、甘肃省、青海省、宁夏回族自治区、新疆维吾尔自治区



 


提示:为避免后续系统更新影响已上传的 JSON 文件,建议使用扩展包方式部署。扩展包:Map.ext (3.41 K) 具体的使用方法参考:配置世界地图区域 


步骤1:打开地图编辑器


进入“运维设置” → “地图编辑器”,双击打开编辑界面。


 


IMG_256IMG_257


 


步骤2:构建第一层级——七大区域地图


✅ 具体实操视频:实操视频1.zip (6.58 M)


✅ 具体实操步骤如下:


默认地图第一层级为省份,我们需要将其改为自定义的大区。


1.依次添加东北地区所包含的省份(黑龙江省、吉林省、辽宁省、内蒙古自治区)。


详细步骤如下:


 


IMG_258


IMG_259


IMG_260


IMG_261


2.将上述省合并为一个区域,调整中心点,命名为“东北大区”,并编辑唯一 ID(注意:所有层级 ID 必须唯一,避免冲突)。


①右键点击黑龙江区域,选择“合并到”,


IMG_262


 


②选择需要合并的区域,(选择合并操作时,尽量选择相邻的区域进行合并),点击确定


 


IMG_263


 


③ 如图黑龙江选择和吉林省进行合并之后,黑龙江和吉林之间的区域分割线置灰,名称也变成吉林省,不再有黑龙江省,表示两个地区合并成功


 


IMG_264


 


④然后再右键点击吉林省区域选择“合并到”,合并吉林省和辽宁省


 


IMG_265IMG_266


 


⑤此时页面只剩下辽宁省和内蒙古地区,相同的操作继续合并辽宁省和内蒙古地区


 


IMG_267


 


⑥最后,区域列表只剩下内蒙古区域,红色定位符也只有内蒙古


 


IMG_268


 


⑦鼠标调整红色定位符到区域合适的中间位置,区域列表部分修改内蒙古区域为东北大区,id为dongbei,此时东北大区的区域已经画完


 


IMG_269


 


3.重复上述操作,其他六个区域的添加方法和东北大区一致;


注意:所有大区需在同一个编辑界面中完成,不可分页操作。


 


IMG_270


 


完成后导出的 JSON 文件命名为 china2,并手动调整各大区的中心点坐标。


 


IMG_271


 


步骤3:构建第二层级——独立大区地图(支持下钻)


为了实现从七大区域下钻到具体省份,需要为每个大区单独绘制地图:


新建编辑界面,添加该大区所包含的省份(无需合并)。


调整坐标,导出 JSON 文件,如 dongbei.json。


重复上述操作,生成其他六大区域的独立地图文件。(和第一层级的区域文件不同,每个大区添加完省份之后需单独导出各自的json文件)


注意:ID 跨层级不可重复,且名称规范


 


IMG_272


 


温馨提示:市级地图已内置在war中,可直接复制使用,如需重新划分,操作参考省份即可。


步骤4:构建第四层级——街道地图(区县下钻)


内置区县地图没有单独的json文件,如需从区县下钻到街道,需自定义街道的json文件,对于街道级别的自定义地图,可通过以下方式获取


1.打开网站:https://map.ruiduobao.com/;    (此网站为第三方网站,非产品标准内容,仅供参考,不满足时请自行搜索相关资源获取。


IMG_273


 


2.下载并解压文件,找到GeoJSON后缀的文件


使用任何的浏览器打开html文件:bmap-convert.html,按图操作得到百度底图兼容的json格式文件;(非产品标准内容,仅供参考,不满足时请自行搜索相关资源。)


 


IMG_274


 


3.下载后得到的是json文件是单独的街道办事处的地图,这样还不行,因为区县要显示所有的街道或者多个街道,多个街道合并形成一个完成区县,这样才能实现点击区县名称下钻显示各个乡镇或街道的数据,所以~


使用任意浏览器打开网页:bdmap-convert.html,把属于同一个区的转换后的街道/乡镇json文件合并成一个json文件;(非产品标准内容,仅供参考,不满足时请自行搜索相关资源。


 


IMG_275


 


看图所示:


 


IMG_276


 


4.在地图编辑器中验证合并后的 JSON 文件,修改 ID 和名称后导出。


 


IMG_277


 


此时区县下的街道地图文件已经获取,其他街道区域依次完成,注意不同的区县是各自钻取的,所以,在获取不同区县的街道区域json文件时单独进行操作;


由于在公共网络层面无法在获取到5级层级以下的区域地图,所以如果还需要再次细化区域的话,需要在编辑器页面手动绘制


✅ 具体绘制方法参考视频:如画出郑州金水区大石桥街道的金沙社区区域,先导入一个街道的json文件做限制边缘参考:实操视频2.zip (5.45 M)


注意:视频中在画完一个社区的区域后,通过双击完成闭环,导出命名即可,至此json文件已经全部绘制完成


 


二、在系统中配置地图区域


1. 部署扩展包


注意:使用扩展包是为了保证持久性。如果直接替换 WAR 包中的文件,则每次更换 WAR 包时都需要重新加载 JSON 文件,容易造成遗漏


下载扩展包 Map.ext (3.41 K),使用压缩软件打开。


将准备好的 JSON 文件(如 china2.json、各街道 JSON 文件)复制到 Map.ext/vision/maps 目录下。


上传扩展包至对应目录下重启服务


2. 配置地图区域


在系统中进入 GEO 地图区域目录:


创建“中国区域”作为第一层级。


右键“中国区域” → “修改区域”,设置:


区域名称


数据映射名称(与业务数据匹配,或尽可能多的映射)


自定义区域坐标(如已在地图编辑器中调整过,选择“否”)


文件路径:如 Map/vision/maps/china2


保存后系统会自动创建子区域(七大区域)。


 


IMG_278


 


3. 配置子区域



  • 右键修改区域,修改区域名称,区域名称除了第一层级的china2之外,其他层级的名称保持和地图编辑器画图时一致;

  • 数据映射名称,和业务数据像匹配的,可以尽可能的多映射,以防数据库d1数据和地图名称不一致,地图无法正常显示的情况;

  • 自定义区域坐标:在步骤一的1和2,地图编辑器编辑地图已经手动调整过区域坐标,所以此时选否,如果没有调整可再此时选是,手动输入各区域的坐标;

  • 文件路径:由于我们使用的是扩展包的部署方式,所以此处填写文件中在扩展包中位置,目录层级可以自定义,如“Map/vision/maps/dongbei/dongbei.json”,保证能根据设置的路径找到对应的json文件即可;

  • 保存,确定,出现更新子区域成功即可


IMG_279IMG_280


 


依次完成其他七大区域设置,再依次完成各省份的及城市和区县的设置,整个过程都不需要手动创建子区域,子区域会根据上级导入的json文件自动创建;


 


IMG_281


 


注意:省份和城市的json文件在内置的maps/json中已经存在,可以直接在修改区域设置时直接复制已有的路径,如果在创建大区id是通过名称特殊命名的,一般不会导致区域id重复,如果确实有重复的在地图编辑器导入已有json文件,修改id,在导出,使用新的json文件即可。


最终展示结果:



  • 区域显示效果


IMG_282



  • 区域下钻省份显示效果


IMG_283



  • 省份下钻城市显示效果


IMG_284



  • 城市下钻区县显示效果


IMG_285



  • 区县下钻街道显示效果


IMG_286

高级模式
B Color Image Link Quote Code Smilies
您需要登录后才可以回帖 登录 | 立即注册

0回帖数 0关注人数 5浏览人数
最后回复于:2 小时前

社区

指南

AI

搜索

快速回复 返回顶部 返回列表