地图数据集 是我们提供给 Highmaps 用户的一系列地图数据集合,可以很方便创建各国,地区及不同级别的地图。对于其他地图软件,也可以利用我们提供的 SVG 或 Geojson 进行修改或生产地图数据。

使用协议

Highmaps 地图数据集 的使用协议和数据来源有关。Admin0 (国家)数据和 Admin1(中国的省份,美国的洲,德国的联邦等)的数据来源是 Natural Earth,其数据属于 公有领域。对于 Admin2(中国的市级别)数据,我们只制作了个别国家的数据,这些数据源当地国家发布的数据,我们将具体的数据来源及授权协议放置在地图数据中的 copyright 字段,并会以简短的形式展示在 Highmaps 的版本标签中。

中国地图数据

中国地图由简数科技提供,数据是基于 高德地图 API 及 Highmaps 生成,目前免费提供省级、市级地图数据,县级数据有偿提供,详细请参考 地图数据例子

如何使用地图数据集

地图数据集里的每个数据都提供在线实例、SVG 文件、JSON文件、JS文件,其中 SVG 文件是空白的地图区块,用户可以基于他进行修改并转换成需要的数据格式;JSON 文件和 JS 文件内容基本相同,区别是 JS 文件将地图数据定义在 Highcharts.map 对象中。

地图数据的使用也很简单,只需要获取对应的数据并赋值给 series.mapDatachart.map 即可,下面以中国地图为例来说明:

1、使用 js 文件

1)在 HTML 中引入地图数据文件

  1. <script src="https://data.jianshukeji.com/geochina/china.js"></script>

2)将地图数据赋值给 mapData

  1. series: [{
  2. mapData: Highcharts.maps['cn/china']
  3. }]

  1. chart: {
  2. map: 'cn/china' // 或 Highcharts.maps['cn/china']
  3. }

2、使用 JSON 文件

  1. $.getJSON('https://data.jianshukeji.com/jsonp?filename=geochina/china.json&callback=?', function(mapData) {
  2. // ...
  3. series: [{
  4. mapData: mapData
  5. }]
  6. });

更多详情请参考 开始使用 Highmaps

地图数据属性

地图数据属性包含当前区块的详细信息,这在进行数据关联时非常有用,这些属性可以通过 point.properties 对象来获取(在线实例),下面是各个属性的详细说明

1、中国地图数据

来自地图数据的数据包含的属性及相关信息如下图及表格所示:

GeoJSON 中的属性

属性名 示例值 含义
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 下一级数据文件路径

2、地图数据集数据

来自地图数据集的数据包含的属性及相关信息如下表所示:

属性名 示例值 含义
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 地图类型

hc-key 一般表示的是按照约定的格式地图名字,可以用于地图的动态下钻(请参考实例:地图下钻),该属性的命名规则是:

  1. < 唯一的 admin0 id>-<唯一的 admin1 id>-< 唯一的 admin2 id>- ...

除了上面提的所有属性外,所有地图区块(数据点)都有一个 id 属性,不同于上面的属性是存储在 point.properties 中,id 属性是直接存储在数据点中,即 point.id。每个点的 id 值是在当前地图是唯一的,值和 hc-key 一样,只不过是以大写字母,点号分隔的,下面是 id 属性和 hc-key 的示例:

  1. {
  2. "type": "Feature",
  3. "id": "AD.6406", // id 是直接存储在数据点上的,其值和 hc-key 一样,形式是大写字母,分隔符是 .
  4. "properties": {
  5. "hc-group": "admin1",
  6. "hc-middle-x": 0.43,
  7. "hc-middle-y": 0.36,
  8. "hc-key": "ad-6406"
  9. }
  10. }

除了上述属性外,某些地图数据还有可能包含其他属性,了解更多详情请自行用文本编辑器打开我们提供的地图数据查阅。

原文: https://www.hcharts.cn/docs/mapdata