mirror of https://gitee.com/antv-l7/antv-l7
4.6 KiB
4.6 KiB
title | order |
---|---|
Source | 0 |
概述
source 地理数据处理模块,主要包含数据解析(parser),和数据处理(transform);
parser:
不同数据类型处理成统一数据格式。矢量数据包括 GeoJON, CSV,Json 等不同数据格式,栅格数据,包括 Raster,Image 数据。将来还会支持瓦片格式数据。
transform:
数据转换,数据统计,网格布局,数据聚合等数据操作。
API
parser
空间数据分矢量数据和栅格数据两大类
-
矢量数据 支持 csv,geojson,json 三种数据类型
-
栅格数据 支持 image,Raster
geojson
geojson 数据为默认数据格式,可以
不需要设置 parser 参数
layer.source(data);
json
json 不是标准的地理数据结构,因此需要设置对应的经纬度字段
点数据
x: 经度字段
y: 纬度字段
const data = [
{
lng: 112.345,
lat: 30.455,
value: 10,
},
{
lng: 114.345,
lat: 31.455,
value: 10,
},
];
layer.source(data, {
parser: {
type: 'json',
x: 'lng',
y: 'lat',
},
});
线段数据
type: json
这里的直线表示有两个点组成的线段,主要绘制弧线的时候比较常用,只需指定线段的起始点坐标
x:经度字段 起点经度 y:纬度字段 起点纬度 x1:经度字段 终点经度 y1:纬度字段 终点纬度
const data = [{
lng1:112.345,
lat1:30.455,
lng2:112.345,
lat2:30.455,
value: 10
},
{
lng1:114.345,
lat1:31.455,
lng2:112.345,
lat2:30.455,
value: 10
}
];
layer.source(
data,
{
parser:{
type:'json',
x:'lng1',
y:'lat1' ,
x1:'lng1',
y1:'lat2' ,
}
}
})
面数据
需要指定 coordinates 字段, coordinates 据格式
注意面数据 coord 是三层数据结构
[
{
type: 'Polygon',
geometryCoord: [
[
[115.1806640625, 30.637912028341123],
[114.9609375, 29.152161283318915],
[117.79541015625001, 27.430289738862594],
[118.740234375, 29.420460341013133],
[117.46582031249999, 31.50362930577303],
[115.1806640625, 30.637912028341123],
],
],
},
];
layer.source(data, {
parser: {
type: 'json',
coordinates: 'geometryCoord',
},
});
csv
点,线数据配置项同 json 数据类型
layer.source(data, {
parser: {
type: 'csv',
x: 'lng1',
y: 'lat1',
x1: 'lng1',
y1: 'lat2',
},
});
栅格数据类型**
image
根据图片的经纬度范围,将图片添加到地图上。 配置项
- type: image
- extent: 图像的经纬度范围 []
layer.source(
'https://gw.alipayobjects.com/zos/rmsportal/FnHFeFklTzKDdUESRNDv.jpg',
{
parser: {
type: 'image',
extent: [121.168, 30.2828, 121.384, 30.4219],
},
},
);
raster
栅格数据类型,主要表示遥感数据类型 data 栅格数据的二维矩阵数据 parser 配置项
- type raster
- width 数据宽度二维矩阵 columns
- height 数据高度
- min 数据最大值
- max 数据最小值
- extent 经纬度范围
source(values, {
parser: {
type: 'raster',
width: n,
height: m,
min: 0,
max: 8000,
extent: [73.482190241, 3.82501784112, 135.106618732, 57.6300459963],
},
});
transforms
目前支持三种数据处理方法 map,grid,hexagon transform 配置项
- type 数据处理类型
- tansform cfg 数据处理配置项
map
数据处理,支持自定义 callback 函数
- callback:function 回调函数
layer.source(data, {
transforms: [
{
type: 'map',
callback: function(item) {
const [x, y] = item.coordinates;
item.lat = item.lat * 1;
item.lng = item.lng * 1;
item.v = item.v * 1;
item.coordinates = [x * 1, y * 1];
return item;
},
},
],
});
grid
生成方格网布局,根据数据字段统计,主要在网格热力图中使用
- type: 'grid',
- size: 网格半径
- field: 数据统计字段
- method:聚合方法 count,max,min,sum,mean5 个统计维度
layer.source(data, {
transforms: [
{
type: 'grid',
size: 15000,
field: 'v',
method: 'sum',
},
],
});
hexagon
生成六边形网格布局,根据数据字段统计
- type: 'hexagon',
- size: 网格半径
- field: 数据统计字段
- method:聚合方法 count,max,min,sum,mean5 个统计维度