# 数据规格
开发者在使用图层时,一般会涉及到 2 种数据格式:
- 矢量数据:点,线,面类型的数据,可以是格式简单的SimpleFeature形式,或者是属性全面的GeoJSON形式,
- 栅格数据:图像类的数据,例如卫星影像,气象云图等。
以上两种形式的数据均可以以链接的形式提供。
# 矢量数据
地图中常见的点,线,面等数据均为矢量数据。热力图的原始数据本质上也是矢量点数据。
# URL string
链接以一个string
的形式传入,SDK会去请求链接并获取实际的数据,如果以一个链接作为数据源创建图层,当调用 fitView
,flyTo
等方法时,这些方法会等待数据请求完成后再实际执行。
链接返回的结果应当遵循下述的SimpleFeature,SimpleFeature 数组,SimpleFeatureCollection,GeoJSON的定义。
# 示例
var massMarkerLayer = new aimap.MassMarkerLayer({
map,
data: 'path-to-a-geojson-spec-data/data.geojson',
style: {
'circle-color': 'red',
'circle-size': 1,
}
});
2
3
4
5
6
7
8
# SimpleFeature
SimpleFeature
对象中,coordinates
为必填字段,用经纬度数组表示。
SimpleFeature
结构简单,适合对GeoJSON
格式不熟悉时使用,但是在内容丰富度上不如GeoJSON
。当输入的数据类型是简单的点,线,面时,可以使用本类型。
# 示例
var massMarkerLayer = new aimap.MassMarkerLayer({
map,
data: {
id: 1,
name: '市中心',
icon: 'city-center',
coordinates: [121.613946, 31.205494]
},
style: {
'icon-image': ['get', 'icon'],
'icon-size': 0.2,
}
});
2
3
4
5
6
7
8
9
10
11
12
13
# SimpleFeature 数组
SimpleFeature 数组
是由SimpleFeature
组成的数组。
# 示例
var massMarkerLayer = new aimap.MassMarkerLayer({
map,
data: [{
id: 1,
name: 'icon-1',
icon: 'company-yellow',
coordinates: [121.613946, 31.205494]
}, {
id: 2,
name: 'icon-2',
icon: 'company-green',
coordinates: [121.612846, 31.205494]
}],
style: {
'icon-image': ['get', 'icon'],
'icon-size': 0.2,
}
});
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# SimpleFeatureCollection
SimpleFeatureCollection
是一个以type
,features
为键的对象,其中type
是SimpleFeatureCollection
字符串,features
是SimpleFeature 数组
。
# 示例
var massMarkerLayer = new aimap.MassMarkerLayer({
map,
data: {
type: 'SimpleFeatureCollection',
features: [{
id: 1,
name: 'gif-1',
icon: 'company-yellow',
coordinates: [121.613946, 31.205494]
}, {
id: 2,
name: 'gif-2',
icon: 'company-green',
coordinates: [121.612846, 31.205494]
}, {
id: 3,
name: 'icon-3',
icon: 'company-red',
coordinates: [121.611746, 31.205494]
}, {
id: 4,
name: 'icon-4',
icon: 'company-blue',
coordinates: [121.610646, 31.205494]
}]
},
style: {
'icon-image': ['get', 'icon'],
'icon-size': 0.2,
}
});
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# GeoJSON
GeoJSON
是一种基于 JSON
的地理空间数据交换格式,一个GeoJSON
对象可以是Geometry
, Feature
或者FeatureCollection
,推荐作为前后端之间传输矢量数据的格式。
GeoJSON 全部详细规范可参考网站:
https://www.oschina.net/translate/geojson-spec?cmp (opens new window)
# 基本几何图形
类型 | 例子 | GeoJSON 的 geometry 部分 |
---|---|---|
点 | 1 2 3 4 | |
线段 | 1 2 3 4 5 6 | |
多边形 | 1 2 3 4 5 6 |
# 复杂几何图形
类型 | 例子 | GeoJSON 的 geometry 部分 |
---|---|---|
点 | 1 2 3 4 5 6 | |
线段 | 1 2 3 4 5 6 7 | |
多边形 | 1 2 3 4 5 6 7 8 9 10 11 |
# 示例
var polygon = new aimap.Polygon({
data: {
"type": "FeatureCollection",
"features": [{
"type": "Feature",
"properties": {},
"geometry": {
"type": "Polygon",
"coordinates": [[
[121.49696588516234,31.238306799254318],
[121.49741649627684,31.237004175280727],
[121.49909019470215, 31.237187644532803],
[121.49889707565308, 31.238380185985935],
[121.49816751480103, 31.239279168821465],
[121.49696588516234, 31.238306799254318]
]]
}
}]
},
style: {
'fill-color': '#0000ff'
},
map
});
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 栅格数据
栅格数据可以简单的理解为图片,例如气象场景中的云图,卫星影像等。
# URL string
链接以一个string
的形式传入,SDK会去请求链接并获取实际的数据。某些情况下,栅格数据会在链接中留下诸如{x}
,{y}
,{z}
,{bbox}
等占位符,地图 SDK 在发起请求前会替换其中的占位符,以获得对应坐标位置的栅格数据。
# Base64 编码的 string
如果栅格数据已经存在于程序的运行环境中,开发者可以将栅格数据编码成 Base64
的形式传入。
# 示例
var wmsLayer = new aimap.WMSLayer({
map,
data: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAANSURBVBhXY2BgYGAAAAAFAAGKM+MAAAAAAElFTkSuQmCC",
style: {
'raster-opacity': 0.8
},
});
2
3
4
5
6
7