场景:部分用户报表中只需要展示个别地区的数据情况,这个时候整张中国地图范围太大,可以采用下面的方式自定义地图的范围。
1.修改 DE 自带行政地图范围
介绍一下 dataease 容器中地图文件夹目录结构:000 是世界村地图文件夹,156 是中国地图文件夹。
首先执行 linux 命令,从 dataease 容器中下载出地图文件夹,
docker cp dataease:/opt/dataease2.0/data/map /tmp
上图所示,156 文件夹中包含中国各省级行政区以及地级行政区等区域的 json 文件。格式化之后,查看其中 156.json 文件,如果我们只想显示【江西省】和【湖南省】地图,那么只需要在下图 156.json 中保留江西省和湖南省两个 features 中的子集,删除其他行政区子集即可,并将文件名称修改为其他名字(示例为 177.json),保存时注意压缩 json 并使用编码格式 utf-8。
在系统设置->系统参数->地图设置→地理信息的功能区域上传地图文件,实际上传的 json 文件存在容器的 /opt/dataease2.0/data/geo/ 位置
之后在地图地区中选择上传的区域名称
如果希望对自定义的地图下钻到地级市,那么需要将 dataease 容器中156 文件夹对应的江西省地级市地图复制一份到 /opt/dataease2.0/data/map/geo/,如果 geo 文件夹不存在可以创建一个,并且重命名为前缀 geo 文件,例如:geo360000.json,对其他省份下钻也是同理。
最后到网页重新刷新页面,在钻取维度中拖入需要的钻取字段,完成自定义范围,如下图所示:
2.自定义乡镇地图范围可下钻
示例一:
自定义乡镇地图(乡镇区域分割线需要下钻时才会展示)
咸丰县的地图 json 是从容器中 /opt/dataease2.0/data/map/156 目录下取出的 156422826.json 步骤同上一节。注意改一下 childremNum 为 11,表示其下属乡镇有 11 个,修改完之后如下图,我这里是另外点击加号上传到在中国目录下。
在咸丰县下添加对应的乡镇,点击加号上传乡镇的 json 文件,需要注意各乡镇的 json 格式,如下图中展示的,清坪镇、丁寨乡等等。
示例:清坪镇的 json 格式:
另外如下图,往 dataease 容器文件夹中,上传 geo422826.json(里面需要包含咸丰县各个乡镇的信息),注意命名前缀 geo 是固定的。
docker cp /tmp/geo422826.json dataease:/opt/dataease2.0/data/map/geo/
刷新网页,使用数据可以进行下钻,效果如下,即可展示到乡镇区域的分割线
注意:
dataease 容器中 /opt/dataease2.0/data/map/geo 文件未做持久化,重启后会丢失,只需要重新上传该文件即可
进入容器:docker exec -it dataease /bin/sh
容器中创建文件夹:mkdir /opt/dataease2.0/data/map/geo
服务器执行拷贝命令:docker cp /tmp/geo422826.json dataease:/opt/dataease2.0/data/map/geo/
示例二:
自定义非行政区域
下载 BigemapGIS Designer,下载地址:http://www.bigemap.com/reader/download/ ,选择全能版本即可。
在软件中描点绘制所需要的地图范围并下载文件,导出的 .kml 文件会在下载文件夹中找到;之后打开地图工具: https://geojson.io/,导入 .kml 文件右侧会生成对应的 json 内容,该内容可以贴入到地图文件。
3.设置其他地图文件
参考官方在线文档自定义其他国家地图文件