地图数据集

优质
小牛编辑
126浏览
2023-12-01

地图数据集 是我们提供给 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 中引入地图数据文件

<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、中国地图数据

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

GeoJSON 中的属性
属性名示例值含义
adcode/areacode110000地区编码,同 国家统计局发布的行政规划代码
name北京,上海地区名字,为简写形式,去掉了诸如省、市、县等
center[116.405285, 39.904989]中心点经纬度
levelprovince地区级别,有 province(省、直辖市)、city(市)、district(区、县)
fullname北京市全称
filenamebeijing当前数据文件文件名
parent中国父级名称
longitude / latitude116.405285中心点经纬度
cp[6763, 6381]中心点坐标值
drilldownbeijing,anhui/hefei下一级数据文件路径

2、地图数据集数据

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

属性名示例值含义
hc-groupadmin1, admin2, special地图数据的行政级别。admin0 为国家级别;admin1 是国家下面的第一级行政规划,例如中国的省,美国的洲等;admin2 为第二级,例如中国的市,美国的县;special 表示一些特殊的分区,并不是真正意义上的行政规划,例如国会选区
hc-middle-x0.65数据标签水平偏移值,表示相对该区块的宽度值,0 表示左对齐,1 为右对齐
hc-middle-y0.65数据标签竖直偏移值,表示相对该区块的高度值,0 表示顶部对齐,1 为底部对齐
hc-keyus, us-ma-027, gb-hi该地区的唯一标识字符串,该值在所有地图中保持唯一并和数据文件的命名一致
hc-a2KV,PA,BB2 个字母表示的地区名字,大部分和国际邮政代码(postal code/ISO code)一致。该属性不能保证在所有地图中是唯一的
nameFremont, Brandenburg, Saipan地图区域的名字
iso-a2US, MC, LVISO 标准的 2 位国家名字
iso-a3USA, MCO, LVAISO 标准的 3 位国家名字
continentAsia, North America地图所在的大洲
country-abbrevPan., C.R.国家名字的缩写形式
regionMidwest, South, Highlands and Islands地图所在的区域
subregionSouthern Europe, Highland地区所在的二级区域
fips120, GM10, US05, 56031FIPS 编码
hascDE.BB, US.ARHASC 编码
postal-codeAK, NY, TI邮政编码
typeState, 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"
     }
 }

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