@antv/l7-layers 2.5.41 → 2.5.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/es/core/BaseLayer.js +5 -3
  2. package/es/core/BaseLayer.js.map +1 -1
  3. package/es/heatmap/models/heatmap.js +1 -1
  4. package/es/plugins/DataMappingPlugin.js +1 -1
  5. package/es/plugins/FeatureScalePlugin.js.map +1 -1
  6. package/es/plugins/LayerAnimateStylePlugin.js +1 -1
  7. package/es/plugins/LayerStylePlugin.js.map +1 -1
  8. package/es/plugins/LightingPlugin.js +4 -2
  9. package/es/plugins/LightingPlugin.js.map +1 -1
  10. package/es/plugins/ShaderUniformPlugin.js +1 -1
  11. package/es/plugins/ShaderUniformPlugin.js.map +1 -1
  12. package/es/plugins/UpdateStyleAttributePlugin.js +6 -6
  13. package/es/plugins/UpdateStyleAttributePlugin.js.map +1 -1
  14. package/es/point/models/text.js +1 -1
  15. package/es/point/models/text.js.map +1 -1
  16. package/es/raster/raster.js +1 -1
  17. package/lib/core/BaseLayer.js +6 -3
  18. package/lib/core/BaseLayer.js.map +1 -1
  19. package/lib/core/shape/Path.js +5 -4
  20. package/lib/core/shape/Path.js.map +1 -1
  21. package/lib/core/shape/extrude.js +1 -1
  22. package/lib/core/triangulation.js +13 -9
  23. package/lib/core/triangulation.js.map +1 -1
  24. package/lib/earth/utils.js +1 -1
  25. package/lib/heatmap/models/heatmap.js +1 -1
  26. package/lib/index.js +8 -8
  27. package/lib/plugins/DataMappingPlugin.js +1 -1
  28. package/lib/plugins/DataSourcePlugin.js +5 -1
  29. package/lib/plugins/DataSourcePlugin.js.map +1 -1
  30. package/lib/plugins/FeatureScalePlugin.js +5 -1
  31. package/lib/plugins/FeatureScalePlugin.js.map +1 -1
  32. package/lib/plugins/LayerAnimateStylePlugin.js +1 -1
  33. package/lib/plugins/LayerStylePlugin.js.map +1 -1
  34. package/lib/plugins/LightingPlugin.js +5 -3
  35. package/lib/plugins/LightingPlugin.js.map +1 -1
  36. package/lib/plugins/MultiPassRendererPlugin.js +1 -1
  37. package/lib/plugins/ShaderUniformPlugin.js +1 -1
  38. package/lib/plugins/ShaderUniformPlugin.js.map +1 -1
  39. package/lib/plugins/UpdateStyleAttributePlugin.js +6 -6
  40. package/lib/plugins/UpdateStyleAttributePlugin.js.map +1 -1
  41. package/lib/point/models/text.js +1 -1
  42. package/lib/point/models/text.js.map +1 -1
  43. package/lib/point/shape/Path.js +5 -4
  44. package/lib/point/shape/Path.js.map +1 -1
  45. package/lib/raster/raster.js +1 -1
  46. package/lib/utils/dataMappingStyle.js +1 -1
  47. package/lib/utils/extrude_polyline.js +1 -1
  48. package/lib/utils/polylineNormal.js +1 -1
  49. package/lib/utils/symbol-layout.js +1 -1
  50. package/package.json +5 -5
@@ -1,25 +1,25 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
-
5
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
4
 
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
- exports.PointFillTriangulation = PointFillTriangulation;
11
10
  exports.GlobelPointFillTriangulation = GlobelPointFillTriangulation;
11
+ exports.HeatmapGridTriangulation = HeatmapGridTriangulation;
12
+ exports.HeatmapTriangulation = HeatmapTriangulation;
13
+ exports.LineArcTriangulation = LineArcTriangulation;
14
+ exports.LineTriangulation = LineTriangulation;
12
15
  exports.PointExtrudeTriangulation = PointExtrudeTriangulation;
16
+ exports.PointFillTriangulation = PointFillTriangulation;
13
17
  exports.PointImageTriangulation = PointImageTriangulation;
14
- exports.LineTriangulation = LineTriangulation;
15
- exports.polygonTriangulation = polygonTriangulation;
16
18
  exports.PolygonExtrudeTriangulation = PolygonExtrudeTriangulation;
17
- exports.HeatmapGridTriangulation = HeatmapGridTriangulation;
18
19
  exports.RasterImageTriangulation = RasterImageTriangulation;
19
- exports.LineArcTriangulation = LineArcTriangulation;
20
- exports.HeatmapTriangulation = HeatmapTriangulation;
21
- exports.earthTriangulation = earthTriangulation;
22
20
  exports.earthOuterTriangulation = earthOuterTriangulation;
21
+ exports.earthTriangulation = earthTriangulation;
22
+ exports.polygonTriangulation = polygonTriangulation;
23
23
 
24
24
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
25
25
 
@@ -41,6 +41,10 @@ var _extrude = _interopRequireWildcard(require("./shape/extrude"));
41
41
 
42
42
  var _Path = require("./shape/Path");
43
43
 
44
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
45
+
46
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
47
+
44
48
  var GeometryCache = {};
45
49
 
46
50
  function PointFillTriangulation(feature) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/triangulation.ts"],"names":["GeometryCache","PointFillTriangulation","feature","coordinates","vertices","indices","size","length","GlobelPointFillTriangulation","xyz","PointExtrudeTriangulation","shape","getGeometry","positions","index","normals","PointImageTriangulation","LineTriangulation","originCoordinates","version","line","ExtrudePolyline","dash","join","path1","Array","isArray","path2","i","item1","item2","extrude_gaode2","path","forEach","item","extrude","linebuffer","complex","polygonTriangulation","flattengeo","earcut","flatten","dimensions","holes","PolygonExtrudeTriangulation","HeatmapGridTriangulation","getHeatmapGeometry","RasterImageTriangulation","indexs","LineArcTriangulation","segmentNumber","segNum","indexArray","push","map","v","HeatmapTriangulation","dir","addDir","dir1","dir2","dir3","needFlat","geometryShape","cylinder","geometry","computeVertexNormals","dim","Float32Array","vA","vB","vC","cb","vec3","create","ab","normal","li","p1","p2","p3","ax","ay","pA","fromValues","bx","by","pB","cx","cy","pC","sub","cross","normalizeNormals","newNormal","normalize","set","checkIsClosed","points","shape3d","circle","indexOf","dirX","dirY","x","y","earthTriangulation","earthmesh","EARTH_RADIUS","segments","EARTH_SEGMENTS","positionsArr","indicesArr","normalArr","earthOuterTriangulation","EARTH_RADIUS_OUTER"],"mappings":"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","sourcesContent":["import { IEncodeFeature } from '@antv/l7-core';\nimport { aProjectFlat, lngLatToMeters } from '@antv/l7-utils';\nimport earcut from 'earcut';\n// @ts-ignore\nimport { mat4, vec3 } from 'gl-matrix';\nimport {\n EARTH_RADIUS,\n EARTH_RADIUS_OUTER,\n EARTH_SEGMENTS,\n lglt2xyz,\n primitiveSphere,\n} from '../earth/utils';\nimport ExtrudePolyline from '../utils/extrude_polyline';\nimport { calculateCentroid } from '../utils/geo';\nimport extrudePolygon, {\n extrude_PolygonNormal,\n fillPolygon,\n IExtrudeGeomety,\n} from './shape/extrude';\nimport {\n geometryShape,\n IPosition,\n ShapeType2D,\n ShapeType3D,\n} from './shape/Path';\ntype IShape = ShapeType2D & ShapeType3D;\ninterface IGeometryCache {\n [key: string]: IExtrudeGeomety;\n}\nconst GeometryCache: IGeometryCache = {};\n\n/**\n * 计算2D 填充点图顶点\n * @param feature 映射feature\n */\n\nexport function PointFillTriangulation(feature: IEncodeFeature) {\n const coordinates = calculateCentroid(feature.coordinates);\n return {\n vertices: [...coordinates, ...coordinates, ...coordinates, ...coordinates],\n indices: [0, 1, 2, 2, 3, 0],\n size: coordinates.length,\n };\n}\n/**\n * 计算2D 填充点图顶点 (地球模式)\n * @param feature 映射feature\n */\nexport function GlobelPointFillTriangulation(feature: IEncodeFeature) {\n const coordinates = calculateCentroid(feature.coordinates);\n const xyz = lglt2xyz(coordinates as [number, number]);\n return {\n vertices: [...xyz, ...xyz, ...xyz, ...xyz],\n indices: [0, 1, 2, 2, 3, 0],\n size: xyz.length,\n };\n}\n\n/**\n * 计算3D 拉伸点图\n * @param feature 映射feature\n */\nexport function PointExtrudeTriangulation(feature: IEncodeFeature) {\n const { shape } = feature;\n const { positions, index, normals } = getGeometry(\n shape as ShapeType3D,\n false,\n );\n return {\n vertices: positions,\n indices: index,\n normals,\n size: 5,\n };\n}\n\n/**\n * 计算图片标注\n * @param feature 映射feature\n */\nexport function PointImageTriangulation(feature: IEncodeFeature) {\n const coordinates = calculateCentroid(feature.coordinates);\n return {\n vertices: [...coordinates],\n indices: [0],\n size: coordinates.length,\n };\n}\n\n/**\n * 线三角化\n * @param feature 映射feature\n */\nexport function LineTriangulation(feature: IEncodeFeature) {\n const { coordinates, originCoordinates, version } = feature;\n // let path = coordinates as number[][][] | number[][];\n // if (!Array.isArray(path[0][0])) {\n // path = [coordinates] as number[][][];\n // }\n\n const line = new ExtrudePolyline({\n dash: true,\n join: 'bevel',\n });\n\n if (version === 'GAODE2.x') {\n // 处理高德2.0几何体构建\n let path1 = coordinates as number[][][] | number[][]; // 计算位置\n if (!Array.isArray(path1[0][0])) {\n path1 = [coordinates] as number[][][];\n }\n let path2 = originCoordinates as number[][][] | number[][]; // 计算法线\n if (!Array.isArray(path2[0][0])) {\n path2 = [originCoordinates] as number[][][];\n }\n\n for (let i = 0; i < path1.length; i++) {\n // 高德2.0在计算线时,需要使用经纬度计算发现,使用 customCoords.lnglatToCoords 计算的数据来计算顶点的位置\n const item1 = path1[i];\n const item2 = path2[i];\n line.extrude_gaode2(item1 as number[][], item2 as number[][]);\n }\n } else {\n // 处理非高德2.0的几何体构建\n let path = coordinates as number[][][] | number[][];\n if (!Array.isArray(path[0][0])) {\n path = [coordinates] as number[][][];\n }\n path.forEach((item: any) => {\n line.extrude(item as number[][]);\n });\n }\n\n const linebuffer = line.complex;\n return {\n vertices: linebuffer.positions, // [ x,y,z, distance, miter,total ]\n indices: linebuffer.indices,\n normals: linebuffer.normals,\n size: 6,\n };\n}\n\nexport function polygonTriangulation(feature: IEncodeFeature) {\n const { coordinates } = feature;\n const flattengeo = earcut.flatten(coordinates as number[][][]);\n const { vertices, dimensions, holes } = flattengeo;\n return {\n indices: earcut(vertices, holes, dimensions),\n vertices,\n size: dimensions,\n };\n}\n\nexport function PolygonExtrudeTriangulation(feature: IEncodeFeature) {\n const coordinates = feature.coordinates as IPosition[][];\n const { positions, index, normals } = extrude_PolygonNormal(\n coordinates,\n true,\n );\n return {\n vertices: positions, // [ x, y, z, uv.x,uv.y ]\n indices: index,\n normals,\n size: 5,\n };\n}\n\nexport function HeatmapGridTriangulation(feature: IEncodeFeature) {\n const { shape } = feature;\n const { positions, index } = getHeatmapGeometry(shape as IShape);\n return {\n vertices: positions, // [ x, y, z ] 多边形顶点\n indices: index,\n size: 3,\n };\n}\n\n/**\n * 图片图层顶点构造\n * @param feature 数据\n */\nexport function RasterImageTriangulation(feature: IEncodeFeature) {\n const coordinates = feature.coordinates as IPosition[];\n // [ x, y, z. uv.x, uv.y]\n const positions: number[] = [\n ...coordinates[0],\n 0,\n 0,\n 1,\n coordinates[1][0],\n coordinates[0][1],\n 0,\n 1,\n 1,\n ...coordinates[1],\n 0,\n 1,\n 0,\n ...coordinates[0],\n 0,\n 0,\n 1,\n ...coordinates[1],\n 0,\n 1,\n 0,\n coordinates[0][0],\n coordinates[1][1],\n 0,\n 0,\n 0,\n ];\n const indexs = [0, 1, 2, 3, 4, 5];\n return {\n vertices: positions,\n indices: indexs,\n size: 5,\n };\n}\n/**\n * 计算3D弧线顶点\n * @param feature 映射数据\n * @param segNum 弧线线段数\n */\nexport function LineArcTriangulation(\n feature: IEncodeFeature,\n segmentNumber?: number,\n) {\n const segNum = segmentNumber ? segmentNumber : 30;\n const coordinates = feature.coordinates as IPosition[];\n const positions = [];\n const indexArray = [];\n for (let i = 0; i < segNum; i++) {\n // 上线两个顶点\n // [ x, y, z, sx,sy, tx,ty]\n positions.push(\n i,\n 1,\n i,\n coordinates[0][0],\n coordinates[0][1],\n coordinates[1][0],\n coordinates[1][1],\n i,\n -1,\n i,\n coordinates[0][0],\n coordinates[0][1],\n coordinates[1][0],\n coordinates[1][1],\n );\n\n if (i !== segNum - 1) {\n indexArray.push(\n ...[0, 1, 2, 1, 3, 2].map((v) => {\n return i * 2 + v;\n }),\n );\n }\n }\n return {\n vertices: positions,\n indices: indexArray,\n size: 7,\n };\n}\n\n/**\n * 构建热力图密度图的顶点\n * @param feature\n * @returns\n */\nexport function HeatmapTriangulation(feature: IEncodeFeature) {\n const coordinates = feature.coordinates as number[];\n if (coordinates.length === 2) {\n coordinates.push(0);\n }\n const size = feature.size as number;\n const dir = addDir(-1, 1);\n const dir1 = addDir(1, 1);\n const dir2 = addDir(-1, -1);\n const dir3 = addDir(1, -1);\n // [x,y,z, dirx ,diry, weight]\n const positions = [\n ...coordinates,\n ...dir,\n ...coordinates,\n ...dir2,\n ...coordinates,\n ...dir3,\n ...coordinates,\n ...dir1,\n ];\n const indexArray = [0, 1, 2, 3, 0, 2];\n return {\n vertices: positions,\n indices: indexArray,\n size: 5,\n };\n}\n\n/**\n * 点图层3d geomerty\n * @param shape 3D形状\n */\nfunction getGeometry(shape: ShapeType3D, needFlat = false): IExtrudeGeomety {\n if (GeometryCache && GeometryCache[shape]) {\n return GeometryCache[shape];\n }\n const path = geometryShape[shape]\n ? geometryShape[shape]()\n : geometryShape.cylinder();\n const geometry = extrude_PolygonNormal([path], needFlat);\n GeometryCache[shape] = geometry;\n return geometry;\n}\n\nfunction computeVertexNormals(\n positions: number[],\n indexArray: number[],\n dim: number = 3,\n needFlat: boolean = false,\n) {\n const normals = new Float32Array((positions.length / dim) * 3);\n let vA: number;\n let vB: number;\n let vC: number;\n const cb = vec3.create();\n const ab = vec3.create();\n const normal = vec3.create();\n for (let i = 0, li = indexArray.length; i < li; i += 3) {\n vA = indexArray[i + 0] * 3;\n vB = indexArray[i + 1] * 3;\n vC = indexArray[i + 2] * 3;\n let p1 = [positions[vA], positions[vA + 1]];\n let p2 = [positions[vB], positions[vB + 1]];\n let p3 = [positions[vC], positions[vC + 1]];\n if (needFlat) {\n p1 = lngLatToMeters(p1);\n p2 = lngLatToMeters(p2);\n p3 = lngLatToMeters(p3);\n }\n const [ax, ay] = p1;\n const pA = vec3.fromValues(ax, ay, positions[vA + 2]);\n const [bx, by] = p2;\n const pB = vec3.fromValues(bx, by, positions[vB + 2]);\n const [cx, cy] = p3;\n const pC = vec3.fromValues(cx, cy, positions[vC + 2]);\n vec3.sub(cb, pC, pB);\n vec3.sub(ab, pA, pB);\n vec3.cross(normal, cb, ab);\n normals[vA] += cb[0];\n normals[vA + 1] += cb[1];\n normals[vA + 2] += cb[2];\n normals[vB] += cb[0];\n normals[vB + 1] += cb[1];\n normals[vB + 2] += cb[2];\n normals[vC] += cb[0];\n normals[vC + 1] += cb[1];\n normals[vC + 2] += cb[2];\n }\n normalizeNormals(normals);\n return normals;\n}\n\nfunction normalizeNormals(normals: Float32Array) {\n for (let i = 0, li = normals.length; i < li; i += 3) {\n const normal = vec3.fromValues(normals[i], normals[i + 1], normals[i + 2]);\n const newNormal = vec3.create();\n vec3.normalize(newNormal, normal);\n normals.set(newNormal, i);\n }\n}\n\nfunction checkIsClosed(points: number[][][]) {\n const p1 = points[0][0];\n const p2 = points[0][points[0].length - 1];\n return p1[0] === p2[0] && p1[1] === p2[1];\n}\n\nfunction getHeatmapGeometry(shape: ShapeType2D | ShapeType3D): IExtrudeGeomety {\n const shape3d = [\n 'cylinder',\n 'triangleColumn',\n 'hexagonColumn',\n 'squareColumn',\n ];\n const path = geometryShape[shape]\n ? geometryShape[shape]()\n : geometryShape.circle();\n const geometry =\n shape3d.indexOf(shape) === -1\n ? fillPolygon([path])\n : extrudePolygon([path]);\n // const geometry = fillPolygon([path]);\n return geometry;\n}\n// 热力图计算范围\nfunction addDir(dirX: number, dirY: number) {\n const x = (dirX + 1) / 2;\n const y = (dirY + 1) / 2;\n return [x, y];\n}\n\n/**\n * 构建地球三角网格\n * @returns\n */\nexport function earthTriangulation() {\n const earthmesh = primitiveSphere(EARTH_RADIUS, { segments: EARTH_SEGMENTS });\n const { positionsArr, indicesArr, normalArr } = earthmesh;\n return {\n vertices: positionsArr,\n indices: indicesArr,\n size: 5,\n normals: normalArr,\n };\n}\n\nexport function earthOuterTriangulation() {\n const earthmesh = primitiveSphere(EARTH_RADIUS + EARTH_RADIUS_OUTER, {\n segments: EARTH_SEGMENTS,\n });\n const { positionsArr, indicesArr, normalArr } = earthmesh;\n return {\n vertices: positionsArr,\n indices: indicesArr,\n size: 5,\n normals: normalArr,\n };\n}\n"],"file":"triangulation.js"}
