# 数据规格

开发者在使用图层时,一般会涉及到 2 种数据格式:

  • 矢量数据:点,线,面类型的数据,可以是格式简单的SimpleFeature形式,或者是属性全面的GeoJSON形式,
  • 栅格数据:图像类的数据,例如卫星影像,气象云图等。

以上两种形式的数据均可以以链接的形式提供。

# 矢量数据

地图中常见的点,线,面等数据均为矢量数据。热力图的原始数据本质上也是矢量点数据。

# URL string

链接以一个string的形式传入,SDK会去请求链接并获取实际的数据,如果以一个链接作为数据源创建图层,当调用 fitViewflyTo 等方法时,这些方法会等待数据请求完成后再实际执行。

链接返回的结果应当遵循下述的SimpleFeatureSimpleFeature 数组SimpleFeatureCollectionGeoJSON的定义。

# 示例

var massMarkerLayer = new aimap.MassMarkerLayer({
    map,
    data: 'path-to-a-geojson-spec-data/data.geojson',
    style: {
        'circle-color': 'red',
        'circle-size': 1,
    }
});
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,
    }
});
1
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,
    }
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# SimpleFeatureCollection

SimpleFeatureCollection是一个以typefeatures为键的对象,其中typeSimpleFeatureCollection字符串,featuresSimpleFeature 数组

# 示例

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,
    }
});
1
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 的 geometry 部分
{
    "type": "Point",
    "coordinates": [30, 10]
}
1
2
3
4
线段
{
    "type": "LineString",
    "coordinates": [
        [30, 10], [10, 30], [40, 40]
    ]
}
1
2
3
4
5
6
多边形
{
    "type": "Polygon",
    "coordinates": [
        [[30, 10], [40, 40], [20, 40], [10, 20], [30, 10]]
    ]
}
1
2
3
4
5
6

# 复杂几何图形

类型 例子 GeoJSON 的 geometry 部分
{
    "type": "MultiPoint",
    "coordinates": [
        [10, 40], [40, 30], [20, 20], [30, 10]
    ]
}
1
2
3
4
5
6
线段
{
    "type": "MultiLineString",
    "coordinates": [
        [[10, 10], [20, 20], [10, 40]],
        [[40, 40], [30, 30], [40, 20], [30, 10]]
    ]
}
1
2
3
4
5
6
7
多边形
{
    "type": "MultiPolygon",
    "coordinates": [
        [
            [[30, 20], [45, 40], [10, 40], [30, 20]]
        ],
        [
            [[15, 5], [40, 10], [10, 20], [5, 10], [15, 5]]
        ]
    ]
}
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
});
1
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
    },
});
1
2
3
4
5
6
7
最后更新于: 7/22/2022, 5:39:57 PM