mirror of https://gitee.com/antv-l7/antv-l7
feat(source): add join transfroms
This commit is contained in:
parent
27a09a7a7a
commit
ec3cae2f5f
|
@ -195,20 +195,20 @@ export default class PixelPickingPass<
|
||||||
feature: unknown;
|
feature: unknown;
|
||||||
}) {
|
}) {
|
||||||
const { onHover, onClick } = this.layer.getLayerConfig();
|
const { onHover, onClick } = this.layer.getLayerConfig();
|
||||||
if (onHover) {
|
// if (onHover) {
|
||||||
onHover({
|
// onHover({
|
||||||
x,
|
// x,
|
||||||
y,
|
// y,
|
||||||
feature,
|
// feature,
|
||||||
});
|
// });
|
||||||
}
|
// }
|
||||||
if (onClick) {
|
// if (onClick) {
|
||||||
onClick({
|
// onClick({
|
||||||
x,
|
// x,
|
||||||
y,
|
// y,
|
||||||
feature,
|
// feature,
|
||||||
});
|
// });
|
||||||
}
|
// }
|
||||||
this.layer.emit(type, {
|
this.layer.emit(type, {
|
||||||
x,
|
x,
|
||||||
y,
|
y,
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
"main": "lib/index.js",
|
"main": "lib/index.js",
|
||||||
"module": "es/index.js",
|
"module": "es/index.js",
|
||||||
"types": "es/index.d.ts",
|
"types": "es/index.d.ts",
|
||||||
|
"unpkg": "dist/l7.js",
|
||||||
"sideEffects": true,
|
"sideEffects": true,
|
||||||
"files": [
|
"files": [
|
||||||
"dist",
|
"dist",
|
||||||
|
|
|
@ -9,6 +9,7 @@ import { cluster } from './transform/cluster';
|
||||||
import { filter } from './transform/filter';
|
import { filter } from './transform/filter';
|
||||||
import { aggregatorToGrid } from './transform/grid';
|
import { aggregatorToGrid } from './transform/grid';
|
||||||
import { pointToHexbin } from './transform/hexagon';
|
import { pointToHexbin } from './transform/hexagon';
|
||||||
|
import { join } from './transform/join';
|
||||||
import { map } from './transform/map';
|
import { map } from './transform/map';
|
||||||
export default Source;
|
export default Source;
|
||||||
registerParser('geojson', geojson);
|
registerParser('geojson', geojson);
|
||||||
|
@ -18,6 +19,7 @@ registerParser('json', json);
|
||||||
registerParser('raster', raster);
|
registerParser('raster', raster);
|
||||||
registerTransform('cluster', cluster);
|
registerTransform('cluster', cluster);
|
||||||
registerTransform('filter', filter);
|
registerTransform('filter', filter);
|
||||||
|
registerTransform('join', join);
|
||||||
registerTransform('map', map);
|
registerTransform('map', map);
|
||||||
registerTransform('grid', aggregatorToGrid);
|
registerTransform('grid', aggregatorToGrid);
|
||||||
registerTransform('hexagon', pointToHexbin);
|
registerTransform('hexagon', pointToHexbin);
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
import { IParseDataItem, IParserData } from '@antv/l7-core';
|
||||||
|
|
||||||
|
interface IJoinOption {
|
||||||
|
field: 'string';
|
||||||
|
data: any[];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param data
|
||||||
|
* @param options
|
||||||
|
*/
|
||||||
|
export function join(geoData: IParserData, options: { [key: string]: any }) {
|
||||||
|
const { field, data } = options;
|
||||||
|
const dataObj: { [key: string]: any } = {};
|
||||||
|
data.forEach((element: { [key: string]: any }) => {
|
||||||
|
dataObj[element.field] = element;
|
||||||
|
});
|
||||||
|
geoData.dataArray = data.dataArray.map((item: IParseDataItem) => {
|
||||||
|
const joinName = item[field];
|
||||||
|
return {
|
||||||
|
...dataObj[joinName],
|
||||||
|
...item,
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
Loading…
Reference in New Issue