1
+ {"version":3,"sources":["../../src/core/triangulation.ts"],"names":["GeometryCache","PointFillTriangulation","feature","coordinates","vertices","indices","size","length","GlobelPointFillTriangulation","xyz","PointExtrudeTriangulation","shape","getGeometry","positions","index","normals","PointImageTriangulation","LineTriangulation","originCoordinates","version","line","ExtrudePolyline","dash","join","path1","Array","isArray","path2","i","item1","item2","extrude_gaode2","path","forEach","item","extrude","linebuffer","complex","polygonTriangulation","flattengeo","earcut","flatten","dimensions","holes","PolygonExtrudeTriangulation","HeatmapGridTriangulation","getHeatmapGeometry","RasterImageTriangulation","indexs","LineArcTriangulation","segmentNumber","segNum","indexArray","push","map","v","HeatmapTriangulation","dir","addDir","dir1","dir2","dir3","needFlat","geometryShape","cylinder","geometry","computeVertexNormals","dim","Float32Array","vA","vB","vC","cb","vec3","create","ab","normal","li","p1","p2","p3","ax","ay","pA","fromValues","bx","by","pB","cx","cy","pC","sub","cross","normalizeNormals","newNormal","normalize","set","checkIsClosed","points","shape3d","circle","indexOf","dirX","dirY","x","y","earthTriangulation","earthmesh","EARTH_RADIUS","segments","EARTH_SEGMENTS","positionsArr","indicesArr","normalArr","earthOuterTriangulation","EARTH_RADIUS_OUTER"],"mappings":"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","sourcesContent":["import { IEncodeFeature } from '@antv/l7-core';\nimport { aProjectFlat, lngLatToMeters } from '@antv/l7-utils';\nimport earcut from 'earcut';\n// @ts-ignore\nimport { mat4, vec3 } from 'gl-matrix';\nimport {\n EARTH_RADIUS,\n EARTH_RADIUS_OUTER,\n EARTH_SEGMENTS,\n lglt2xyz,\n primitiveSphere,\n} from '../earth/utils';\nimport ExtrudePolyline from '../utils/extrude_polyline';\nimport { calculateCentroid } from '../utils/geo';\nimport extrudePolygon, {\n extrude_PolygonNormal,\n fillPolygon,\n IExtrudeGeomety,\n} from './shape/extrude';\nimport {\n geometryShape,\n IPosition,\n ShapeType2D,\n ShapeType3D,\n} from './shape/Path';\ntype IShape = ShapeType2D & ShapeType3D;\ninterface IGeometryCache {\n [key: string]: IExtrudeGeomety;\n}\nconst GeometryCache: IGeometryCache = {};\n\n/**\n * 计算2D 填充点图顶点\n * @param feature 映射feature\n */\n\nexport function PointFillTriangulation(feature: IEncodeFeature) {\n const coordinates = calculateCentroid(feature.coordinates);\n return {\n vertices: [...coordinates, ...coordinates, ...coordinates, ...coordinates],\n indices: [0, 1, 2, 2, 3, 0],\n size: coordinates.length,\n };\n}\n/**\n * 计算2D 填充点图顶点 (地球模式)\n * @param feature 映射feature\n */\nexport function GlobelPointFillTriangulation(feature: IEncodeFeature) {\n const coordinates = calculateCentroid(feature.coordinates);\n const xyz = lglt2xyz(coordinates as [number, number]);\n return {\n vertices: [...xyz, ...xyz, ...xyz, ...xyz],\n indices: [0, 1, 2, 2, 3, 0],\n size: xyz.length,\n };\n}\n\n/**\n * 计算3D 拉伸点图\n * @param feature 映射feature\n */\nexport function PointExtrudeTriangulation(feature: IEncodeFeature) {\n const { shape } = feature;\n const { positions, index, normals } = getGeometry(\n shape as ShapeType3D,\n false,\n );\n return {\n vertices: positions,\n indices: index,\n normals,\n size: 5,\n };\n}\n\n/**\n * 计算图片标注\n * @param feature 映射feature\n */\nexport function PointImageTriangulation(feature: IEncodeFeature) {\n const coordinates = calculateCentroid(feature.coordinates);\n return {\n vertices: [...coordinates],\n indices: [0],\n size: coordinates.length,\n };\n}\n\n/**\n * 线三角化\n * @param feature 映射feature\n */\nexport function LineTriangulation(feature: IEncodeFeature) {\n const { coordinates, originCoordinates, version } = feature;\n // let path = coordinates as number[][][] | number[][];\n // if (!Array.isArray(path[0][0])) {\n // path = [coordinates] as number[][][];\n // }\n\n const line = new ExtrudePolyline({\n dash: true,\n join: 'bevel',\n });\n\n if (version === 'GAODE2.x') {\n // 处理高德2.0几何体构建\n let path1 = coordinates as number[][][] | number[][]; // 计算位置\n if (!Array.isArray(path1[0][0])) {\n path1 = [coordinates] as number[][][];\n }\n let path2 = originCoordinates as number[][][] | number[][]; // 计算法线\n if (!Array.isArray(path2[0][0])) {\n path2 = [originCoordinates] as number[][][];\n }\n\n for (let i = 0; i < path1.length; i++) {\n // 高德2.0在计算线时,需要使用经纬度计算发现,使用 customCoords.lnglatToCoords 计算的数据来计算顶点的位置\n const item1 = path1[i];\n const item2 = path2[i];\n line.extrude_gaode2(item1 as number[][], item2 as number[][]);\n }\n } else {\n // 处理非高德2.0的几何体构建\n let path = coordinates as number[][][] | number[][];\n if (!Array.isArray(path[0][0])) {\n path = [coordinates] as number[][][];\n }\n path.forEach((item: any) => {\n line.extrude(item as number[][]);\n });\n }\n\n const linebuffer = line.complex;\n return {\n vertices: linebuffer.positions, // [ x,y,z, distance, miter,total ]\n indices: linebuffer.indices,\n normals: linebuffer.normals,\n size: 6,\n };\n}\n\nexport function polygonTriangulation(feature: IEncodeFeature) {\n const { coordinates } = feature;\n const flattengeo = earcut.flatten(coordinates as number[][][]);\n const { vertices, dimensions, holes } = flattengeo;\n return {\n indices: earcut(vertices, holes, dimensions),\n vertices,\n size: dimensions,\n };\n}\n\nexport function PolygonExtrudeTriangulation(feature: IEncodeFeature) {\n const coordinates = feature.coordinates as IPosition[][];\n const { positions, index, normals } = extrude_PolygonNormal(\n coordinates,\n true,\n );\n return {\n vertices: positions, // [ x, y, z, uv.x,uv.y ]\n indices: index,\n normals,\n size: 5,\n };\n}\n\nexport function HeatmapGridTriangulation(feature: IEncodeFeature) {\n const { shape } = feature;\n const { positions, index } = getHeatmapGeometry(shape as IShape);\n return {\n vertices: positions, // [ x, y, z ] 多边形顶点\n indices: index,\n size: 3,\n };\n}\n\n/**\n * 图片图层顶点构造\n * @param feature 数据\n */\nexport function RasterImageTriangulation(feature: IEncodeFeature) {\n const coordinates = feature.coordinates as IPosition[];\n // [ x, y, z. uv.x, uv.y]\n const positions: number[] = [\n ...coordinates[0],\n 0,\n 0,\n 1,\n coordinates[1][0],\n coordinates[0][1],\n 0,\n 1,\n 1,\n ...coordinates[1],\n 0,\n 1,\n 0,\n ...coordinates[0],\n 0,\n 0,\n 1,\n ...coordinates[1],\n 0,\n 1,\n 0,\n coordinates[0][0],\n coordinates[1][1],\n 0,\n 0,\n 0,\n ];\n const indexs = [0, 1, 2, 3, 4, 5];\n return {\n vertices: positions,\n indices: indexs,\n size: 5,\n };\n}\n/**\n * 计算3D弧线顶点\n * @param feature 映射数据\n * @param segNum 弧线线段数\n */\nexport function LineArcTriangulation(\n feature: IEncodeFeature,\n segmentNumber?: number,\n) {\n const segNum = segmentNumber ? segmentNumber : 30;\n const coordinates = feature.coordinates as IPosition[];\n const positions = [];\n const indexArray = [];\n for (let i = 0; i < segNum; i++) {\n // 上线两个顶点\n // [ x, y, z, sx,sy, tx,ty]\n positions.push(\n i,\n 1,\n i,\n coordinates[0][0],\n coordinates[0][1],\n coordinates[1][0],\n coordinates[1][1],\n i,\n -1,\n i,\n coordinates[0][0],\n coordinates[0][1],\n coordinates[1][0],\n coordinates[1][1],\n );\n\n if (i !== segNum - 1) {\n indexArray.push(\n ...[0, 1, 2, 1, 3, 2].map((v) => {\n return i * 2 + v;\n }),\n );\n }\n }\n return {\n vertices: positions,\n indices: indexArray,\n size: 7,\n };\n}\n\n/**\n * 构建热力图密度图的顶点\n * @param feature\n * @returns\n */\nexport function HeatmapTriangulation(feature: IEncodeFeature) {\n const coordinates = feature.coordinates as number[];\n if (coordinates.length === 2) {\n coordinates.push(0);\n }\n const size = feature.size as number;\n const dir = addDir(-1, 1);\n const dir1 = addDir(1, 1);\n const dir2 = addDir(-1, -1);\n const dir3 = addDir(1, -1);\n // [x,y,z, dirx ,diry, weight]\n const positions = [\n ...coordinates,\n ...dir,\n ...coordinates,\n ...dir2,\n ...coordinates,\n ...dir3,\n ...coordinates,\n ...dir1,\n ];\n const indexArray = [0, 1, 2, 3, 0, 2];\n return {\n vertices: positions,\n indices: indexArray,\n size: 5,\n };\n}\n\n/**\n * 点图层3d geomerty\n * @param shape 3D形状\n */\nfunction getGeometry(shape: ShapeType3D, needFlat = false): IExtrudeGeomety {\n if (GeometryCache && GeometryCache[shape]) {\n return GeometryCache[shape];\n }\n const path = geometryShape[shape]\n ? geometryShape[shape]()\n : geometryShape.cylinder();\n const geometry = extrude_PolygonNormal([path], needFlat);\n GeometryCache[shape] = geometry;\n return geometry;\n}\n\nfunction computeVertexNormals(\n positions: number[],\n indexArray: number[],\n dim: number = 3,\n needFlat: boolean = false,\n) {\n const normals = new Float32Array((positions.length / dim) * 3);\n let vA: number;\n let vB: number;\n let vC: number;\n const cb = vec3.create();\n const ab = vec3.create();\n const normal = vec3.create();\n for (let i = 0, li = indexArray.length; i < li; i += 3) {\n vA = indexArray[i + 0] * 3;\n vB = indexArray[i + 1] * 3;\n vC = indexArray[i + 2] * 3;\n let p1 = [positions[vA], positions[vA + 1]];\n let p2 = [positions[vB], positions[vB + 1]];\n let p3 = [positions[vC], positions[vC + 1]];\n if (needFlat) {\n p1 = lngLatToMeters(p1);\n p2 = lngLatToMeters(p2);\n p3 = lngLatToMeters(p3);\n }\n const [ax, ay] = p1;\n const pA = vec3.fromValues(ax, ay, positions[vA + 2]);\n const [bx, by] = p2;\n const pB = vec3.fromValues(bx, by, positions[vB + 2]);\n const [cx, cy] = p3;\n const pC = vec3.fromValues(cx, cy, positions[vC + 2]);\n vec3.sub(cb, pC, pB);\n vec3.sub(ab, pA, pB);\n vec3.cross(normal, cb, ab);\n normals[vA] += cb[0];\n normals[vA + 1] += cb[1];\n normals[vA + 2] += cb[2];\n normals[vB] += cb[0];\n normals[vB + 1] += cb[1];\n normals[vB + 2] += cb[2];\n normals[vC] += cb[0];\n normals[vC + 1] += cb[1];\n normals[vC + 2] += cb[2];\n }\n normalizeNormals(normals);\n return normals;\n}\n\nfunction normalizeNormals(normals: Float32Array) {\n for (let i = 0, li = normals.length; i < li; i += 3) {\n const normal = vec3.fromValues(normals[i], normals[i + 1], normals[i + 2]);\n const newNormal = vec3.create();\n vec3.normalize(newNormal, normal);\n normals.set(newNormal, i);\n }\n}\n\nfunction checkIsClosed(points: number[][][]) {\n const p1 = points[0][0];\n const p2 = points[0][points[0].length - 1];\n return p1[0] === p2[0] && p1[1] === p2[1];\n}\n\nfunction getHeatmapGeometry(shape: ShapeType2D | ShapeType3D): IExtrudeGeomety {\n const shape3d = [\n 'cylinder',\n 'triangleColumn',\n 'hexagonColumn',\n 'squareColumn',\n ];\n const path = geometryShape[shape]\n ? geometryShape[shape]()\n : geometryShape.circle();\n const geometry =\n shape3d.indexOf(shape) === -1\n ? fillPolygon([path])\n : extrudePolygon([path]);\n // const geometry = fillPolygon([path]);\n return geometry;\n}\n// 热力图计算范围\nfunction addDir(dirX: number, dirY: number) {\n const x = (dirX + 1) / 2;\n const y = (dirY + 1) / 2;\n return [x, y];\n}\n\n/**\n * 构建地球三角网格\n * @returns\n */\nexport function earthTriangulation() {\n const earthmesh = primitiveSphere(EARTH_RADIUS, { segments: EARTH_SEGMENTS });\n const { positionsArr, indicesArr, normalArr } = earthmesh;\n return {\n vertices: positionsArr,\n indices: indicesArr,\n size: 5,\n normals: normalArr,\n };\n}\n\nexport function earthOuterTriangulation() {\n const earthmesh = primitiveSphere(EARTH_RADIUS + EARTH_RADIUS_OUTER, {\n segments: EARTH_SEGMENTS,\n });\n const { positionsArr, indicesArr, normalArr } = earthmesh;\n return {\n vertices: positionsArr,\n indices: indicesArr,\n size: 5,\n normals: normalArr,\n };\n}\n"],"file":"triangulation.js"}
@@ -5,9 +5,9 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
+ exports.EARTH_SEGMENTS = exports.EARTH_RADIUS_OUTER = exports.EARTH_RADIUS = void 0;
8
9
  exports.lglt2xyz = lglt2xyz;
