Echarts实战案例代码(12):Highcharts与Echarts地图geoJSON的比较及使用方法

在数据可视化中,需要做地图信息可视化时,必须用到geoJSON。目前支持地图数据可视化的JS库比较丰富,现以Highcharts与Echarts两个图表库为例,对比下geoJSON的区别!

geoJSON是什么?

geojson是用json的语法表达和存储地理数据,可以说是json的子集,其格式如下:

{
  "type": "FeatureCollection",
  "features": [
        {"type":"Feature",
        "properties":{},
        "geometry":{
            "type":"Point",
            "coordinates":[105.380859375,31.57853542647338]
            }
        }
    ]
}

Highcharts与Echarts地图geoJSON区别

项目 Highcharts Echarts
版权 使用时需购买相应的Highmaps 软件授权
许可 需要获取源数据的许可且必须保证在图表中或页面中保留版权信息
等级 Admin0,Admin1,Admin2 标识不同的授权限制等级

在实际的使用过程中,

  1. Echarts地图geoJSON代码结构如下格式,没有更多的属性和字段,不能直接应用于Highcharts的Highmaps中;
  2. Highmaps的geoJSON代码结构更复杂,内容信息更丰富,但是可以直接应用于Echarts中。

Highcharts地图数据属性

  • 国内地图格式:
 "features": [
    {
      "type": "Feature",
      "properties": {
        "adcode": 440100,
        "name": "广州",
        "center": [
          113.280637,
          23.125178
        ],
        "childrenNum": 11,
        "level": "city",
        "subFeatureIndex": 0,
        "fullname": "广州市",
        "filename": "guangzhou",
        "parent": "广东省",
        "areacode": 440100,
        "longitude": 113.280637,
        "latitude": 23.125178,
        "cp": [
          6177,
          2558
        ],
        "drilldown": "guangdong/guangzhou"
      },
属性名 示例值 含义
adcode/areacode 110000 地区编码,同 国家统计局发布的行政规划代码
name 北京,上海 地区名字,为简写形式,去掉了诸如省、市、县等
center [116.405285, 39.904989] 中心点经纬度
level province 地区级别,有 province(省、直辖市)、city(市)、district(区、县)
fullname 北京市 全称
filename beijing 当前数据文件文件名
parent 中国 父级名称
longitude / latitude 116.405285 中心点经纬度
cp [6763, 6381] 中心点坐标值
drilldown beijing,anhui/hefei 下一级数据文件路径
  • 国外地图格式:
    Echarts格式基本与国内相同,Highcharts的geoJSON更复杂。
"features": [
    {
      "type": "Feature",
      "id": "AU.NT",
      "properties": {
        "hc-group": "admin1",
        "hc-middle-x": 0.48,
        "hc-middle-y": 0.58,
        "hc-key": "au-nt",
        "hc-a2": "NT",
        "labelrank": "2",
        "hasc": "AU.NT",
        "alt-name": null,
        "woe-id": "2344701",
        "subregion": null,
        "fips": "AS03",
        "postal-code": "NT",
        "name": "Northern Territory",
        "country": "Australia",
        "type-en": "Territory",
        "region": null,
        "longitude": "133.78",
        "woe-name": "Northern Territory",
        "latitude": "-20.1026",
        "woe-label": "Northern Territory, AU, Australia",
        "type": "Territory"
      },
属性名 示例值 含义
hc-group admin1, admin2, special 地图数据的行政级别。 admin0 为国家级别;admin1 是国家下面的第一级行政规划,例如中国的省,美国的洲等;admin2 为第二级,例如中国的市,美国的县;special 表示一些特殊的分区,并不是真正意义上的行政规划,例如国会选区
hc-middle-x 0.65 数据标签水平偏移值,表示相对该区块的宽度值,0 表示左对齐,1 为右对齐
hc-middle-y 0.65 数据标签竖直偏移值,表示相对该区块的高度值,0 表示顶部对齐,1 为底部对齐
hc-key us, us-ma-027, gb-hi 该地区的唯一标识字符串,该值在所有地图中保持唯一并和数据文件的命名一致
hc-a2 KV,PA,BB 2 个字母表示的地区名字,大部分和国际邮政代码(postal code/ISO code)一致。该属性不能保证在所有地图中是唯一的
name Fremont, Brandenburg, Saipan 地图区域的名字
iso-a2 US, MC, LV ISO 标准的 2 位国家名字
iso-a3 USA, MCO, LVA ISO 标准的 3 位国家名字
continent Asia, North America 地图所在的大洲
country-abbrev Pan., C.R. 国家名字的缩写形式
region Midwest, South, Highlands and Islands 地图所在的区域
subregion Southern Europe, Highland 地区所在的二级区域
fips 120, GM10, US05, 56031 FIPS 编码
hasc DE.BB, US.AR HASC 编码
postal-code AK, NY, TI 邮政编码
type State, Emirate, Fylke, Land 地图类型

geojson.io的支持

Highcharts 导入后,不能正常显示区域;
Echarts 可正常显示。

如何获取geoJSON

Echarts的国、省、市、区县,网络资源丰富,CSDN下载中心也有;乡镇边界基本是需要付费购买的,直接手绘的精确度不够,也费时费力。
Highcharts国内geojson,省市文件可以直接调用,县级数据需要购买。

Done!

©️2020 CSDN 皮肤主题: 精致技术 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值