地图数据集 是我们提供给 Highmaps 用户的一系列地图数据集合,可以很方便创建各国,地区及不同级别的地图。对于其他地图软件,也可以利用我们提供的 SVG 或 Geojson 进行修改或生产地图数据。
使用协议
Highmaps 地图数据集 的使用协议和数据来源有关。Admin0 (国家)数据和 Admin1(中国的省份,美国的洲,德国的联邦等)的数据来源是 Natural Earth,其数据属于 公有领域。对于 Admin2(中国的市级别)数据,我们只制作了个别国家的数据,这些数据源当地国家发布的数据,我们将具体的数据来源及授权协议放置在地图数据中的 copyright
字段,并会以简短的形式展示在 Highmaps 的版本标签中。
中国地图数据
中国地图由简数科技提供,数据是基于 高德地图 API 及 Highmaps 生成,目前免费提供省级、市级地图数据,县级数据有偿提供,详细请参考 地图数据 及 例子。
如何使用地图数据集
地图数据集里的每个数据都提供在线实例、SVG 文件、JSON文件、JS文件,其中 SVG 文件是空白的地图区块,用户可以基于他进行修改并转换成需要的数据格式;JSON 文件和 JS 文件内容基本相同,区别是 JS 文件将地图数据定义在 Highcharts.map
对象中。
地图数据的使用也很简单,只需要获取对应的数据并赋值给 series.mapData
或 chart.map
即可,下面以中国地图为例来说明:
1、使用 js 文件
1)在 HTML 中引入地图数据文件
<script src="https://data.jianshukeji.com/geochina/china.js"></script>
2)将地图数据赋值给 mapData
series: [{
mapData: Highcharts.maps['cn/china']
}]
或
chart: {
map: 'cn/china' // 或 Highcharts.maps['cn/china']
}
2、使用 JSON 文件
$.getJSON('https://data.jianshukeji.com/jsonp?filename=geochina/china.json&callback=?', function(mapData) {
// ...
series: [{
mapData: mapData
}]
});
更多详情请参考 开始使用 Highmaps
地图数据属性
地图数据属性包含当前区块的详细信息,这在进行数据关联时非常有用,这些属性可以通过 point.properties
对象来获取(在线实例),下面是各个属性的详细说明
1、中国地图数据
来自地图数据的数据包含的属性及相关信息如下图及表格所示:
属性名 | 示例值 | 含义 |
---|---|---|
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 一般表示的是按照约定的格式地图名字,可以用于地图的动态下钻(请参考实例:地图下钻),该属性的命名规则是:
< 唯一的 admin0 id>-<唯一的 admin1 id>-< 唯一的 admin2 id>- ...
除了上面提的所有属性外,所有地图区块(数据点)都有一个 id
属性,不同于上面的属性是存储在 point.properties
中,id 属性是直接存储在数据点中,即 point.id
。每个点的 id 值是在当前地图是唯一的,值和 hc-key
一样,只不过是以大写字母,点号分隔的,下面是 id
属性和 hc-key
的示例:
{
"type": "Feature",
"id": "AD.6406", // id 是直接存储在数据点上的,其值和 hc-key 一样,形式是大写字母,分隔符是 .
"properties": {
"hc-group": "admin1",
"hc-middle-x": 0.43,
"hc-middle-y": 0.36,
"hc-key": "ad-6406"
}
}
除了上述属性外,某些地图数据还有可能包含其他属性,了解更多详情请自行用文本编辑器打开我们提供的地图数据查阅。