9
10
  exports.primitiveSphere = primitiveSphere;
10
- exports.EARTH_RADIUS_OUTER = exports.EARTH_SEGMENTS = exports.EARTH_RADIUS = void 0;
11
11
 
12
12
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
13
 
@@ -41,7 +41,7 @@ var _triangulation2 = require("../triangulation");
41
41
 
42
42
  var _dec, _class;
43
43
 
44
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
44
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
45
45
 
46
46
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
47
47
 
package/lib/index.js CHANGED
@@ -5,16 +5,22 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
+ Object.defineProperty(exports, "BaseLayer", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _BaseLayer.default;
12
+ }
13
+ });
8
14
  Object.defineProperty(exports, "CityBuildingLayer", {
9
15
  enumerable: true,
10
16
  get: function get() {
11
17
  return _building.default;
12
18
  }
13
19
  });
14
- Object.defineProperty(exports, "BaseLayer", {
20
+ Object.defineProperty(exports, "EarthLayer", {
15
21
  enumerable: true,
16
22
  get: function get() {
17
- return _BaseLayer.default;
23
+ return _earth.default;
18
24
  }
19
25
  });
20
26
  Object.defineProperty(exports, "HeatmapLayer", {
@@ -59,12 +65,6 @@ Object.defineProperty(exports, "RasterLayer", {
59
65
  return _raster.default;
60
66
  }
61
67
  });
62
- Object.defineProperty(exports, "EarthLayer", {
63
- enumerable: true,
64
- get: function get() {
65
- return _earth.default;
66
- }
67
- });
68
68
 
69
69
  var _l7Core = require("@antv/l7-core");
70
70
 
@@ -31,7 +31,7 @@ require("reflect-metadata");
31
31
 
32
32
  var _dec, _dec2, _dec3, _dec4, _class, _class2, _descriptor, _descriptor2, _descriptor3;
33
33
 
34
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
34
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
35
35
 
36
36
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
37
37
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
6
 
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
@@ -25,6 +25,10 @@ require("reflect-metadata");
25
25
 
26
26
  var _dec, _class;
27
27
 
28
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
29
+
30
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
31
+
28
32
  var DataSourcePlugin = (_dec = (0, _inversify.injectable)(), _dec(_class = function () {
29
33
  function DataSourcePlugin() {
30
34
  (0, _classCallCheck2.default)(this, DataSourcePlugin);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/plugins/DataSourcePlugin.ts"],"names":["DataSourcePlugin","layer","mapService","getContainer","get","TYPES","IMapService","hooks","init","tap","source","getSource","sourceOption","data","DEFAULT_DATA","options","DEFAULT_PARSER","setSource","Source","updateClusterData","beforeRenderData","neeUpdateCluster","dataSourceNeedUpdate","dataState","cluster","clusterOptions","zoom","maxZoom","newZoom","getZoom","Math","abs","floor"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AAOA;;AACA;;AACA;;;;IAGqBA,gB,WADpB,4B;;;;;;;;WAGC,eAAaC,KAAb,EAA4B;AAAA;;AAC1B,WAAKC,UAAL,GAAkBD,KAAK,CAACE,YAAN,GAAqBC,GAArB,CAAsCC,cAAMC,WAA5C,CAAlB;AACAL,MAAAA,KAAK,CAACM,KAAN,CAAYC,IAAZ,CAAiBC,GAAjB,CAAqB,kBAArB,EAAyC,YAAM;AAC7C,YAAMC,MAAM,GAAGT,KAAK,CAACU,SAAN,EAAf;;AACA,YAAI,CAACD,MAAL,EAAa;AAEX,qBAA0BT,KAAK,CAACW,YAAN,IAAsB;AAC9CC,YAAAA,IAAI,EAAEC,sBADwC;AAE9CC,YAAAA,OAAO,EAAEC;AAFqC,WAAhD;AAAA,cAAQH,IAAR,QAAQA,IAAR;AAAA,cAAcE,OAAd,QAAcA,OAAd;;AAIAd,UAAAA,KAAK,CAACgB,SAAN,CAAgB,IAAIC,iBAAJ,CAAWL,IAAX,EAAiBE,OAAjB,CAAhB;AACD;;AAED,QAAA,KAAI,CAACI,iBAAL,CAAuBlB,KAAvB;AACD,OAZD;AAeAA,MAAAA,KAAK,CAACM,KAAN,CAAYa,gBAAZ,CAA6BX,GAA7B,CAAiC,kBAAjC,EAAqD,YAAM;AACzD,YAAMY,gBAAgB,GAAG,KAAI,CAACF,iBAAL,CAAuBlB,KAAvB,CAAzB;;AACA,YAAMqB,oBAAoB,GAAGrB,KAAK,CAACsB,SAAN,CAAgBD,oBAA7C;AACArB,QAAAA,KAAK,CAACsB,SAAN,CAAgBD,oBAAhB,GAAuC,KAAvC;AACA,eAAOD,gBAAgB,IAAIC,oBAA3B;AACD,OALD;AAMD;;;WAED,2BAA0BrB,KAA1B,EAAkD;AAChD,UAAMS,MAAM,GAAGT,KAAK,CAACU,SAAN,EAAf;AACA,UAAMa,OAAO,GAAGd,MAAM,CAACc,OAAvB;AACA,kCAAmCd,MAAM,CAACe,cAA1C;AAAA,yDAAQC,IAAR;AAAA,UAAQA,IAAR,uCAAe,CAAf;AAAA,yDAAkBC,OAAlB;AAAA,UAAkBA,OAAlB,uCAA4B,EAA5B;AACA,UAAMC,OAAO,GAAG,KAAK1B,UAAL,CAAgB2B,OAAhB,KAA4B,CAA5C;AACA,UAAMP,oBAAoB,GAAGrB,KAAK,CAACsB,SAAN,CAAgBD,oBAA7C;;AAEA,UACEE,OAAO,KACNF,oBAAoB,IAAIQ,IAAI,CAACC,GAAL,CAASL,IAAI,GAAGE,OAAhB,IAA2B,CAD7C,CAAP,IAEAD,OAAO,GAAGD,IAHZ,EAIE;AACAhB,QAAAA,MAAM,CAACS,iBAAP,CAAyBW,IAAI,CAACE,KAAL,CAAWJ,OAAX,CAAzB;AACA,eAAO,IAAP;AACD;;AACD,aAAO,KAAP;AACD","sourcesContent":["import {\n ILayer,\n ILayerPlugin,\n ILngLat,\n IMapService,\n TYPES,\n} from '@antv/l7-core';\nimport Source, { DEFAULT_DATA, DEFAULT_PARSER } from '@antv/l7-source';\nimport { injectable } from 'inversify';\nimport 'reflect-metadata';\n\n@injectable()\nexport default class DataSourcePlugin implements ILayerPlugin {\n protected mapService: IMapService;\n public apply(layer: ILayer) {\n this.mapService = layer.getContainer().get<IMapService>(TYPES.IMapService);\n layer.hooks.init.tap('DataSourcePlugin', () => {\n const source = layer.getSource();\n if (!source) {\n // TODO: 允许用户不使用 layer 的 source 方法,在这里传入一个默认的替换的默认数据\n const { data, options } = layer.sourceOption || {\n data: DEFAULT_DATA,\n options: DEFAULT_PARSER,\n };\n layer.setSource(new Source(data, options));\n }\n\n this.updateClusterData(layer);\n });\n\n // 检测数据是否需要更新\n layer.hooks.beforeRenderData.tap('DataSourcePlugin', () => {\n const neeUpdateCluster = this.updateClusterData(layer);\n const dataSourceNeedUpdate = layer.dataState.dataSourceNeedUpdate;\n layer.dataState.dataSourceNeedUpdate = false;\n return neeUpdateCluster || dataSourceNeedUpdate;\n });\n }\n\n private updateClusterData(layer: ILayer): boolean {\n const source = layer.getSource();\n const cluster = source.cluster;\n const { zoom = 0, maxZoom = 16 } = source.clusterOptions;\n const newZoom = this.mapService.getZoom() - 1;\n const dataSourceNeedUpdate = layer.dataState.dataSourceNeedUpdate;\n // 如果 dataSource 有更新,跳过 zoom 的判断,直接更新一次\n if (\n cluster &&\n (dataSourceNeedUpdate || Math.abs(zoom - newZoom) > 1) &&\n maxZoom > zoom\n ) {\n source.updateClusterData(Math.floor(newZoom));\n return true;\n }\n return false;\n }\n}\n"],"file":"DataSourcePlugin.js"}
1
+ {"version":3,"sources":["../../src/plugins/DataSourcePlugin.ts"],"names":["DataSourcePlugin","layer","mapService","getContainer","get","TYPES","IMapService","hooks","init","tap","source","getSource","sourceOption","data","DEFAULT_DATA","options","DEFAULT_PARSER","setSource","Source","updateClusterData","beforeRenderData","neeUpdateCluster","dataSourceNeedUpdate","dataState","cluster","clusterOptions","zoom","maxZoom","newZoom","getZoom","Math","abs","floor"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AAOA;;AACA;;AACA;;;;;;;;IAGqBA,gB,WADpB,4B;;;;;;;;WAGC,eAAaC,KAAb,EAA4B;AAAA;;AAC1B,WAAKC,UAAL,GAAkBD,KAAK,CAACE,YAAN,GAAqBC,GAArB,CAAsCC,cAAMC,WAA5C,CAAlB;AACAL,MAAAA,KAAK,CAACM,KAAN,CAAYC,IAAZ,CAAiBC,GAAjB,CAAqB,kBAArB,EAAyC,YAAM;AAC7C,YAAMC,MAAM,GAAGT,KAAK,CAACU,SAAN,EAAf;;AACA,YAAI,CAACD,MAAL,EAAa;AAEX,qBAA0BT,KAAK,CAACW,YAAN,IAAsB;AAC9CC,YAAAA,IAAI,EAAEC,sBADwC;AAE9CC,YAAAA,OAAO,EAAEC;AAFqC,WAAhD;AAAA,cAAQH,IAAR,QAAQA,IAAR;AAAA,cAAcE,OAAd,QAAcA,OAAd;;AAIAd,UAAAA,KAAK,CAACgB,SAAN,CAAgB,IAAIC,iBAAJ,CAAWL,IAAX,EAAiBE,OAAjB,CAAhB;AACD;;AAED,QAAA,KAAI,CAACI,iBAAL,CAAuBlB,KAAvB;AACD,OAZD;AAeAA,MAAAA,KAAK,CAACM,KAAN,CAAYa,gBAAZ,CAA6BX,GAA7B,CAAiC,kBAAjC,EAAqD,YAAM;AACzD,YAAMY,gBAAgB,GAAG,KAAI,CAACF,iBAAL,CAAuBlB,KAAvB,CAAzB;;AACA,YAAMqB,oBAAoB,GAAGrB,KAAK,CAACsB,SAAN,CAAgBD,oBAA7C;AACArB,QAAAA,KAAK,CAACsB,SAAN,CAAgBD,oBAAhB,GAAuC,KAAvC;AACA,eAAOD,gBAAgB,IAAIC,oBAA3B;AACD,OALD;AAMD;;;WAED,2BAA0BrB,KAA1B,EAAkD;AAChD,UAAMS,MAAM,GAAGT,KAAK,CAACU,SAAN,EAAf;AACA,UAAMa,OAAO,GAAGd,MAAM,CAACc,OAAvB;AACA,kCAAmCd,MAAM,CAACe,cAA1C;AAAA,yDAAQC,IAAR;AAAA,UAAQA,IAAR,uCAAe,CAAf;AAAA,yDAAkBC,OAAlB;AAAA,UAAkBA,OAAlB,uCAA4B,EAA5B;AACA,UAAMC,OAAO,GAAG,KAAK1B,UAAL,CAAgB2B,OAAhB,KAA4B,CAA5C;AACA,UAAMP,oBAAoB,GAAGrB,KAAK,CAACsB,SAAN,CAAgBD,oBAA7C;;AAEA,UACEE,OAAO,KACNF,oBAAoB,IAAIQ,IAAI,CAACC,GAAL,CAASL,IAAI,GAAGE,OAAhB,IAA2B,CAD7C,CAAP,IAEAD,OAAO,GAAGD,IAHZ,EAIE;AACAhB,QAAAA,MAAM,CAACS,iBAAP,CAAyBW,IAAI,CAACE,KAAL,CAAWJ,OAAX,CAAzB;AACA,eAAO,IAAP;AACD;;AACD,aAAO,KAAP;AACD","sourcesContent":["import {\n ILayer,\n ILayerPlugin,\n ILngLat,\n IMapService,\n TYPES,\n} from '@antv/l7-core';\nimport Source, { DEFAULT_DATA, DEFAULT_PARSER } from '@antv/l7-source';\nimport { injectable } from 'inversify';\nimport 'reflect-metadata';\n\n@injectable()\nexport default class DataSourcePlugin implements ILayerPlugin {\n protected mapService: IMapService;\n public apply(layer: ILayer) {\n this.mapService = layer.getContainer().get<IMapService>(TYPES.IMapService);\n layer.hooks.init.tap('DataSourcePlugin', () => {\n const source = layer.getSource();\n if (!source) {\n // TODO: 允许用户不使用 layer 的 source 方法,在这里传入一个默认的替换的默认数据\n const { data, options } = layer.sourceOption || {\n data: DEFAULT_DATA,\n options: DEFAULT_PARSER,\n };\n layer.setSource(new Source(data, options));\n }\n\n this.updateClusterData(layer);\n });\n\n // 检测数据是否需要更新\n layer.hooks.beforeRenderData.tap('DataSourcePlugin', () => {\n const neeUpdateCluster = this.updateClusterData(layer);\n const dataSourceNeedUpdate = layer.dataState.dataSourceNeedUpdate;\n layer.dataState.dataSourceNeedUpdate = false;\n return neeUpdateCluster || dataSourceNeedUpdate;\n });\n }\n\n private updateClusterData(layer: ILayer): boolean {\n const source = layer.getSource();\n const cluster = source.cluster;\n const { zoom = 0, maxZoom = 16 } = source.clusterOptions;\n const newZoom = this.mapService.getZoom() - 1;\n const dataSourceNeedUpdate = layer.dataState.dataSourceNeedUpdate;\n // 如果 dataSource 有更新,跳过 zoom 的判断,直接更新一次\n if (\n cluster &&\n (dataSourceNeedUpdate || Math.abs(zoom - newZoom) > 1) &&\n maxZoom > zoom\n ) {\n source.updateClusterData(Math.floor(newZoom));\n return true;\n }\n return false;\n }\n}\n"],"file":"DataSourcePlugin.js"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
6
 
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
@@ -39,6 +39,10 @@ require("reflect-metadata");
39
39
 
40
40
  var _scaleMap, _dec, _dec2, _class, _class2, _descriptor;
41
41
 
42
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
43
+
44
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
45
+
42
46
  var dateRegex = /^(?:(?!0000)[0-9]{4}([-/.]+)(?:(?:0?[1-9]|1[0-2])\1(?:0?[1-9]|1[0-9]|2[0-8])|(?:0?[13-9]|1[0-2])\1(?:29|30)|(?:0?[13578]|1[02])\1(?:31))|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)([-/.]?)0?2\2(?:29))(\s+([01]|([01][0-9]|2[0-3])):([0-9]|[0-5][0-9]):([0-9]|[0-5][0-9]))?$/;
43
47
  var scaleMap = (_scaleMap = {}, (0, _defineProperty2.default)(_scaleMap, _l7Core.ScaleTypes.LINEAR, d3.scaleLinear), (0, _defineProperty2.default)(_scaleMap, _l7Core.ScaleTypes.POWER, d3.scalePow), (0, _defineProperty2.default)(_scaleMap, _l7Core.ScaleTypes.LOG, d3.scaleLog), (0, _defineProperty2.default)(_scaleMap, _l7Core.ScaleTypes.IDENTITY, d3.scaleIdentity), (0, _defineProperty2.default)(_scaleMap, _l7Core.ScaleTypes.TIME, d3.scaleTime), (0, _defineProperty2.default)(_scaleMap, _l7Core.ScaleTypes.QUANTILE, d3.scaleQuantile), (0, _defineProperty2.default)(_scaleMap, _l7Core.ScaleTypes.QUANTIZE, d3.scaleQuantize), (0, _defineProperty2.default)(_scaleMap, _l7Core.ScaleTypes.THRESHOLD, d3.scaleThreshold), (0, _defineProperty2.default)(_scaleMap, _l7Core.ScaleTypes.CAT, d3.scaleOrdinal), _scaleMap);
44
48
  var FeatureScalePlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inversify.inject)(_l7Core.TYPES.IGlobalConfigService), _dec(_class = (_class2 = function () {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/plugins/FeatureScalePlugin.ts"],"names":["dateRegex","scaleMap","ScaleTypes","LINEAR","d3","scaleLinear","POWER","scalePow","LOG","scaleLog","IDENTITY","scaleIdentity","TIME","scaleTime","QUANTILE","scaleQuantile","QUANTIZE","scaleQuantize","THRESHOLD","scaleThreshold","CAT","scaleOrdinal","FeatureScalePlugin","TYPES","IGlobalConfigService","layer","styleAttributeService","hooks","init","tap","scaleOptions","getScaleOptions","attributes","getLayerStyleAttributes","dataArray","getSource","data","length","caculateScalesForAttributes","beforeRenderData","layerModelNeedUpdate","beforeRender","attributesToRescale","filter","attribute","needRescale","n","isNaN","parseFloat","isFinite","scaleCache","forEach","scale","attributeScale","type","name","names","parseFields","field","scales","push","getOrCreateScale","some","StyleScaleType","VARIABLE","callback","values","option","tick","ticks","domain","range","CONSTANT","defaultValues","map","index","scalers","func","scalekey","join","styleScale","createScale","Array","isArray","split","scaleOption","undefined","createDefaultScale","firstValue","find","d","isNumber","getDefaultType","cfg","createDefaultScaleConfig","Object","assign","test","item"],"mappings":"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","sourcesContent":["import {\n IGlobalConfigService,\n ILayer,\n ILayerPlugin,\n IScale,\n IScaleOptions,\n IStyleAttribute,\n IStyleAttributeService,\n IStyleScale,\n ScaleTypeName,\n ScaleTypes,\n StyleScaleType,\n TYPES,\n} from '@antv/l7-core';\nimport { IParseDataItem } from '@antv/l7-source';\nimport { extent, ticks } from 'd3-array';\nimport * as d3 from 'd3-scale';\nimport { inject, injectable } from 'inversify';\nimport { isNil, isString, uniq } from 'lodash';\nimport 'reflect-metadata';\n\nconst dateRegex = /^(?:(?!0000)[0-9]{4}([-/.]+)(?:(?:0?[1-9]|1[0-2])\\1(?:0?[1-9]|1[0-9]|2[0-8])|(?:0?[13-9]|1[0-2])\\1(?:29|30)|(?:0?[13578]|1[02])\\1(?:31))|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)([-/.]?)0?2\\2(?:29))(\\s+([01]|([01][0-9]|2[0-3])):([0-9]|[0-5][0-9]):([0-9]|[0-5][0-9]))?$/;\n\nconst scaleMap = {\n [ScaleTypes.LINEAR]: d3.scaleLinear,\n [ScaleTypes.POWER]: d3.scalePow,\n [ScaleTypes.LOG]: d3.scaleLog,\n [ScaleTypes.IDENTITY]: d3.scaleIdentity,\n [ScaleTypes.TIME]: d3.scaleTime,\n [ScaleTypes.QUANTILE]: d3.scaleQuantile,\n [ScaleTypes.QUANTIZE]: d3.scaleQuantize,\n [ScaleTypes.THRESHOLD]: d3.scaleThreshold,\n [ScaleTypes.CAT]: d3.scaleOrdinal,\n};\n\n/**\n * 根据 Source 原始数据为指定字段创建 Scale,保存在 StyleAttribute 上,供下游插件使用\n */\n@injectable()\nexport default class FeatureScalePlugin implements ILayerPlugin {\n @inject(TYPES.IGlobalConfigService)\n private readonly configService: IGlobalConfigService;\n // key = field_attribute name\n private scaleCache: {\n [field: string]: IStyleScale;\n } = {};\n\n private scaleOptions: IScaleOptions = {};\n\n public apply(\n layer: ILayer,\n {\n styleAttributeService,\n }: { styleAttributeService: IStyleAttributeService },\n ) {\n layer.hooks.init.tap('FeatureScalePlugin', () => {\n this.scaleOptions = layer.getScaleOptions();\n const attributes = styleAttributeService.getLayerStyleAttributes();\n const { dataArray } = layer.getSource().data;\n if (dataArray.length === 0) {\n return;\n }\n this.caculateScalesForAttributes(attributes || [], dataArray);\n });\n\n // 检测数据是否需要更新\n layer.hooks.beforeRenderData.tap('FeatureScalePlugin', () => {\n this.scaleOptions = layer.getScaleOptions();\n const attributes = styleAttributeService.getLayerStyleAttributes();\n const { dataArray } = layer.getSource().data;\n // if (dataArray.length === 0) {\n // return;\n // }\n this.caculateScalesForAttributes(attributes || [], dataArray);\n layer.layerModelNeedUpdate = true;\n return true;\n });\n\n layer.hooks.beforeRender.tap('FeatureScalePlugin', () => {\n if (layer.layerModelNeedUpdate) {\n return;\n }\n this.scaleOptions = layer.getScaleOptions();\n const attributes = styleAttributeService.getLayerStyleAttributes();\n if (attributes) {\n const { dataArray } = layer.getSource().data;\n if (dataArray.length === 0) {\n return;\n }\n const attributesToRescale = attributes.filter(\n (attribute) => attribute.needRescale,\n );\n if (attributesToRescale.length) {\n this.caculateScalesForAttributes(attributesToRescale, dataArray);\n }\n }\n });\n }\n private isNumber(n: any) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n private caculateScalesForAttributes(\n attributes: IStyleAttribute[],\n dataArray: IParseDataItem[],\n ) {\n this.scaleCache = {};\n attributes.forEach((attribute) => {\n if (attribute.scale) {\n // 创建Scale\n const attributeScale = attribute.scale;\n const type = attribute.name;\n attributeScale.names = this.parseFields(attribute!.scale!.field || []);\n const scales: IStyleScale[] = [];\n attributeScale.names.forEach((field: string | number) => {\n scales.push(this.getOrCreateScale(field, attribute, dataArray));\n });\n\n // 为scales 设置值区间\n if (scales.some((scale) => scale.type === StyleScaleType.VARIABLE)) {\n attributeScale.type = StyleScaleType.VARIABLE;\n scales.forEach((scale) => {\n // 如果设置了回调, 这不需要设置让range\n if (!attributeScale.callback) {\n if (attributeScale.values && attributeScale.values !== 'text') {\n if (\n scale.option?.type === 'linear' &&\n attributeScale.values.length > 2\n ) {\n const tick = scale.scale.ticks(attributeScale.values.length);\n if (type === 'color') {\n scale.scale.domain(tick);\n }\n }\n scale.scale.range(attributeScale.values); // 判断常量, 默认值\n } else if (scale.option?.type === 'cat') {\n // 如果没有设置初值且 类型为cat,range ==domain;\n\n scale.scale.range(scale.option.domain);\n }\n }\n });\n } else {\n // 设置attribute 常量值 常量直接在value取值\n attributeScale.type = StyleScaleType.CONSTANT;\n attributeScale.defaultValues = scales.map((scale, index) => {\n return scale.scale(attributeScale.names[index]);\n });\n }\n attributeScale.scalers = scales.map((scale: IStyleScale) => {\n return {\n field: scale.field,\n func: scale.scale,\n option: scale.option,\n };\n });\n\n attribute.needRescale = false;\n }\n });\n }\n private getOrCreateScale(\n field: string | number,\n attribute: IStyleAttribute,\n dataArray: IParseDataItem[],\n ) {\n const scalekey = [field, attribute.name].join('_');\n const values = attribute.scale?.values;\n // if (this.scaleCache[scalekey]) {\n // return this.scaleCache[scalekey];\n // }\n const styleScale = this.createScale(\n field,\n attribute.name,\n values,\n dataArray,\n );\n // this.scaleCache[scalekey] = styleScale;\n return styleScale;\n }\n\n /**\n * @example\n * 'w*h' => ['w', 'h']\n * 'w' => ['w']\n */\n private parseFields(\n field: string[] | string | number[],\n ): string[] | number[] {\n if (Array.isArray(field)) {\n return field;\n }\n if (isString(field)) {\n return field.split('*');\n }\n return [field];\n }\n\n private createScale(\n field: string | number,\n name: string,\n values: unknown[] | string | undefined,\n data?: IParseDataItem[],\n ): IStyleScale {\n // scale 支持根据视觉通道和字段\n const scaleOption: IScale | undefined =\n this.scaleOptions[name] && this.scaleOptions[name]?.field === field\n ? this.scaleOptions[name]\n : this.scaleOptions[field];\n const styleScale: IStyleScale = {\n field,\n scale: undefined,\n type: StyleScaleType.VARIABLE,\n option: scaleOption,\n };\n\n if (!data || !data.length) {\n if (scaleOption && scaleOption.type) {\n styleScale.scale = this.createDefaultScale(scaleOption);\n } else {\n styleScale.scale = d3.scaleOrdinal([field]);\n styleScale.type = StyleScaleType.CONSTANT;\n }\n return styleScale;\n }\n const firstValue = data!.find((d) => !isNil(d[field]))?.[field];\n // 常量 Scale\n if (this.isNumber(field) || (isNil(firstValue) && !scaleOption)) {\n styleScale.scale = d3.scaleOrdinal([field]);\n styleScale.type = StyleScaleType.CONSTANT;\n } else {\n // 根据数据类型判断 默认等分位,时间,和枚举类型\n let type =\n (scaleOption && scaleOption.type) || this.getDefaultType(firstValue);\n if (values === 'text') {\n // text 为内置变 如果是文本则为cat\n type = ScaleTypes.CAT;\n }\n const cfg = this.createDefaultScaleConfig(type, field, data);\n Object.assign(cfg, scaleOption);\n styleScale.scale = this.createDefaultScale(cfg);\n styleScale.option = cfg;\n }\n return styleScale;\n }\n\n private getDefaultType(firstValue: unknown) {\n let type = ScaleTypes.LINEAR;\n if (typeof firstValue === 'string') {\n type = dateRegex.test(firstValue) ? ScaleTypes.TIME : ScaleTypes.CAT;\n }\n return type;\n }\n\n private createDefaultScaleConfig(\n type: ScaleTypeName,\n field: string | number,\n data?: IParseDataItem[],\n ) {\n const cfg: IScale = {\n type,\n };\n const values = data?.map((item) => item[field]) || [];\n // 默认类型为 Quantile Scales https://github.com/d3/d3-scale#quantile-scales\n if (type !== ScaleTypes.CAT && type !== ScaleTypes.QUANTILE) {\n cfg.domain = extent(values);\n } else if (type === ScaleTypes.CAT) {\n cfg.domain = uniq(values);\n } else if (type === ScaleTypes.QUANTILE) {\n cfg.domain = values;\n }\n return cfg;\n }\n\n private createDefaultScale({ type, domain }: IScale) {\n // @ts-ignore\n const scale = scaleMap[type]();\n if (domain) {\n scale.domain(domain);\n }\n // TODO 其他属性支持\n return scale;\n }\n}\n"],"file":"FeatureScalePlugin.js"}
1
+ {"version":3,"sources":["../../src/plugins/FeatureScalePlugin.ts"],"names":["dateRegex","scaleMap","ScaleTypes","LINEAR","d3","scaleLinear","POWER","scalePow","LOG","scaleLog","IDENTITY","scaleIdentity","TIME","scaleTime","QUANTILE","scaleQuantile","QUANTIZE","scaleQuantize","THRESHOLD","scaleThreshold","CAT","scaleOrdinal","FeatureScalePlugin","TYPES","IGlobalConfigService","layer","styleAttributeService","hooks","init","tap","scaleOptions","getScaleOptions","attributes","getLayerStyleAttributes","dataArray","getSource","data","length","caculateScalesForAttributes","beforeRenderData","layerModelNeedUpdate","beforeRender","attributesToRescale","filter","attribute","needRescale","n","isNaN","parseFloat","isFinite","scaleCache","forEach","scale","attributeScale","type","name","names","parseFields","field","scales","push","getOrCreateScale","some","StyleScaleType","VARIABLE","callback","values","option","tick","ticks","domain","range","CONSTANT","defaultValues","map","index","scalers","func","scalekey","join","styleScale","createScale","Array","isArray","split","scaleOption","undefined","createDefaultScale","firstValue","find","d","isNumber","getDefaultType","cfg","createDefaultScaleConfig","Object","assign","test","item"],"mappings":"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","sourcesContent":["import {\n IGlobalConfigService,\n ILayer,\n ILayerPlugin,\n IScale,\n IScaleOptions,\n IStyleAttribute,\n IStyleAttributeService,\n IStyleScale,\n ScaleTypeName,\n ScaleTypes,\n StyleScaleType,\n TYPES,\n} from '@antv/l7-core';\nimport { IParseDataItem } from '@antv/l7-source';\nimport { extent, ticks } from 'd3-array';\nimport * as d3 from 'd3-scale';\nimport { inject, injectable } from 'inversify';\nimport { isNil, isString, uniq } from 'lodash';\nimport 'reflect-metadata';\n\nconst dateRegex = /^(?:(?!0000)[0-9]{4}([-/.]+)(?:(?:0?[1-9]|1[0-2])\\1(?:0?[1-9]|1[0-9]|2[0-8])|(?:0?[13-9]|1[0-2])\\1(?:29|30)|(?:0?[13578]|1[02])\\1(?:31))|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)([-/.]?)0?2\\2(?:29))(\\s+([01]|([01][0-9]|2[0-3])):([0-9]|[0-5][0-9]):([0-9]|[0-5][0-9]))?$/;\n\nconst scaleMap = {\n [ScaleTypes.LINEAR]: d3.scaleLinear,\n [ScaleTypes.POWER]: d3.scalePow,\n [ScaleTypes.LOG]: d3.scaleLog,\n [ScaleTypes.IDENTITY]: d3.scaleIdentity,\n [ScaleTypes.TIME]: d3.scaleTime,\n [ScaleTypes.QUANTILE]: d3.scaleQuantile,\n [ScaleTypes.QUANTIZE]: d3.scaleQuantize,\n [ScaleTypes.THRESHOLD]: d3.scaleThreshold,\n [ScaleTypes.CAT]: d3.scaleOrdinal,\n};\n\n/**\n * 根据 Source 原始数据为指定字段创建 Scale,保存在 StyleAttribute 上,供下游插件使用\n */\n@injectable()\nexport default class FeatureScalePlugin implements ILayerPlugin {\n @inject(TYPES.IGlobalConfigService)\n private readonly configService: IGlobalConfigService;\n // key = field_attribute name\n private scaleCache: {\n [field: string]: IStyleScale;\n } = {};\n\n private scaleOptions: IScaleOptions = {};\n\n public apply(\n layer: ILayer,\n {\n styleAttributeService,\n }: { styleAttributeService: IStyleAttributeService },\n ) {\n layer.hooks.init.tap('FeatureScalePlugin', () => {\n this.scaleOptions = layer.getScaleOptions();\n const attributes = styleAttributeService.getLayerStyleAttributes();\n const { dataArray } = layer.getSource().data;\n if (dataArray.length === 0) {\n return;\n }\n this.caculateScalesForAttributes(attributes || [], dataArray);\n });\n\n // 检测数据是否需要更新\n layer.hooks.beforeRenderData.tap('FeatureScalePlugin', () => {\n this.scaleOptions = layer.getScaleOptions();\n const attributes = styleAttributeService.getLayerStyleAttributes();\n const { dataArray } = layer.getSource().data;\n this.caculateScalesForAttributes(attributes || [], dataArray);\n layer.layerModelNeedUpdate = true;\n return true;\n });\n\n layer.hooks.beforeRender.tap('FeatureScalePlugin', () => {\n if (layer.layerModelNeedUpdate) {\n return;\n }\n this.scaleOptions = layer.getScaleOptions();\n const attributes = styleAttributeService.getLayerStyleAttributes();\n if (attributes) {\n const { dataArray } = layer.getSource().data;\n if (dataArray.length === 0) {\n return;\n }\n const attributesToRescale = attributes.filter(\n (attribute) => attribute.needRescale,\n );\n if (attributesToRescale.length) {\n this.caculateScalesForAttributes(attributesToRescale, dataArray);\n }\n }\n });\n }\n private isNumber(n: any) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n private caculateScalesForAttributes(\n attributes: IStyleAttribute[],\n dataArray: IParseDataItem[],\n ) {\n this.scaleCache = {};\n attributes.forEach((attribute) => {\n if (attribute.scale) {\n // 创建Scale\n const attributeScale = attribute.scale;\n const type = attribute.name;\n attributeScale.names = this.parseFields(attribute!.scale!.field || []);\n const scales: IStyleScale[] = [];\n attributeScale.names.forEach((field: string | number) => {\n scales.push(this.getOrCreateScale(field, attribute, dataArray));\n });\n\n // 为scales 设置值区间\n if (scales.some((scale) => scale.type === StyleScaleType.VARIABLE)) {\n attributeScale.type = StyleScaleType.VARIABLE;\n scales.forEach((scale) => {\n // 如果设置了回调, 这不需要设置让range\n if (!attributeScale.callback) {\n if (attributeScale.values && attributeScale.values !== 'text') {\n if (\n scale.option?.type === 'linear' &&\n attributeScale.values.length > 2\n ) {\n const tick = scale.scale.ticks(attributeScale.values.length);\n if (type === 'color') {\n scale.scale.domain(tick);\n }\n }\n scale.scale.range(attributeScale.values); // 判断常量, 默认值\n } else if (scale.option?.type === 'cat') {\n // 如果没有设置初值且 类型为cat,range ==domain;\n\n scale.scale.range(scale.option.domain);\n }\n }\n });\n } else {\n // 设置attribute 常量值 常量直接在value取值\n attributeScale.type = StyleScaleType.CONSTANT;\n attributeScale.defaultValues = scales.map((scale, index) => {\n return scale.scale(attributeScale.names[index]);\n });\n }\n attributeScale.scalers = scales.map((scale: IStyleScale) => {\n return {\n field: scale.field,\n func: scale.scale,\n option: scale.option,\n };\n });\n\n attribute.needRescale = false;\n }\n });\n }\n private getOrCreateScale(\n field: string | number,\n attribute: IStyleAttribute,\n dataArray: IParseDataItem[],\n ) {\n const scalekey = [field, attribute.name].join('_');\n const values = attribute.scale?.values;\n // if (this.scaleCache[scalekey]) {\n // return this.scaleCache[scalekey];\n // }\n const styleScale = this.createScale(\n field,\n attribute.name,\n values,\n dataArray,\n );\n // this.scaleCache[scalekey] = styleScale;\n return styleScale;\n }\n\n /**\n * @example\n * 'w*h' => ['w', 'h']\n * 'w' => ['w']\n */\n private parseFields(\n field: string[] | string | number[],\n ): string[] | number[] {\n if (Array.isArray(field)) {\n return field;\n }\n if (isString(field)) {\n return field.split('*');\n }\n return [field];\n }\n\n private createScale(\n field: string | number,\n name: string,\n values: unknown[] | string | undefined,\n data?: IParseDataItem[],\n ): IStyleScale {\n // scale 支持根据视觉通道和字段\n const scaleOption: IScale | undefined =\n this.scaleOptions[name] && this.scaleOptions[name]?.field === field\n ? this.scaleOptions[name]\n : this.scaleOptions[field];\n const styleScale: IStyleScale = {\n field,\n scale: undefined,\n type: StyleScaleType.VARIABLE,\n option: scaleOption,\n };\n\n if (!data || !data.length) {\n if (scaleOption && scaleOption.type) {\n styleScale.scale = this.createDefaultScale(scaleOption);\n } else {\n styleScale.scale = d3.scaleOrdinal([field]);\n styleScale.type = StyleScaleType.CONSTANT;\n }\n return styleScale;\n }\n const firstValue = data!.find((d) => !isNil(d[field]))?.[field];\n // 常量 Scale\n if (this.isNumber(field) || (isNil(firstValue) && !scaleOption)) {\n styleScale.scale = d3.scaleOrdinal([field]);\n styleScale.type = StyleScaleType.CONSTANT;\n } else {\n // 根据数据类型判断 默认等分位,时间,和枚举类型\n let type =\n (scaleOption && scaleOption.type) || this.getDefaultType(firstValue);\n if (values === 'text') {\n // text 为内置变 如果是文本则为cat\n type = ScaleTypes.CAT;\n }\n const cfg = this.createDefaultScaleConfig(type, field, data);\n Object.assign(cfg, scaleOption);\n styleScale.scale = this.createDefaultScale(cfg);\n styleScale.option = cfg;\n }\n return styleScale;\n }\n\n private getDefaultType(firstValue: unknown) {\n let type = ScaleTypes.LINEAR;\n if (typeof firstValue === 'string') {\n type = dateRegex.test(firstValue) ? ScaleTypes.TIME : ScaleTypes.CAT;\n }\n return type;\n }\n\n private createDefaultScaleConfig(\n type: ScaleTypeName,\n field: string | number,\n data?: IParseDataItem[],\n ) {\n const cfg: IScale = {\n type,\n };\n const values = data?.map((item) => item[field]) || [];\n // 默认类型为 Quantile Scales https://github.com/d3/d3-scale#quantile-scales\n if (type !== ScaleTypes.CAT && type !== ScaleTypes.QUANTILE) {\n cfg.domain = extent(values);\n } else if (type === ScaleTypes.CAT) {\n cfg.domain = uniq(values);\n } else if (type === ScaleTypes.QUANTILE) {\n cfg.domain = values;\n }\n return cfg;\n }\n\n private createDefaultScale({ type, domain }: IScale) {\n // @ts-ignore\n const scale = scaleMap[type]();\n if (domain) {\n scale.domain(domain);\n }\n // TODO 其他属性支持\n return scale;\n }\n}\n"],"file":"FeatureScalePlugin.js"}
@@ -27,7 +27,7 @@ require("reflect-metadata");
27
27
 
28
28
  var _dec, _dec2, _dec3, _class, _class2, _descriptor, _descriptor2;
29
29
 
30
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
30
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
31
31
 
32
32
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
33
33
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/plugins/LayerStylePlugin.ts"],"names":["LayerStylePlugin","layer","hooks","afterInit","tap","updateLayerConfig","getLayerConfig","autoFit","fitBoundsOptions","setTimeout","fitBounds"],"mappings":";;;;;;;;;;;;;AAGA;;AACA;;;;IAKqBA,gB,WADpB,4B;;;;;;;WAEC,eAAaC,KAAb,EAA4B;AAC1BA,MAAAA,KAAK,CAACC,KAAN,CAAYC,SAAZ,CAAsBC,GAAtB,CAA0B,kBAA1B,EAA8C,YAAM;AAElDH,QAAAA,KAAK,CAACI,iBAAN,CAAwB,EAAxB;;AACA,oCAAsCJ,KAAK,CAACK,cAAN,EAAtC;AAAA,YAAQC,OAAR,yBAAQA,OAAR;AAAA,YAAiBC,gBAAjB,yBAAiBA,gBAAjB;;AACA,YAAID,OAAJ,EAAa;AACXE,UAAAA,UAAU,CAAC,YAAM;AACfR,YAAAA,KAAK,CAACS,SAAN,CAAgBF,gBAAhB;AACD,WAFS,EAEP,GAFO,CAAV;AAGD;AACF,OATD;AAUD","sourcesContent":["import { ILayer, ILayerPlugin, IMapService, TYPES } from '@antv/l7-core';\nimport Source from '@antv/l7-source';\nimport { encodePickingColor, rgb2arr } from '@antv/l7-utils';\nimport { injectable } from 'inversify';\nimport 'reflect-metadata';\n/**\n * 更新图层样式,初始图层相关配置\n */\n@injectable()\nexport default class LayerStylePlugin implements ILayerPlugin {\n public apply(layer: ILayer) {\n layer.hooks.afterInit.tap('LayerStylePlugin', () => {\n // 更新图层默认状态\n layer.updateLayerConfig({});\n const { autoFit, fitBoundsOptions } = layer.getLayerConfig();\n if (autoFit) {\n setTimeout(() => {\n layer.fitBounds(fitBoundsOptions);\n }, 100);\n }\n });\n }\n}\n"],"file":"LayerStylePlugin.js"}
1
+ {"version":3,"sources":["../../src/plugins/LayerStylePlugin.ts"],"names":["LayerStylePlugin","layer","hooks","afterInit","tap","updateLayerConfig","getLayerConfig","autoFit","fitBoundsOptions","setTimeout","fitBounds"],"mappings":";;;;;;;;;;;;;AAEA;;AACA;;;;IAKqBA,gB,WADpB,4B;;;;;;;WAEC,eAAaC,KAAb,EAA4B;AAC1BA,MAAAA,KAAK,CAACC,KAAN,CAAYC,SAAZ,CAAsBC,GAAtB,CAA0B,kBAA1B,EAA8C,YAAM;AAElDH,QAAAA,KAAK,CAACI,iBAAN,CAAwB,EAAxB;;AACA,oCAAsCJ,KAAK,CAACK,cAAN,EAAtC;AAAA,YAAQC,OAAR,yBAAQA,OAAR;AAAA,YAAiBC,gBAAjB,yBAAiBA,gBAAjB;;AACA,YAAID,OAAJ,EAAa;AACXE,UAAAA,UAAU,CAAC,YAAM;AACfR,YAAAA,KAAK,CAACS,SAAN,CAAgBF,gBAAhB;AACD,WAFS,EAEP,GAFO,CAAV;AAGD;AACF,OATD;AAUD","sourcesContent":["import { ILayer, ILayerPlugin, IMapService, TYPES } from '@antv/l7-core';\nimport { encodePickingColor, rgb2arr } from '@antv/l7-utils';\nimport { injectable } from 'inversify';\nimport 'reflect-metadata';\n/**\n * 更新图层样式,初始图层相关配置\n */\n@injectable()\nexport default class LayerStylePlugin implements ILayerPlugin {\n public apply(layer: ILayer) {\n layer.hooks.afterInit.tap('LayerStylePlugin', () => {\n // 更新图层默认状态\n layer.updateLayerConfig({});\n const { autoFit, fitBoundsOptions } = layer.getLayerConfig();\n if (autoFit) {\n setTimeout(() => {\n layer.fitBounds(fitBoundsOptions);\n }, 100);\n }\n });\n }\n}\n"],"file":"LayerStylePlugin.js"}
@@ -5,8 +5,8 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.generateLightingUniforms = generateLightingUniforms;
9
8
  exports.default = void 0;
9
+ exports.generateLightingUniforms = generateLightingUniforms;
10
10
 
11
11
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
12
12
 
@@ -22,7 +22,9 @@ require("reflect-metadata");
22
22
 
23
23
  var _dec, _class;
24
24
 
25
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
25
+ var _excluded = ["type"];
26
+
27
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
26
28
 
27
29
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
28
30
 
@@ -79,7 +81,7 @@ function generateLightingUniforms(lights) {
79
81
  lights.forEach(function (_ref, i) {
80
82
  var _ref$type = _ref.type,
81
83
  type = _ref$type === void 0 ? 'directional' : _ref$type,
82
- rest = (0, _objectWithoutProperties2.default)(_ref, ["type"]);
84
+ rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
83
85
  var lightsUniformName = lightTypeUniformMap[type].lights;
84
86
  var lightsNumUniformName = lightTypeUniformMap[type].num;
85
87
  var num = lightsMap[lightsNumUniformName];
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/plugins/LightingPlugin.ts"],"names":["lightTypeUniformMap","directional","lights","num","spot","DEFAULT_LIGHT","type","direction","ambient","diffuse","specular","DEFAULT_DIRECTIONAL_LIGHT","DEFAULT_SPOT_LIGHT","position","constant","linear","quadratic","angle","exponent","blur","COLOR_ATTRIBUTES","generateLightingUniforms","lightsMap","u_DirectionalLights","Array","fill","u_NumOfDirectionalLights","u_SpotLights","u_NumOfSpotLights","length","forEach","i","rest","lightsUniformName","lightsNumUniformName","LightingPlugin","layer","hooks","beforeRender","tap","getLayerConfig","enableLighting","models","model","addUniforms"],"mappings":"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","sourcesContent":["import {\n CameraUniform,\n CoordinateUniform,\n ICameraService,\n ICoordinateSystemService,\n ILayer,\n ILayerPlugin,\n IRendererService,\n TYPES,\n} from '@antv/l7-core';\nimport { inject, injectable } from 'inversify';\nimport 'reflect-metadata';\n\nconst lightTypeUniformMap = {\n directional: {\n lights: 'u_DirectionalLights',\n num: 'u_NumOfDirectionalLights',\n },\n spot: {\n lights: 'u_SpotLights',\n num: 'u_NumOfSpotLights',\n },\n};\n\ninterface IDirectionalLight {\n type: 'directional';\n direction: [number, number, number];\n ambient: [number, number, number];\n diffuse: [number, number, number];\n specular: [number, number, number];\n}\n\ninterface ISpotLight {\n type: 'spot';\n position: [number, number, number];\n direction: [number, number, number];\n ambient: [number, number, number];\n diffuse: [number, number, number];\n specular: [number, number, number];\n constant: number;\n linear: number;\n quadratic: number;\n angle: number;\n exponent: number;\n blur: number;\n}\n\nconst DEFAULT_LIGHT: IDirectionalLight = {\n type: 'directional',\n direction: [1, 10.5, 12],\n ambient: [0.2, 0.2, 0.2],\n diffuse: [0.6, 0.6, 0.6],\n specular: [0.1, 0.1, 0.1],\n};\n\nconst DEFAULT_DIRECTIONAL_LIGHT = {\n direction: [0, 0, 0],\n ambient: [0, 0, 0],\n diffuse: [0, 0, 0],\n specular: [0, 0, 0],\n};\n\nconst DEFAULT_SPOT_LIGHT = {\n position: [0, 0, 0],\n direction: [0, 0, 0],\n ambient: [0, 0, 0],\n diffuse: [0, 0, 0],\n specular: [0, 0, 0],\n constant: 1,\n linear: 0,\n quadratic: 0,\n angle: 14,\n exponent: 40,\n blur: 5,\n};\n\nconst COLOR_ATTRIBUTES = ['ambient', 'diffuse', 'specular'];\n\nexport function generateLightingUniforms(\n lights?: Array<Partial<IDirectionalLight | ISpotLight>>,\n) {\n const lightsMap: {\n u_DirectionalLights: Array<Omit<IDirectionalLight, 'type'>>;\n u_NumOfDirectionalLights: number;\n u_SpotLights: Array<Omit<ISpotLight, 'type'>>;\n u_NumOfSpotLights: number;\n } = {\n u_DirectionalLights: new Array(3).fill({ ...DEFAULT_DIRECTIONAL_LIGHT }),\n u_NumOfDirectionalLights: 0,\n u_SpotLights: new Array(3).fill({ ...DEFAULT_SPOT_LIGHT }),\n u_NumOfSpotLights: 0,\n };\n if (!lights || !lights.length) {\n lights = [DEFAULT_LIGHT];\n }\n lights.forEach(({ type = 'directional', ...rest }, i) => {\n const lightsUniformName = lightTypeUniformMap[type].lights;\n const lightsNumUniformName = lightTypeUniformMap[type].num;\n\n // Object.keys(rest).forEach(key => {\n // if (Util.isString(rest[key]) && COLOR_ATTRIBUTES.indexOf(key) > -1) {\n // rest[key] = ColorUtil.color2RGBA(rest[key]).slice(0, 3);\n // }\n // });\n\n // @ts-ignore\n const num = lightsMap[lightsNumUniformName];\n // @ts-ignore\n lightsMap[lightsUniformName][num] = {\n // @ts-ignore\n ...lightsMap[lightsUniformName][num],\n ...rest,\n };\n // @ts-ignore\n lightsMap[lightsNumUniformName]++;\n });\n return lightsMap;\n}\n\n/**\n * 光照 & Shadow\n */\n@injectable()\nexport default class LightingPlugin implements ILayerPlugin {\n public apply(layer: ILayer) {\n layer.hooks.beforeRender.tap('LightingPlugin', () => {\n const { enableLighting } = layer.getLayerConfig();\n if (enableLighting) {\n layer.models.forEach((model) =>\n // @ts-ignore\n model.addUniforms({\n ...generateLightingUniforms(),\n }),\n );\n }\n });\n }\n}\n"],"file":"LightingPlugin.js"}
1
+ {"version":3,"sources":["../../src/plugins/LightingPlugin.ts"],"names":["lightTypeUniformMap","directional","lights","num","spot","DEFAULT_LIGHT","type","direction","ambient","diffuse","specular","DEFAULT_DIRECTIONAL_LIGHT","DEFAULT_SPOT_LIGHT","position","constant","linear","quadratic","angle","exponent","blur","COLOR_ATTRIBUTES","generateLightingUniforms","lightsMap","u_DirectionalLights","Array","fill","u_NumOfDirectionalLights","u_SpotLights","u_NumOfSpotLights","length","forEach","i","rest","lightsUniformName","lightsNumUniformName","LightingPlugin","layer","hooks","beforeRender","tap","getLayerConfig","enableLighting","models","model","addUniforms"],"mappings":"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","sourcesContent":["import {\n CameraUniform,\n CoordinateUniform,\n ICameraService,\n ICoordinateSystemService,\n ILayer,\n ILayerPlugin,\n IRendererService,\n TYPES,\n} from '@antv/l7-core';\nimport { inject, injectable } from 'inversify';\nimport 'reflect-metadata';\n\nconst lightTypeUniformMap = {\n directional: {\n lights: 'u_DirectionalLights',\n num: 'u_NumOfDirectionalLights',\n },\n spot: {\n lights: 'u_SpotLights',\n num: 'u_NumOfSpotLights',\n },\n};\n\ninterface IDirectionalLight {\n type: 'directional';\n direction: [number, number, number];\n ambient: [number, number, number];\n diffuse: [number, number, number];\n specular: [number, number, number];\n}\n\ninterface ISpotLight {\n type: 'spot';\n position: [number, number, number];\n direction: [number, number, number];\n ambient: [number, number, number];\n diffuse: [number, number, number];\n specular: [number, number, number];\n constant: number;\n linear: number;\n quadratic: number;\n angle: number;\n exponent: number;\n blur: number;\n}\n\nconst DEFAULT_LIGHT: IDirectionalLight = {\n type: 'directional',\n direction: [1, 10.5, 12],\n ambient: [0.2, 0.2, 0.2],\n diffuse: [0.6, 0.6, 0.6],\n specular: [0.1, 0.1, 0.1],\n};\n\nconst DEFAULT_DIRECTIONAL_LIGHT = {\n direction: [0, 0, 0],\n ambient: [0, 0, 0],\n diffuse: [0, 0, 0],\n specular: [0, 0, 0],\n};\n\nconst DEFAULT_SPOT_LIGHT = {\n position: [0, 0, 0],\n direction: [0, 0, 0],\n ambient: [0, 0, 0],\n diffuse: [0, 0, 0],\n specular: [0, 0, 0],\n constant: 1,\n linear: 0,\n quadratic: 0,\n angle: 14,\n exponent: 40,\n blur: 5,\n};\n\nconst COLOR_ATTRIBUTES = ['ambient', 'diffuse', 'specular'];\n\nexport function generateLightingUniforms(\n lights?: Array<Partial<IDirectionalLight | ISpotLight>>,\n) {\n const lightsMap: {\n u_DirectionalLights: Array<Omit<IDirectionalLight, 'type'>>;\n u_NumOfDirectionalLights: number;\n u_SpotLights: Array<Omit<ISpotLight, 'type'>>;\n u_NumOfSpotLights: number;\n } = {\n u_DirectionalLights: new Array(3).fill({ ...DEFAULT_DIRECTIONAL_LIGHT }),\n u_NumOfDirectionalLights: 0,\n u_SpotLights: new Array(3).fill({ ...DEFAULT_SPOT_LIGHT }),\n u_NumOfSpotLights: 0,\n };\n if (!lights || !lights.length) {\n lights = [DEFAULT_LIGHT];\n }\n lights.forEach(({ type = 'directional', ...rest }, i) => {\n const lightsUniformName = lightTypeUniformMap[type].lights;\n const lightsNumUniformName = lightTypeUniformMap[type].num;\n\n // Object.keys(rest).forEach(key => {\n // if (Util.isString(rest[key]) && COLOR_ATTRIBUTES.indexOf(key) > -1) {\n // rest[key] = ColorUtil.color2RGBA(rest[key]).slice(0, 3);\n // }\n // });\n\n // @ts-ignore\n const num = lightsMap[lightsNumUniformName];\n // @ts-ignore\n lightsMap[lightsUniformName][num] = {\n // @ts-ignore\n ...lightsMap[lightsUniformName][num],\n ...rest,\n };\n // @ts-ignore\n lightsMap[lightsNumUniformName]++;\n });\n return lightsMap;\n}\n\n/**\n * 光照 & Shadow\n */\n@injectable()\nexport default class LightingPlugin implements ILayerPlugin {\n public apply(layer: ILayer) {\n layer.hooks.beforeRender.tap('LightingPlugin', () => {\n const { enableLighting } = layer.getLayerConfig();\n if (enableLighting) {\n layer.models.forEach((model) =>\n // @ts-ignore\n model.addUniforms({\n ...generateLightingUniforms(),\n }),\n );\n }\n });\n }\n}\n"],"file":"LightingPlugin.js"}
@@ -5,8 +5,8 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.normalizePasses = normalizePasses;
9
8
  exports.default = void 0;
9
+ exports.normalizePasses = normalizePasses;
10
10
 
11
11
  var _initializerDefineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/initializerDefineProperty"));
12
12
 
@@ -59,7 +59,7 @@ var ShaderUniformPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inv
59
59
  layer.models.forEach(function (model) {
60
60
  var _model$addUniforms;
61
61
 
62
- model.addUniforms((_model$addUniforms = {}, (0, _defineProperty2.default)(_model$addUniforms, _l7Core.CameraUniform.ProjectionMatrix, _this.cameraService.getProjectionMatrix()), (0, _defineProperty2.default)(_model$addUniforms, _l7Core.CameraUniform.ViewMatrix, _this.cameraService.getViewMatrix()), (0, _defineProperty2.default)(_model$addUniforms, _l7Core.CameraUniform.ViewProjectionMatrix, _this.cameraService.getViewProjectionMatrix()), (0, _defineProperty2.default)(_model$addUniforms, _l7Core.CameraUniform.Zoom, _this.cameraService.getZoom()), (0, _defineProperty2.default)(_model$addUniforms, _l7Core.CameraUniform.ZoomScale, _this.cameraService.getZoomScale()), (0, _defineProperty2.default)(_model$addUniforms, _l7Core.CameraUniform.FocalDistance, _this.cameraService.getFocalDistance()), (0, _defineProperty2.default)(_model$addUniforms, _l7Core.CameraUniform.CameraPosition, _this.cameraService.getCameraPosition()), (0, _defineProperty2.default)(_model$addUniforms, _l7Core.CoordinateUniform.CoordinateSystem, _this.coordinateSystemService.getCoordinateSystem()), (0, _defineProperty2.default)(_model$addUniforms, _l7Core.CoordinateUniform.ViewportCenter, _this.coordinateSystemService.getViewportCenter()), (0, _defineProperty2.default)(_model$addUniforms, _l7Core.CoordinateUniform.ViewportCenterProjection, _this.coordinateSystemService.getViewportCenterProjection()), (0, _defineProperty2.default)(_model$addUniforms, _l7Core.CoordinateUniform.PixelsPerDegree, _this.coordinateSystemService.getPixelsPerDegree()), (0, _defineProperty2.default)(_model$addUniforms, _l7Core.CoordinateUniform.PixelsPerDegree2, _this.coordinateSystemService.getPixelsPerDegree2()), (0, _defineProperty2.default)(_model$addUniforms, _l7Core.CoordinateUniform.PixelsPerMeter, _this.coordinateSystemService.getPixelsPerMeter()), (0, _defineProperty2.default)(_model$addUniforms, _l7Core.CoordinateUniform.Mvp, mvp), (0, _defineProperty2.default)(_model$addUniforms, "u_SceneCenterMKT", sceneCenterMKT), (0, _defineProperty2.default)(_model$addUniforms, "u_ViewportSize", [width, height]), (0, _defineProperty2.default)(_model$addUniforms, "u_DevicePixelRatio", window.devicePixelRatio), (0, _defineProperty2.default)(_model$addUniforms, "u_ModelMatrix", _this.cameraService.getModelMatrix()), (0, _defineProperty2.default)(_model$addUniforms, "u_PickingBuffer", layer.getLayerConfig().pickingBuffer || 0), _model$addUniforms));
62
+ model.addUniforms((_model$addUniforms = {}, (0, _defineProperty2.default)(_model$addUniforms, _l7Core.CameraUniform.ProjectionMatrix, _this.cameraService.getProjectionMatrix()), (0, _defineProperty2.default)(_model$addUniforms, _l7Core.CameraUniform.ViewMatrix, _this.cameraService.getViewMatrix()), (0, _defineProperty2.default)(_model$addUniforms, _l7Core.CameraUniform.ViewProjectionMatrix, _this.cameraService.getViewProjectionMatrix()), (0, _defineProperty2.default)(_model$addUniforms, _l7Core.CameraUniform.Zoom, _this.cameraService.getZoom()), (0, _defineProperty2.default)(_model$addUniforms, _l7Core.CameraUniform.ZoomScale, _this.cameraService.getZoomScale()), (0, _defineProperty2.default)(_model$addUniforms, _l7Core.CameraUniform.FocalDistance, _this.cameraService.getFocalDistance()), (0, _defineProperty2.default)(_model$addUniforms, _l7Core.CameraUniform.CameraPosition, _this.cameraService.getCameraPosition()), (0, _defineProperty2.default)(_model$addUniforms, _l7Core.CoordinateUniform.CoordinateSystem, _this.coordinateSystemService.getCoordinateSystem()), (0, _defineProperty2.default)(_model$addUniforms, _l7Core.CoordinateUniform.ViewportCenter, _this.coordinateSystemService.getViewportCenter()), (0, _defineProperty2.default)(_model$addUniforms, _l7Core.CoordinateUniform.ViewportCenterProjection, _this.coordinateSystemService.getViewportCenterProjection()), (0, _defineProperty2.default)(_model$addUniforms, _l7Core.CoordinateUniform.PixelsPerDegree, _this.coordinateSystemService.getPixelsPerDegree()), (0, _defineProperty2.default)(_model$addUniforms, _l7Core.CoordinateUniform.PixelsPerDegree2, _this.coordinateSystemService.getPixelsPerDegree2()), (0, _defineProperty2.default)(_model$addUniforms, _l7Core.CoordinateUniform.PixelsPerMeter, _this.coordinateSystemService.getPixelsPerMeter()), (0, _defineProperty2.default)(_model$addUniforms, _l7Core.CoordinateUniform.Mvp, mvp), (0, _defineProperty2.default)(_model$addUniforms, "u_SceneCenterMKT", sceneCenterMKT), (0, _defineProperty2.default)(_model$addUniforms, "u_ViewportSize", [width, height]), (0, _defineProperty2.default)(_model$addUniforms, "u_DevicePixelRatio", window.devicePixelRatio), (0, _defineProperty2.default)(_model$addUniforms, "u_ModelMatrix", _this.cameraService.getModelMatrix()), (0, _defineProperty2.default)(_model$addUniforms, "u_PickingBuffer", layer.getLayerConfig().pickingBuffer || 0), (0, _defineProperty2.default)(_model$addUniforms, "u_Dragging", Number(_this.mapService.dragging)), _model$addUniforms));
63
63
  });
64
64
  });
65
65
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/plugins/ShaderUniformPlugin.ts"],"names":["ShaderUniformPlugin","TYPES","ICameraService","ICoordinateSystemService","IRendererService","IMapService","layer","version","mapService","mvp","sceneCenterMKT","hooks","beforeRender","tap","coordinateSystemService","refresh","map","customCoords","getMVPMatrix","getCustomCoordCenter","rendererService","getViewportSize","width","height","models","forEach","model","addUniforms","CameraUniform","ProjectionMatrix","cameraService","getProjectionMatrix","ViewMatrix","getViewMatrix","ViewProjectionMatrix","getViewProjectionMatrix","Zoom","getZoom","ZoomScale","getZoomScale","FocalDistance","getFocalDistance","CameraPosition","getCameraPosition","CoordinateUniform","CoordinateSystem","getCoordinateSystem","ViewportCenter","getViewportCenter","ViewportCenterProjection","getViewportCenterProjection","PixelsPerDegree","getPixelsPerDegree","PixelsPerDegree2","getPixelsPerDegree2","PixelsPerMeter","getPixelsPerMeter","Mvp","window","devicePixelRatio","getModelMatrix","getLayerConfig","pickingBuffer"],"mappings":"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","sourcesContent":["import {\n CameraUniform,\n CoordinateUniform,\n ICameraService,\n ICoordinateSystemService,\n ILayer,\n ILayerPlugin,\n IMapService,\n IRendererService,\n TYPES,\n} from '@antv/l7-core';\nimport { DOM } from '@antv/l7-utils';\nimport { inject, injectable } from 'inversify';\nimport 'reflect-metadata';\n\n/**\n * 在渲染之前需要获取当前 Shader 所需 Uniform,例如:\n * 1. 从相机服务中获取 View & ProjectionMatrix,当前缩放等级等等\n * 2. 从坐标系服务中获取当前坐标系,例如是否是偏移坐标系\n * @see https://yuque.antfin-inc.com/yuqi.pyq/fgetpa/doml91\n * 3. 当前 Layer 本身的样式属性\n */\n@injectable()\nexport default class ShaderUniformPlugin implements ILayerPlugin {\n @inject(TYPES.ICameraService)\n private readonly cameraService: ICameraService;\n\n @inject(TYPES.ICoordinateSystemService)\n private readonly coordinateSystemService: ICoordinateSystemService;\n\n @inject(TYPES.IRendererService)\n private readonly rendererService: IRendererService;\n\n @inject(TYPES.IMapService)\n private readonly mapService: IMapService;\n\n public apply(layer: ILayer) {\n const version = this.mapService.version;\n\n let mvp = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]; // default matrix (for gaode2.x)\n let sceneCenterMKT = [0, 0];\n layer.hooks.beforeRender.tap('ShaderUniformPlugin', () => {\n // 重新计算坐标系参数\n this.coordinateSystemService.refresh();\n\n if (version === 'GAODE2.x') {\n // @ts-ignore\n mvp = this.mapService.map.customCoords.getMVPMatrix();\n // mvp = amapCustomCoords.getMVPMatrix()\n // @ts-ignore\n sceneCenterMKT = this.mapService.getCustomCoordCenter();\n }\n\n const { width, height } = this.rendererService.getViewportSize();\n layer.models.forEach((model) => {\n model.addUniforms({\n // 相机参数,包含 VP 矩阵、缩放等级\n [CameraUniform.ProjectionMatrix]: this.cameraService.getProjectionMatrix(),\n [CameraUniform.ViewMatrix]: this.cameraService.getViewMatrix(),\n [CameraUniform.ViewProjectionMatrix]: this.cameraService.getViewProjectionMatrix(),\n [CameraUniform.Zoom]: this.cameraService.getZoom(),\n [CameraUniform.ZoomScale]: this.cameraService.getZoomScale(),\n [CameraUniform.FocalDistance]: this.cameraService.getFocalDistance(),\n [CameraUniform.CameraPosition]: this.cameraService.getCameraPosition(),\n // 坐标系参数\n [CoordinateUniform.CoordinateSystem]: this.coordinateSystemService.getCoordinateSystem(),\n [CoordinateUniform.ViewportCenter]: this.coordinateSystemService.getViewportCenter(),\n [CoordinateUniform.ViewportCenterProjection]: this.coordinateSystemService.getViewportCenterProjection(),\n [CoordinateUniform.PixelsPerDegree]: this.coordinateSystemService.getPixelsPerDegree(),\n [CoordinateUniform.PixelsPerDegree2]: this.coordinateSystemService.getPixelsPerDegree2(),\n [CoordinateUniform.PixelsPerMeter]: this.coordinateSystemService.getPixelsPerMeter(),\n // 坐标系是高德2.0的时候单独计算\n [CoordinateUniform.Mvp]: mvp,\n u_SceneCenterMKT: sceneCenterMKT,\n // 其他参数,例如视口大小、DPR 等\n u_ViewportSize: [width, height],\n u_DevicePixelRatio: window.devicePixelRatio,\n // u_ModelMatrix: [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1],\n u_ModelMatrix: this.cameraService.getModelMatrix(),\n u_PickingBuffer: layer.getLayerConfig().pickingBuffer || 0,\n });\n });\n\n // TODO:脏检查,决定是否需要渲染\n });\n }\n}\n"],"file":"ShaderUniformPlugin.js"}
1
+ {"version":3,"sources":["../../src/plugins/ShaderUniformPlugin.ts"],"names":["ShaderUniformPlugin","TYPES","ICameraService","ICoordinateSystemService","IRendererService","IMapService","layer","version","mapService","mvp","sceneCenterMKT","hooks","beforeRender","tap","coordinateSystemService","refresh","map","customCoords","getMVPMatrix","getCustomCoordCenter","rendererService","getViewportSize","width","height","models","forEach","model","addUniforms","CameraUniform","ProjectionMatrix","cameraService","getProjectionMatrix","ViewMatrix","getViewMatrix","ViewProjectionMatrix","getViewProjectionMatrix","Zoom","getZoom","ZoomScale","getZoomScale","FocalDistance","getFocalDistance","CameraPosition","getCameraPosition","CoordinateUniform","CoordinateSystem","getCoordinateSystem","ViewportCenter","getViewportCenter","ViewportCenterProjection","getViewportCenterProjection","PixelsPerDegree","getPixelsPerDegree","PixelsPerDegree2","getPixelsPerDegree2","PixelsPerMeter","getPixelsPerMeter","Mvp","window","devicePixelRatio","getModelMatrix","getLayerConfig","pickingBuffer","Number","dragging"],"mappings":"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","sourcesContent":["import {\n CameraUniform,\n CoordinateUniform,\n ICameraService,\n ICoordinateSystemService,\n ILayer,\n ILayerPlugin,\n IMapService,\n IRendererService,\n TYPES,\n} from '@antv/l7-core';\nimport { DOM } from '@antv/l7-utils';\nimport { inject, injectable } from 'inversify';\nimport 'reflect-metadata';\n\n/**\n * 在渲染之前需要获取当前 Shader 所需 Uniform,例如:\n * 1. 从相机服务中获取 View & ProjectionMatrix,当前缩放等级等等\n * 2. 从坐标系服务中获取当前坐标系,例如是否是偏移坐标系\n * @see https://yuque.antfin-inc.com/yuqi.pyq/fgetpa/doml91\n * 3. 当前 Layer 本身的样式属性\n */\n@injectable()\nexport default class ShaderUniformPlugin implements ILayerPlugin {\n @inject(TYPES.ICameraService)\n private readonly cameraService: ICameraService;\n\n @inject(TYPES.ICoordinateSystemService)\n private readonly coordinateSystemService: ICoordinateSystemService;\n\n @inject(TYPES.IRendererService)\n private readonly rendererService: IRendererService;\n\n @inject(TYPES.IMapService)\n private readonly mapService: IMapService;\n\n public apply(layer: ILayer) {\n const version = this.mapService.version;\n\n let mvp = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]; // default matrix (for gaode2.x)\n let sceneCenterMKT = [0, 0];\n layer.hooks.beforeRender.tap('ShaderUniformPlugin', () => {\n // 重新计算坐标系参数\n this.coordinateSystemService.refresh();\n\n if (version === 'GAODE2.x') {\n // @ts-ignore\n mvp = this.mapService.map.customCoords.getMVPMatrix();\n // mvp = amapCustomCoords.getMVPMatrix()\n // @ts-ignore\n sceneCenterMKT = this.mapService.getCustomCoordCenter();\n }\n\n const { width, height } = this.rendererService.getViewportSize();\n layer.models.forEach((model) => {\n model.addUniforms({\n // 相机参数,包含 VP 矩阵、缩放等级\n [CameraUniform.ProjectionMatrix]: this.cameraService.getProjectionMatrix(),\n [CameraUniform.ViewMatrix]: this.cameraService.getViewMatrix(),\n [CameraUniform.ViewProjectionMatrix]: this.cameraService.getViewProjectionMatrix(),\n [CameraUniform.Zoom]: this.cameraService.getZoom(),\n [CameraUniform.ZoomScale]: this.cameraService.getZoomScale(),\n [CameraUniform.FocalDistance]: this.cameraService.getFocalDistance(),\n [CameraUniform.CameraPosition]: this.cameraService.getCameraPosition(),\n // 坐标系参数\n [CoordinateUniform.CoordinateSystem]: this.coordinateSystemService.getCoordinateSystem(),\n [CoordinateUniform.ViewportCenter]: this.coordinateSystemService.getViewportCenter(),\n [CoordinateUniform.ViewportCenterProjection]: this.coordinateSystemService.getViewportCenterProjection(),\n [CoordinateUniform.PixelsPerDegree]: this.coordinateSystemService.getPixelsPerDegree(),\n [CoordinateUniform.PixelsPerDegree2]: this.coordinateSystemService.getPixelsPerDegree2(),\n [CoordinateUniform.PixelsPerMeter]: this.coordinateSystemService.getPixelsPerMeter(),\n // 坐标系是高德2.0的时候单独计算\n [CoordinateUniform.Mvp]: mvp,\n u_SceneCenterMKT: sceneCenterMKT,\n // 其他参数,例如视口大小、DPR 等\n u_ViewportSize: [width, height],\n u_DevicePixelRatio: window.devicePixelRatio,\n // u_ModelMatrix: [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1],\n u_ModelMatrix: this.cameraService.getModelMatrix(),\n u_PickingBuffer: layer.getLayerConfig().pickingBuffer || 0,\n // TODO: 当前地图是否在拖动\n u_Dragging: Number(this.mapService.dragging),\n });\n });\n\n // TODO:脏检查,决定是否需要渲染\n });\n }\n}\n"],"file":"ShaderUniformPlugin.js"}
@@ -52,12 +52,12 @@ var UpdateStyleAttributePlugin = (_dec = (0, _inversify.injectable)(), _dec(_cla
52
52
  var shape = styleAttributeService.getLayerStyleAttribute('shape');
53
53
 
54
54
  if (filter && filter.needRegenerateVertices || shape && shape.needRegenerateVertices) {
55
- layer.layerModelNeedUpdate = true;
56
- attributes.forEach(function (attr) {
57
- return attr.needRegenerateVertices = false;
58
- });
59
- return;
60
- }
55
+ layer.layerModelNeedUpdate = true;
56
+ attributes.forEach(function (attr) {
57
+ return attr.needRegenerateVertices = false;
58
+ });
59
+ return;
60
+ }
61
61
 
62
62
  attributes.filter(function (attribute) {
63
63
  return attribute.needRegenerateVertices;