@antv/l7-layers 2.5.36 → 2.5.37-mini12
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.
- package/lib/core/BaseLayer.js +10 -4
- package/lib/core/BaseLayer.js.map +1 -1
- package/lib/core/BaseModel.js +1 -1
- package/lib/core/BaseModel.js.map +1 -1
- package/lib/core/shape/Path.js +5 -4
- package/lib/core/shape/Path.js.map +1 -1
- package/lib/core/shape/extrude.js +1 -1
- package/lib/core/triangulation.js +13 -9
- package/lib/core/triangulation.js.map +1 -1
- package/lib/earth/utils.js +1 -1
- package/lib/heatmap/models/heatmap.js +13 -18
- package/lib/heatmap/models/heatmap.js.map +1 -1
- package/lib/image/models/image.js +28 -7
- package/lib/image/models/image.js.map +1 -1
- package/lib/imagetile/index.js +95 -0
- package/lib/imagetile/index.js.map +1 -0
- package/lib/imagetile/models/imagetile.js +177 -0
- package/lib/imagetile/models/imagetile.js.map +1 -0
- package/lib/imagetile/models/index.js +17 -0
- package/lib/imagetile/models/index.js.map +1 -0
- package/lib/imagetile/utils/ImageTile.js +99 -0
- package/lib/imagetile/utils/ImageTile.js.map +1 -0
- package/lib/imagetile/utils/Tile.js +324 -0
- package/lib/imagetile/utils/Tile.js.map +1 -0
- package/lib/imagetile/utils/lruCache.js +109 -0
- package/lib/imagetile/utils/lruCache.js.map +1 -0
- package/lib/imagetile/utils/tileCache.js +58 -0
- package/lib/imagetile/utils/tileCache.js.map +1 -0
- package/lib/index.js +16 -8
- package/lib/index.js.map +1 -1
- package/lib/line/index.js +3 -0
- package/lib/line/index.js.map +1 -1
- package/lib/line/models/arc.js +2 -2
- package/lib/line/models/arc_3d.js +2 -2
- package/lib/line/models/arcmini.js +160 -0
- package/lib/line/models/arcmini.js.map +1 -0
- package/lib/line/models/great_circle.js +2 -2
- package/lib/line/models/index.js +3 -0
- package/lib/line/models/index.js.map +1 -1
- package/lib/line/models/line.js +2 -2
- package/lib/plugins/DataMappingPlugin.js +1 -1
- package/lib/plugins/DataSourcePlugin.js +5 -1
- package/lib/plugins/DataSourcePlugin.js.map +1 -1
- package/lib/plugins/FeatureScalePlugin.js +5 -1
- package/lib/plugins/FeatureScalePlugin.js.map +1 -1
- package/lib/plugins/LayerAnimateStylePlugin.js +1 -1
- package/lib/plugins/LayerStylePlugin.js.map +1 -1
- package/lib/plugins/LightingPlugin.js +5 -3
- package/lib/plugins/LightingPlugin.js.map +1 -1
- package/lib/plugins/MultiPassRendererPlugin.js +1 -1
- package/lib/plugins/ShaderUniformPlugin.js +3 -1
- package/lib/plugins/ShaderUniformPlugin.js.map +1 -1
- package/lib/plugins/UpdateStyleAttributePlugin.js +6 -6
- package/lib/plugins/UpdateStyleAttributePlugin.js.map +1 -1
- package/lib/point/models/image.js.map +1 -1
- package/lib/point/shape/Path.js +5 -4
- package/lib/point/shape/Path.js.map +1 -1
- package/lib/raster/raster.js +1 -1
- package/lib/utils/dataMappingStyle.js +1 -1
- package/lib/utils/extrude_polyline.js +1 -1
- package/lib/utils/polylineNormal.js +1 -1
- package/lib/utils/symbol-layout.js +1 -1
- package/package.json +7 -6
- package/CHANGELOG.md +0 -492
- package/LICENSE.md +0 -21
- package/es/citybuliding/building.d.ts +0 -17
- package/es/citybuliding/building.js +0 -79
- package/es/citybuliding/building.js.map +0 -1
- package/es/citybuliding/models/build.d.ts +0 -13
- package/es/citybuliding/models/build.js +0 -124
- package/es/citybuliding/models/build.js.map +0 -1
- package/es/core/BaseLayer.d.ts +0 -174
- package/es/core/BaseLayer.js +0 -974
- package/es/core/BaseLayer.js.map +0 -1
- package/es/core/BaseModel.d.ts +0 -135
- package/es/core/BaseModel.js +0 -412
- package/es/core/BaseModel.js.map +0 -1
- package/es/core/interface.d.ts +0 -19
- package/es/core/interface.js +0 -7
- package/es/core/interface.js.map +0 -1
- package/es/core/schema.d.ts +0 -27
- package/es/core/schema.js +0 -23
- package/es/core/schema.js.map +0 -1
- package/es/core/shape/Path.d.ts +0 -39
- package/es/core/shape/Path.js +0 -57
- package/es/core/shape/Path.js.map +0 -1
- package/es/core/shape/extrude.d.ts +0 -17
- package/es/core/shape/extrude.js +0 -143
- package/es/core/shape/extrude.js.map +0 -1
- package/es/core/triangulation.d.ts +0 -109
- package/es/core/triangulation.js +0 -328
- package/es/core/triangulation.js.map +0 -1
- package/es/earth/index.d.ts +0 -17
- package/es/earth/index.js +0 -81
- package/es/earth/index.js.map +0 -1
- package/es/earth/models/atmosphere.d.ts +0 -9
- package/es/earth/models/atmosphere.js +0 -125
- package/es/earth/models/atmosphere.js.map +0 -1
- package/es/earth/models/base.d.ts +0 -16
- package/es/earth/models/base.js +0 -193
- package/es/earth/models/base.js.map +0 -1
- package/es/earth/models/bloomsphere.d.ts +0 -9
- package/es/earth/models/bloomsphere.js +0 -125
- package/es/earth/models/bloomsphere.js.map +0 -1
- package/es/earth/utils.d.ts +0 -26
- package/es/earth/utils.js +0 -81
- package/es/earth/utils.js.map +0 -1
- package/es/glsl.d.js +0 -2
- package/es/glsl.d.js.map +0 -1
- package/es/heatmap/index.d.ts +0 -22
- package/es/heatmap/index.js +0 -123
- package/es/heatmap/index.js.map +0 -1
- package/es/heatmap/models/grid.d.ts +0 -8
- package/es/heatmap/models/grid.js +0 -90
- package/es/heatmap/models/grid.js.map +0 -1
- package/es/heatmap/models/grid3d.d.ts +0 -8
- package/es/heatmap/models/grid3d.js +0 -122
- package/es/heatmap/models/grid3d.js.map +0 -1
- package/es/heatmap/models/heatmap.d.ts +0 -24
- package/es/heatmap/models/heatmap.js +0 -399
- package/es/heatmap/models/heatmap.js.map +0 -1
- package/es/heatmap/models/hexagon.d.ts +0 -8
- package/es/heatmap/models/hexagon.js +0 -90
- package/es/heatmap/models/hexagon.js.map +0 -1
- package/es/heatmap/models/index.d.ts +0 -5
- package/es/heatmap/models/index.js +0 -13
- package/es/heatmap/models/index.js.map +0 -1
- package/es/heatmap/triangulation.d.ts +0 -5
- package/es/heatmap/triangulation.js +0 -38
- package/es/heatmap/triangulation.js.map +0 -1
- package/es/image/index.d.ts +0 -22
- package/es/image/index.js +0 -82
- package/es/image/index.js.map +0 -1
- package/es/image/models/image.d.ts +0 -18
- package/es/image/models/image.js +0 -127
- package/es/image/models/image.js.map +0 -1
- package/es/image/models/index.d.ts +0 -5
- package/es/image/models/index.js +0 -6
- package/es/image/models/index.js.map +0 -1
- package/es/index.d.ts +0 -11
- package/es/index.js +0 -39
- package/es/index.js.map +0 -1
- package/es/line/index.d.ts +0 -25
- package/es/line/index.js +0 -95
- package/es/line/index.js.map +0 -1
- package/es/line/models/arc.d.ts +0 -12
- package/es/line/models/arc.js +0 -281
- package/es/line/models/arc.js.map +0 -1
- package/es/line/models/arc_3d.d.ts +0 -12
- package/es/line/models/arc_3d.js +0 -277
- package/es/line/models/arc_3d.js.map +0 -1
- package/es/line/models/great_circle.d.ts +0 -12
- package/es/line/models/great_circle.js +0 -269
- package/es/line/models/great_circle.js.map +0 -1
- package/es/line/models/index.d.ts +0 -5
- package/es/line/models/index.js +0 -12
- package/es/line/models/index.js.map +0 -1
- package/es/line/models/line.d.ts +0 -13
- package/es/line/models/line.js +0 -342
- package/es/line/models/line.js.map +0 -1
- package/es/plugins/DataMappingPlugin.d.ts +0 -13
- package/es/plugins/DataMappingPlugin.js +0 -199
- package/es/plugins/DataMappingPlugin.js.map +0 -1
- package/es/plugins/DataSourcePlugin.d.ts +0 -7
- package/es/plugins/DataSourcePlugin.js +0 -73
- package/es/plugins/DataSourcePlugin.js.map +0 -1
- package/es/plugins/FeatureScalePlugin.d.ts +0 -26
- package/es/plugins/FeatureScalePlugin.js +0 -270
- package/es/plugins/FeatureScalePlugin.js.map +0 -1
- package/es/plugins/LayerAnimateStylePlugin.d.ts +0 -7
- package/es/plugins/LayerAnimateStylePlugin.js +0 -50
- package/es/plugins/LayerAnimateStylePlugin.js.map +0 -1
- package/es/plugins/LayerModelPlugin.d.ts +0 -8
- package/es/plugins/LayerModelPlugin.js +0 -34
- package/es/plugins/LayerModelPlugin.js.map +0 -1
- package/es/plugins/LayerStylePlugin.d.ts +0 -8
- package/es/plugins/LayerStylePlugin.js +0 -35
- package/es/plugins/LayerStylePlugin.js.map +0 -1
- package/es/plugins/LightingPlugin.d.ts +0 -36
- package/es/plugins/LightingPlugin.js +0 -100
- package/es/plugins/LightingPlugin.js.map +0 -1
- package/es/plugins/MultiPassRendererPlugin.d.ts +0 -37
- package/es/plugins/MultiPassRendererPlugin.js +0 -79
- package/es/plugins/MultiPassRendererPlugin.js.map +0 -1
- package/es/plugins/PixelPickingPlugin.d.ts +0 -8
- package/es/plugins/PixelPickingPlugin.js +0 -112
- package/es/plugins/PixelPickingPlugin.js.map +0 -1
- package/es/plugins/RegisterStyleAttributePlugin.d.ts +0 -11
- package/es/plugins/RegisterStyleAttributePlugin.js +0 -98
- package/es/plugins/RegisterStyleAttributePlugin.js.map +0 -1
- package/es/plugins/ShaderUniformPlugin.d.ts +0 -16
- package/es/plugins/ShaderUniformPlugin.js +0 -78
- package/es/plugins/ShaderUniformPlugin.js.map +0 -1
- package/es/plugins/UpdateModelPlugin.d.ts +0 -8
- package/es/plugins/UpdateModelPlugin.js +0 -27
- package/es/plugins/UpdateModelPlugin.js.map +0 -1
- package/es/plugins/UpdateStyleAttributePlugin.d.ts +0 -12
- package/es/plugins/UpdateStyleAttributePlugin.js +0 -74
- package/es/plugins/UpdateStyleAttributePlugin.js.map +0 -1
- package/es/point/index.d.ts +0 -30
- package/es/point/index.js +0 -130
- package/es/point/index.js.map +0 -1
- package/es/point/models/extrude.d.ts +0 -14
- package/es/point/models/extrude.js +0 -180
- package/es/point/models/extrude.js.map +0 -1
- package/es/point/models/fill.d.ts +0 -17
- package/es/point/models/fill.js +0 -247
- package/es/point/models/fill.js.map +0 -1
- package/es/point/models/icon-font.d.ts +0 -11
- package/es/point/models/icon-font.js +0 -181
- package/es/point/models/icon-font.js.map +0 -1
- package/es/point/models/image.d.ts +0 -11
- package/es/point/models/image.js +0 -207
- package/es/point/models/image.js.map +0 -1
- package/es/point/models/index.d.ts +0 -5
- package/es/point/models/index.js +0 -16
- package/es/point/models/index.js.map +0 -1
- package/es/point/models/normal.d.ts +0 -21
- package/es/point/models/normal.js +0 -155
- package/es/point/models/normal.js.map +0 -1
- package/es/point/models/text.d.ts +0 -56
- package/es/point/models/text.js +0 -522
- package/es/point/models/text.js.map +0 -1
- package/es/point/shape/Path.d.ts +0 -40
- package/es/point/shape/Path.js +0 -57
- package/es/point/shape/Path.js.map +0 -1
- package/es/point/shape/extrude.d.ts +0 -15
- package/es/point/shape/extrude.js +0 -58
- package/es/point/shape/extrude.js.map +0 -1
- package/es/polygon/index.d.ts +0 -22
- package/es/polygon/index.js +0 -124
- package/es/polygon/index.js.map +0 -1
- package/es/polygon/models/extrude.d.ts +0 -13
- package/es/polygon/models/extrude.js +0 -139
- package/es/polygon/models/extrude.js.map +0 -1
- package/es/polygon/models/fill.d.ts +0 -13
- package/es/polygon/models/fill.js +0 -108
- package/es/polygon/models/fill.js.map +0 -1
- package/es/polygon/models/index.d.ts +0 -5
- package/es/polygon/models/index.js +0 -20
- package/es/polygon/models/index.js.map +0 -1
- package/es/raster/buffers/triangulation.d.ts +0 -6
- package/es/raster/buffers/triangulation.js +0 -28
- package/es/raster/buffers/triangulation.js.map +0 -1
- package/es/raster/image.d.ts +0 -0
- package/es/raster/image.js +0 -2
- package/es/raster/image.js.map +0 -1
- package/es/raster/index.d.ts +0 -28
- package/es/raster/index.js +0 -83
- package/es/raster/index.js.map +0 -1
- package/es/raster/models/index.d.ts +0 -5
- package/es/raster/models/index.js +0 -7
- package/es/raster/models/index.js.map +0 -1
- package/es/raster/models/raster.d.ts +0 -19
- package/es/raster/models/raster.js +0 -152
- package/es/raster/models/raster.js.map +0 -1
- package/es/raster/raster.d.ts +0 -30
- package/es/raster/raster.js +0 -178
- package/es/raster/raster.js.map +0 -1
- package/es/raster/raster2d.d.ts +0 -27
- package/es/raster/raster2d.js +0 -158
- package/es/raster/raster2d.js.map +0 -1
- package/es/utils/blend.d.ts +0 -2
- package/es/utils/blend.js +0 -55
- package/es/utils/blend.js.map +0 -1
- package/es/utils/collision-index.d.ts +0 -47
- package/es/utils/collision-index.js +0 -87
- package/es/utils/collision-index.js.map +0 -1
- package/es/utils/dataMappingStyle.d.ts +0 -30
- package/es/utils/dataMappingStyle.js +0 -88
- package/es/utils/dataMappingStyle.js.map +0 -1
- package/es/utils/extrude_polyline.d.ts +0 -48
- package/es/utils/extrude_polyline.js +0 -405
- package/es/utils/extrude_polyline.js.map +0 -1
- package/es/utils/geo.d.ts +0 -3
- package/es/utils/geo.js +0 -24
- package/es/utils/geo.js.map +0 -1
- package/es/utils/grid-index.d.ts +0 -28
- package/es/utils/grid-index.js +0 -193
- package/es/utils/grid-index.js.map +0 -1
- package/es/utils/polylineNormal.d.ts +0 -9
- package/es/utils/polylineNormal.js +0 -171
- package/es/utils/polylineNormal.js.map +0 -1
- package/es/utils/symbol-layout.d.ts +0 -43
- package/es/utils/symbol-layout.js +0 -260
- package/es/utils/symbol-layout.js.map +0 -1
package/es/raster/raster2d.d.ts
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { ITexture2D } from '@antv/l7-core';
|
|
2
|
-
import { IColorRamp } from '@antv/l7-utils';
|
|
3
|
-
import BaseLayer from '../core/BaseLayer';
|
|
4
|
-
interface IRasterLayerStyleOptions {
|
|
5
|
-
opacity: number;
|
|
6
|
-
min: number;
|
|
7
|
-
max: number;
|
|
8
|
-
rampColors: IColorRamp;
|
|
9
|
-
}
|
|
10
|
-
export default class Raster2dLayer extends BaseLayer<IRasterLayerStyleOptions> {
|
|
11
|
-
type: string;
|
|
12
|
-
protected rasterTexture: ITexture2D;
|
|
13
|
-
protected colorTexture: ITexture2D;
|
|
14
|
-
buildModels(): void;
|
|
15
|
-
renderModels(): this;
|
|
16
|
-
protected getConfigSchema(): {
|
|
17
|
-
properties: {
|
|
18
|
-
opacity: {
|
|
19
|
-
type: string;
|
|
20
|
-
minimum: number;
|
|
21
|
-
maximum: number;
|
|
22
|
-
};
|
|
23
|
-
};
|
|
24
|
-
};
|
|
25
|
-
private registerBuiltinAttributes;
|
|
26
|
-
}
|
|
27
|
-
export {};
|
package/es/raster/raster2d.js
DELETED
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
2
|
-
import _createClass from "@babel/runtime/helpers/createClass";
|
|
3
|
-
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
|
|
4
|
-
import _inherits from "@babel/runtime/helpers/inherits";
|
|
5
|
-
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
|
|
6
|
-
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
7
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
8
|
-
|
|
9
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
10
|
-
|
|
11
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
12
|
-
|
|
13
|
-
import { AttributeType, gl } from '@antv/l7-core';
|
|
14
|
-
import { generateColorRamp } from '@antv/l7-utils';
|
|
15
|
-
import BaseLayer from '../core/BaseLayer';
|
|
16
|
-
import { RasterImageTriangulation } from '../core/triangulation';
|
|
17
|
-
var rasterImageFrag = "precision mediump float;\nuniform float u_opacity: 1.0;\nuniform sampler2D u_texture;\nuniform sampler2D u_colorTexture;\nuniform float u_min;\nuniform float u_max;\nuniform vec2 u_domain;\nuniform float u_noDataValue;\nuniform bool u_clampLow: true;\nuniform bool u_clampHigh: true;\nvarying vec2 v_texCoord;\n\nvoid main() {\n\n float value = texture2D(u_texture,vec2(v_texCoord.x,v_texCoord.y)).r;\n if (value == u_noDataValue)\n gl_FragColor = vec4(0.0, 0, 0, 0.0);\n else if ((!u_clampLow && value < u_domain[0]) || (!u_clampHigh && value > u_domain[1]))\n gl_FragColor = vec4(0, 0, 0, 0);\n else {\n float normalisedValue =(value - u_domain[0]) / (u_domain[1] -u_domain[0]);\n vec4 color = texture2D(u_colorTexture,vec2(normalisedValue, 0));\n gl_FragColor = color;\n gl_FragColor.a = gl_FragColor.a * u_opacity ;\n }\n\n\n}\n";
|
|
18
|
-
var rasterImageVert = "precision highp float;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\nattribute vec3 a_Position;\nattribute vec2 a_Uv;\nvarying vec2 v_texCoord;\n#pragma include \"projection\"\nvoid main() {\n v_texCoord = a_Uv;\n vec4 project_pos = project_position(vec4(a_Position, 1.0));\n gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy,0., 1.0));\n\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n gl_Position = u_Mvp * (vec4(project_pos.xy,0., 1.0));\n } else {\n gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy,0., 1.0));\n }\n}\n";
|
|
19
|
-
|
|
20
|
-
var Raster2dLayer = function (_BaseLayer) {
|
|
21
|
-
_inherits(Raster2dLayer, _BaseLayer);
|
|
22
|
-
|
|
23
|
-
var _super = _createSuper(Raster2dLayer);
|
|
24
|
-
|
|
25
|
-
function Raster2dLayer() {
|
|
26
|
-
var _this;
|
|
27
|
-
|
|
28
|
-
_classCallCheck(this, Raster2dLayer);
|
|
29
|
-
|
|
30
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
31
|
-
args[_key] = arguments[_key];
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
_this = _super.call.apply(_super, [this].concat(args));
|
|
35
|
-
|
|
36
|
-
_defineProperty(_assertThisInitialized(_this), "type", 'RasterLayer');
|
|
37
|
-
|
|
38
|
-
_defineProperty(_assertThisInitialized(_this), "rasterTexture", void 0);
|
|
39
|
-
|
|
40
|
-
_defineProperty(_assertThisInitialized(_this), "colorTexture", void 0);
|
|
41
|
-
|
|
42
|
-
return _this;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
_createClass(Raster2dLayer, [{
|
|
46
|
-
key: "buildModels",
|
|
47
|
-
value: function buildModels() {
|
|
48
|
-
this.registerBuiltinAttributes();
|
|
49
|
-
var source = this.getSource();
|
|
50
|
-
var createTexture2D = this.rendererService.createTexture2D;
|
|
51
|
-
var parserDataItem = this.getSource().data.dataArray[0];
|
|
52
|
-
this.rasterTexture = createTexture2D({
|
|
53
|
-
data: parserDataItem.data,
|
|
54
|
-
width: parserDataItem.width,
|
|
55
|
-
height: parserDataItem.height,
|
|
56
|
-
format: gl.LUMINANCE,
|
|
57
|
-
type: gl.FLOAT,
|
|
58
|
-
aniso: 4
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
var _this$getLayerConfig = this.getLayerConfig(),
|
|
62
|
-
rampColors = _this$getLayerConfig.rampColors;
|
|
63
|
-
|
|
64
|
-
var imageData = generateColorRamp(rampColors);
|
|
65
|
-
this.colorTexture = createTexture2D({
|
|
66
|
-
data: imageData.data,
|
|
67
|
-
width: imageData.width,
|
|
68
|
-
height: imageData.height,
|
|
69
|
-
flipY: false
|
|
70
|
-
});
|
|
71
|
-
this.models = [this.buildLayerModel({
|
|
72
|
-
moduleName: 'Raster3DImage',
|
|
73
|
-
vertexShader: rasterImageVert,
|
|
74
|
-
fragmentShader: rasterImageFrag,
|
|
75
|
-
triangulation: RasterImageTriangulation,
|
|
76
|
-
primitive: gl.TRIANGLES,
|
|
77
|
-
depth: {
|
|
78
|
-
enable: false
|
|
79
|
-
},
|
|
80
|
-
blend: {
|
|
81
|
-
enable: true,
|
|
82
|
-
func: {
|
|
83
|
-
srcRGB: gl.SRC_ALPHA,
|
|
84
|
-
srcAlpha: 1,
|
|
85
|
-
dstRGB: gl.ONE_MINUS_SRC_ALPHA,
|
|
86
|
-
dstAlpha: 1
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
})];
|
|
90
|
-
}
|
|
91
|
-
}, {
|
|
92
|
-
key: "renderModels",
|
|
93
|
-
value: function renderModels() {
|
|
94
|
-
var _this2 = this;
|
|
95
|
-
|
|
96
|
-
var _this$getLayerConfig2 = this.getLayerConfig(),
|
|
97
|
-
opacity = _this$getLayerConfig2.opacity;
|
|
98
|
-
|
|
99
|
-
var parserDataItem = this.getSource().data.dataArray[0];
|
|
100
|
-
var min = parserDataItem.min,
|
|
101
|
-
max = parserDataItem.max;
|
|
102
|
-
|
|
103
|
-
if (this.rasterTexture) {
|
|
104
|
-
this.models.forEach(function (model) {
|
|
105
|
-
return model.draw({
|
|
106
|
-
uniforms: {
|
|
107
|
-
u_opacity: opacity || 1,
|
|
108
|
-
u_texture: _this2.rasterTexture,
|
|
109
|
-
u_min: min,
|
|
110
|
-
u_max: max,
|
|
111
|
-
u_colorTexture: _this2.colorTexture
|
|
112
|
-
}
|
|
113
|
-
});
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
return this;
|
|
118
|
-
}
|
|
119
|
-
}, {
|
|
120
|
-
key: "getConfigSchema",
|
|
121
|
-
value: function getConfigSchema() {
|
|
122
|
-
return {
|
|
123
|
-
properties: {
|
|
124
|
-
opacity: {
|
|
125
|
-
type: 'number',
|
|
126
|
-
minimum: 0,
|
|
127
|
-
maximum: 1
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
};
|
|
131
|
-
}
|
|
132
|
-
}, {
|
|
133
|
-
key: "registerBuiltinAttributes",
|
|
134
|
-
value: function registerBuiltinAttributes() {
|
|
135
|
-
this.styleAttributeService.registerStyleAttribute({
|
|
136
|
-
name: 'uv',
|
|
137
|
-
type: AttributeType.Attribute,
|
|
138
|
-
descriptor: {
|
|
139
|
-
name: 'a_Uv',
|
|
140
|
-
buffer: {
|
|
141
|
-
usage: gl.DYNAMIC_DRAW,
|
|
142
|
-
data: [],
|
|
143
|
-
type: gl.FLOAT
|
|
144
|
-
},
|
|
145
|
-
size: 2,
|
|
146
|
-
update: function update(feature, featureIdx, vertex, attributeIdx) {
|
|
147
|
-
return [vertex[3], vertex[4]];
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
}]);
|
|
153
|
-
|
|
154
|
-
return Raster2dLayer;
|
|
155
|
-
}(BaseLayer);
|
|
156
|
-
|
|
157
|
-
export { Raster2dLayer as default };
|
|
158
|
-
//# sourceMappingURL=raster2d.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/raster/raster2d.ts"],"names":["AttributeType","gl","generateColorRamp","BaseLayer","RasterImageTriangulation","Raster2dLayer","registerBuiltinAttributes","source","getSource","createTexture2D","rendererService","parserDataItem","data","dataArray","rasterTexture","width","height","format","LUMINANCE","type","FLOAT","aniso","getLayerConfig","rampColors","imageData","colorTexture","flipY","models","buildLayerModel","moduleName","vertexShader","rasterImageVert","fragmentShader","rasterImageFrag","triangulation","primitive","TRIANGLES","depth","enable","blend","func","srcRGB","SRC_ALPHA","srcAlpha","dstRGB","ONE_MINUS_SRC_ALPHA","dstAlpha","opacity","min","max","forEach","model","draw","uniforms","u_opacity","u_texture","u_min","u_max","u_colorTexture","properties","minimum","maximum","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","size","update","feature","featureIdx","vertex","attributeIdx"],"mappings":"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","sourcesContent":["import { AttributeType, gl, IEncodeFeature, ITexture2D } from '@antv/l7-core';\nimport { generateColorRamp, IColorRamp } from '@antv/l7-utils';\nimport BaseLayer from '../core/BaseLayer';\nimport { RasterImageTriangulation } from '../core/triangulation';\nimport rasterImageFrag from './shaders/raster_2d_frag.glsl';\nimport rasterImageVert from './shaders/raster_2d_vert.glsl';\ninterface IRasterLayerStyleOptions {\n opacity: number;\n min: number;\n max: number;\n rampColors: IColorRamp;\n}\n\nexport default class Raster2dLayer extends BaseLayer<IRasterLayerStyleOptions> {\n public type: string = 'RasterLayer';\n protected rasterTexture: ITexture2D;\n protected colorTexture: ITexture2D;\n\n public buildModels() {\n this.registerBuiltinAttributes();\n const source = this.getSource();\n const { createTexture2D } = this.rendererService;\n const parserDataItem = this.getSource().data.dataArray[0];\n this.rasterTexture = createTexture2D({\n data: parserDataItem.data,\n width: parserDataItem.width,\n height: parserDataItem.height,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n aniso: 4,\n });\n const { rampColors } = this.getLayerConfig();\n const imageData = generateColorRamp(rampColors as IColorRamp);\n this.colorTexture = createTexture2D({\n data: imageData.data,\n width: imageData.width,\n height: imageData.height,\n flipY: false,\n });\n this.models = [\n this.buildLayerModel({\n moduleName: 'Raster3DImage',\n vertexShader: rasterImageVert,\n fragmentShader: rasterImageFrag,\n triangulation: RasterImageTriangulation,\n primitive: gl.TRIANGLES,\n depth: { enable: false },\n blend: {\n enable: true,\n func: {\n srcRGB: gl.SRC_ALPHA,\n srcAlpha: 1,\n dstRGB: gl.ONE_MINUS_SRC_ALPHA,\n dstAlpha: 1,\n },\n },\n }),\n ];\n }\n public renderModels() {\n const { opacity } = this.getLayerConfig();\n const parserDataItem = this.getSource().data.dataArray[0];\n const { min, max } = parserDataItem;\n if (this.rasterTexture) {\n this.models.forEach((model) =>\n model.draw({\n uniforms: {\n u_opacity: opacity || 1,\n u_texture: this.rasterTexture,\n u_min: min,\n u_max: max,\n u_colorTexture: this.colorTexture,\n },\n }),\n );\n }\n\n return this;\n }\n\n protected getConfigSchema() {\n return {\n properties: {\n opacity: {\n type: 'number',\n minimum: 0,\n maximum: 1,\n },\n },\n };\n }\n\n private registerBuiltinAttributes() {\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'uv',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Uv',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[3], vertex[4]];\n },\n },\n });\n }\n}\n"],"file":"raster2d.js"}
|
package/es/utils/blend.d.ts
DELETED
package/es/utils/blend.js
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
-
|
|
3
|
-
var _BlendTypes;
|
|
4
|
-
|
|
5
|
-
import { BlendType, gl } from '@antv/l7-core';
|
|
6
|
-
export var BlendTypes = (_BlendTypes = {}, _defineProperty(_BlendTypes, BlendType.additive, {
|
|
7
|
-
enable: true,
|
|
8
|
-
func: {
|
|
9
|
-
srcRGB: gl.ONE,
|
|
10
|
-
dstRGB: gl.ONE,
|
|
11
|
-
srcAlpha: 1,
|
|
12
|
-
dstAlpha: 1
|
|
13
|
-
}
|
|
14
|
-
}), _defineProperty(_BlendTypes, BlendType.none, {
|
|
15
|
-
enable: false
|
|
16
|
-
}), _defineProperty(_BlendTypes, BlendType.normal, {
|
|
17
|
-
enable: true,
|
|
18
|
-
func: {
|
|
19
|
-
srcRGB: gl.SRC_ALPHA,
|
|
20
|
-
dstRGB: gl.ONE_MINUS_SRC_ALPHA,
|
|
21
|
-
srcAlpha: 1,
|
|
22
|
-
dstAlpha: 1
|
|
23
|
-
}
|
|
24
|
-
}), _defineProperty(_BlendTypes, BlendType.subtractive, {
|
|
25
|
-
enable: true,
|
|
26
|
-
func: {
|
|
27
|
-
srcRGB: gl.ONE,
|
|
28
|
-
dstRGB: gl.ONE,
|
|
29
|
-
srcAlpha: gl.ZERO,
|
|
30
|
-
dstAlpha: gl.ONE_MINUS_SRC_COLOR
|
|
31
|
-
},
|
|
32
|
-
equation: {
|
|
33
|
-
rgb: gl.FUNC_SUBTRACT,
|
|
34
|
-
alpha: gl.FUNC_SUBTRACT
|
|
35
|
-
}
|
|
36
|
-
}), _defineProperty(_BlendTypes, BlendType.max, {
|
|
37
|
-
enable: true,
|
|
38
|
-
func: {
|
|
39
|
-
srcRGB: gl.ONE,
|
|
40
|
-
dstRGB: gl.ONE
|
|
41
|
-
},
|
|
42
|
-
equation: {
|
|
43
|
-
rgb: gl.MAX_EXT
|
|
44
|
-
}
|
|
45
|
-
}), _defineProperty(_BlendTypes, BlendType.min, {
|
|
46
|
-
enable: true,
|
|
47
|
-
func: {
|
|
48
|
-
srcRGB: gl.ONE,
|
|
49
|
-
dstRGB: gl.ONE
|
|
50
|
-
},
|
|
51
|
-
equation: {
|
|
52
|
-
rgb: gl.MIN_EXT
|
|
53
|
-
}
|
|
54
|
-
}), _BlendTypes);
|
|
55
|
-
//# sourceMappingURL=blend.js.map
|
package/es/utils/blend.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/blend.ts"],"names":["BlendType","gl","BlendTypes","additive","enable","func","srcRGB","ONE","dstRGB","srcAlpha","dstAlpha","none","normal","SRC_ALPHA","ONE_MINUS_SRC_ALPHA","subtractive","ZERO","ONE_MINUS_SRC_COLOR","equation","rgb","FUNC_SUBTRACT","alpha","max","MAX_EXT","min","MIN_EXT"],"mappings":";;;;AAAA,SAASA,SAAT,EAAoBC,EAApB,QAA0D,eAA1D;AACA,OAAO,IAAMC,UAAuB,mDACjCF,SAAS,CAACG,QADuB,EACZ;AACpBC,EAAAA,MAAM,EAAE,IADY;AAEpBC,EAAAA,IAAI,EAAE;AACJC,IAAAA,MAAM,EAAEL,EAAE,CAACM,GADP;AAEJC,IAAAA,MAAM,EAAEP,EAAE,CAACM,GAFP;AAGJE,IAAAA,QAAQ,EAAE,CAHN;AAIJC,IAAAA,QAAQ,EAAE;AAJN;AAFc,CADY,gCAUjCV,SAAS,CAACW,IAVuB,EAUhB;AAChBP,EAAAA,MAAM,EAAE;AADQ,CAVgB,gCAajCJ,SAAS,CAACY,MAbuB,EAad;AAClBR,EAAAA,MAAM,EAAE,IADU;AAElBC,EAAAA,IAAI,EAAE;AACJC,IAAAA,MAAM,EAAEL,EAAE,CAACY,SADP;AAEJL,IAAAA,MAAM,EAAEP,EAAE,CAACa,mBAFP;AAGJL,IAAAA,QAAQ,EAAE,CAHN;AAIJC,IAAAA,QAAQ,EAAE;AAJN;AAFY,CAbc,gCAsBjCV,SAAS,CAACe,WAtBuB,EAsBT;AACvBX,EAAAA,MAAM,EAAE,IADe;AAEvBC,EAAAA,IAAI,EAAE;AACJC,IAAAA,MAAM,EAAEL,EAAE,CAACM,GADP;AAEJC,IAAAA,MAAM,EAAEP,EAAE,CAACM,GAFP;AAGJE,IAAAA,QAAQ,EAAER,EAAE,CAACe,IAHT;AAIJN,IAAAA,QAAQ,EAAET,EAAE,CAACgB;AAJT,GAFiB;AAQvBC,EAAAA,QAAQ,EAAE;AACRC,IAAAA,GAAG,EAAElB,EAAE,CAACmB,aADA;AAERC,IAAAA,KAAK,EAAEpB,EAAE,CAACmB;AAFF;AARa,CAtBS,gCAmCjCpB,SAAS,CAACsB,GAnCuB,EAmCjB;AACflB,EAAAA,MAAM,EAAE,IADO;AAEfC,EAAAA,IAAI,EAAE;AACJC,IAAAA,MAAM,EAAEL,EAAE,CAACM,GADP;AAEJC,IAAAA,MAAM,EAAEP,EAAE,CAACM;AAFP,GAFS;AAMfW,EAAAA,QAAQ,EAAE;AACRC,IAAAA,GAAG,EAAElB,EAAE,CAACsB;AADA;AANK,CAnCiB,gCA6CjCvB,SAAS,CAACwB,GA7CuB,EA6CjB;AACfpB,EAAAA,MAAM,EAAE,IADO;AAEfC,EAAAA,IAAI,EAAE;AACJC,IAAAA,MAAM,EAAEL,EAAE,CAACM,GADP;AAEJC,IAAAA,MAAM,EAAEP,EAAE,CAACM;AAFP,GAFS;AAMfW,EAAAA,QAAQ,EAAE;AACRC,IAAAA,GAAG,EAAElB,EAAE,CAACwB;AADA;AANK,CA7CiB,eAA7B","sourcesContent":["import { BlendType, gl, IBlendOptions, IBlendTypes } from '@antv/l7-core';\nexport const BlendTypes: IBlendTypes = {\n [BlendType.additive]: {\n enable: true,\n func: {\n srcRGB: gl.ONE,\n dstRGB: gl.ONE,\n srcAlpha: 1,\n dstAlpha: 1,\n },\n },\n [BlendType.none]: {\n enable: false,\n },\n [BlendType.normal]: {\n enable: true,\n func: {\n srcRGB: gl.SRC_ALPHA,\n dstRGB: gl.ONE_MINUS_SRC_ALPHA,\n srcAlpha: 1,\n dstAlpha: 1,\n },\n },\n [BlendType.subtractive]: {\n enable: true,\n func: {\n srcRGB: gl.ONE,\n dstRGB: gl.ONE,\n srcAlpha: gl.ZERO,\n dstAlpha: gl.ONE_MINUS_SRC_COLOR,\n },\n equation: {\n rgb: gl.FUNC_SUBTRACT,\n alpha: gl.FUNC_SUBTRACT,\n },\n },\n [BlendType.max]: {\n enable: true,\n func: {\n srcRGB: gl.ONE,\n dstRGB: gl.ONE,\n },\n equation: {\n rgb: gl.MAX_EXT,\n },\n },\n [BlendType.min]: {\n enable: true,\n func: {\n srcRGB: gl.ONE,\n dstRGB: gl.ONE,\n },\n equation: {\n rgb: gl.MIN_EXT,\n },\n },\n};\n"],"file":"blend.js"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
export interface ICollisionBox {
|
|
2
|
-
x1: number;
|
|
3
|
-
y1: number;
|
|
4
|
-
x2: number;
|
|
5
|
-
y2: number;
|
|
6
|
-
anchorPointX: number;
|
|
7
|
-
anchorPointY: number;
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* 基于网格实现文本避让,大幅提升包围盒碰撞检测效率
|
|
11
|
-
* @see https://zhuanlan.zhihu.com/p/74373214
|
|
12
|
-
*/
|
|
13
|
-
export default class CollisionIndex {
|
|
14
|
-
private width;
|
|
15
|
-
private height;
|
|
16
|
-
private grid;
|
|
17
|
-
private viewportPadding;
|
|
18
|
-
private screenRightBoundary;
|
|
19
|
-
private screenBottomBoundary;
|
|
20
|
-
private gridRightBoundary;
|
|
21
|
-
private gridBottomBoundary;
|
|
22
|
-
constructor(width: number, height: number);
|
|
23
|
-
placeCollisionBox(collisionBox: ICollisionBox): {
|
|
24
|
-
box: number[];
|
|
25
|
-
};
|
|
26
|
-
insertCollisionBox(box: number[], featureIndex: number): void;
|
|
27
|
-
/**
|
|
28
|
-
* 后续碰撞检测都需要投影到 viewport 坐标系
|
|
29
|
-
* @param {THREE.Matrix4} mvpMatrix mvp矩阵
|
|
30
|
-
* @param {number} x P20 平面坐标X
|
|
31
|
-
* @param {number} y P20 平面坐标Y
|
|
32
|
-
* @return {Point} projectedPoint
|
|
33
|
-
*/
|
|
34
|
-
project(mvpMatrix: number[], x: number, y: number): {
|
|
35
|
-
x: number;
|
|
36
|
-
y: number;
|
|
37
|
-
};
|
|
38
|
-
/**
|
|
39
|
-
* 判断包围盒是否在整个网格内,需要加上 buffer
|
|
40
|
-
* @param {number} x1 x1
|
|
41
|
-
* @param {number} y1 y1
|
|
42
|
-
* @param {number} x2 x2
|
|
43
|
-
* @param {number} y2 y2
|
|
44
|
-
* @return {Point} isInside
|
|
45
|
-
*/
|
|
46
|
-
isInsideGrid(x1: number, y1: number, x2: number, y2: number): boolean;
|
|
47
|
-
}
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
2
|
-
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
3
|
-
import _createClass from "@babel/runtime/helpers/createClass";
|
|
4
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
5
|
-
import { mat4, vec4 } from 'gl-matrix';
|
|
6
|
-
import GridIndex from './grid-index';
|
|
7
|
-
|
|
8
|
-
var CollisionIndex = function () {
|
|
9
|
-
function CollisionIndex(width, height) {
|
|
10
|
-
_classCallCheck(this, CollisionIndex);
|
|
11
|
-
|
|
12
|
-
_defineProperty(this, "width", void 0);
|
|
13
|
-
|
|
14
|
-
_defineProperty(this, "height", void 0);
|
|
15
|
-
|
|
16
|
-
_defineProperty(this, "grid", void 0);
|
|
17
|
-
|
|
18
|
-
_defineProperty(this, "viewportPadding", 100);
|
|
19
|
-
|
|
20
|
-
_defineProperty(this, "screenRightBoundary", void 0);
|
|
21
|
-
|
|
22
|
-
_defineProperty(this, "screenBottomBoundary", void 0);
|
|
23
|
-
|
|
24
|
-
_defineProperty(this, "gridRightBoundary", void 0);
|
|
25
|
-
|
|
26
|
-
_defineProperty(this, "gridBottomBoundary", void 0);
|
|
27
|
-
|
|
28
|
-
this.width = width;
|
|
29
|
-
this.height = height;
|
|
30
|
-
this.viewportPadding = Math.max(width, height);
|
|
31
|
-
this.grid = new GridIndex(width + this.viewportPadding, height + this.viewportPadding, 25);
|
|
32
|
-
this.screenRightBoundary = width + this.viewportPadding;
|
|
33
|
-
this.screenBottomBoundary = height + this.viewportPadding;
|
|
34
|
-
this.gridRightBoundary = width + 2 * this.viewportPadding;
|
|
35
|
-
this.gridBottomBoundary = height + 2 * this.viewportPadding;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
_createClass(CollisionIndex, [{
|
|
39
|
-
key: "placeCollisionBox",
|
|
40
|
-
value: function placeCollisionBox(collisionBox) {
|
|
41
|
-
var tlX = collisionBox.x1 + collisionBox.anchorPointX + this.viewportPadding;
|
|
42
|
-
var tlY = collisionBox.y1 + collisionBox.anchorPointY + this.viewportPadding;
|
|
43
|
-
var brX = collisionBox.x2 + collisionBox.anchorPointX + this.viewportPadding;
|
|
44
|
-
var brY = collisionBox.y2 + collisionBox.anchorPointY + this.viewportPadding;
|
|
45
|
-
|
|
46
|
-
if (!this.isInsideGrid(tlX, tlY, brX, brY) || this.grid.hitTest(tlX, tlY, brX, brY)) {
|
|
47
|
-
return {
|
|
48
|
-
box: []
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
return {
|
|
53
|
-
box: [tlX, tlY, brX, brY]
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
}, {
|
|
57
|
-
key: "insertCollisionBox",
|
|
58
|
-
value: function insertCollisionBox(box, featureIndex) {
|
|
59
|
-
var key = {
|
|
60
|
-
featureIndex: featureIndex
|
|
61
|
-
};
|
|
62
|
-
this.grid.insert(key, box[0], box[1], box[2], box[3]);
|
|
63
|
-
}
|
|
64
|
-
}, {
|
|
65
|
-
key: "project",
|
|
66
|
-
value: function project(mvpMatrix, x, y) {
|
|
67
|
-
var point = vec4.fromValues(x, y, 0, 1);
|
|
68
|
-
var out = vec4.create();
|
|
69
|
-
var mat = mat4.fromValues.apply(mat4, _toConsumableArray(mvpMatrix));
|
|
70
|
-
vec4.transformMat4(out, point, mat);
|
|
71
|
-
return {
|
|
72
|
-
x: (out[0] / out[3] + 1) / 2 * this.width + this.viewportPadding,
|
|
73
|
-
y: (-out[1] / out[3] + 1) / 2 * this.height + this.viewportPadding
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
}, {
|
|
77
|
-
key: "isInsideGrid",
|
|
78
|
-
value: function isInsideGrid(x1, y1, x2, y2) {
|
|
79
|
-
return x2 >= 0 && x1 < this.gridRightBoundary && y2 >= 0 && y1 < this.gridBottomBoundary;
|
|
80
|
-
}
|
|
81
|
-
}]);
|
|
82
|
-
|
|
83
|
-
return CollisionIndex;
|
|
84
|
-
}();
|
|
85
|
-
|
|
86
|
-
export { CollisionIndex as default };
|
|
87
|
-
//# sourceMappingURL=collision-index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/collision-index.ts"],"names":["mat4","vec4","GridIndex","CollisionIndex","width","height","viewportPadding","Math","max","grid","screenRightBoundary","screenBottomBoundary","gridRightBoundary","gridBottomBoundary","collisionBox","tlX","x1","anchorPointX","tlY","y1","anchorPointY","brX","x2","brY","y2","isInsideGrid","hitTest","box","featureIndex","key","insert","mvpMatrix","x","y","point","fromValues","out","create","mat","transformMat4"],"mappings":"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","sourcesContent":["export interface ICollisionBox {\n x1: number;\n y1: number;\n x2: number;\n y2: number;\n anchorPointX: number;\n anchorPointY: number;\n}\n// @mapbox/grid-index 并没有类似 hitTest 的单纯获取碰撞检测结果的方法,query 将导致计算大量多余的包围盒结果,因此使用改良版\nimport { mat4, vec4 } from 'gl-matrix';\nimport GridIndex from './grid-index';\n/**\n * 基于网格实现文本避让,大幅提升包围盒碰撞检测效率\n * @see https://zhuanlan.zhihu.com/p/74373214\n */\nexport default class CollisionIndex {\n private width: number;\n private height: number;\n private grid: GridIndex;\n private viewportPadding: number = 100;\n private screenRightBoundary: number;\n private screenBottomBoundary: number;\n private gridRightBoundary: number;\n private gridBottomBoundary: number;\n constructor(width: number, height: number) {\n this.width = width;\n this.height = height;\n this.viewportPadding = Math.max(width, height);\n // 创建网格索引\n this.grid = new GridIndex(\n width + this.viewportPadding,\n height + this.viewportPadding,\n 25,\n );\n\n this.screenRightBoundary = width + this.viewportPadding;\n this.screenBottomBoundary = height + this.viewportPadding;\n this.gridRightBoundary = width + 2 * this.viewportPadding;\n this.gridBottomBoundary = height + 2 * this.viewportPadding;\n }\n\n public placeCollisionBox(collisionBox: ICollisionBox) {\n // const projectedPoint = this.project(\n // mvpMatrix,\n // collisionBox.anchorPointX,\n // collisionBox.anchorPointY,\n // );\n\n const tlX =\n collisionBox.x1 + collisionBox.anchorPointX + this.viewportPadding;\n const tlY =\n collisionBox.y1 + collisionBox.anchorPointY + this.viewportPadding;\n const brX =\n collisionBox.x2 + collisionBox.anchorPointX + this.viewportPadding;\n const brY =\n collisionBox.y2 + collisionBox.anchorPointY + this.viewportPadding;\n\n if (\n !this.isInsideGrid(tlX, tlY, brX, brY) ||\n this.grid.hitTest(tlX, tlY, brX, brY)\n ) {\n return {\n box: [],\n };\n }\n\n return {\n box: [tlX, tlY, brX, brY],\n };\n }\n\n public insertCollisionBox(box: number[], featureIndex: number) {\n const key = { featureIndex };\n this.grid.insert(key, box[0], box[1], box[2], box[3]);\n }\n\n /**\n * 后续碰撞检测都需要投影到 viewport 坐标系\n * @param {THREE.Matrix4} mvpMatrix mvp矩阵\n * @param {number} x P20 平面坐标X\n * @param {number} y P20 平面坐标Y\n * @return {Point} projectedPoint\n */\n public project(mvpMatrix: number[], x: number, y: number) {\n const point = vec4.fromValues(x, y, 0, 1);\n const out = vec4.create();\n // @ts-ignore\n const mat = mat4.fromValues(...mvpMatrix);\n vec4.transformMat4(out, point, mat);\n // GL 坐标系[-1, 1] -> viewport 坐标系[width, height]\n return {\n x: ((out[0] / out[3] + 1) / 2) * this.width + this.viewportPadding,\n y: ((-out[1] / out[3] + 1) / 2) * this.height + this.viewportPadding,\n };\n }\n\n /**\n * 判断包围盒是否在整个网格内,需要加上 buffer\n * @param {number} x1 x1\n * @param {number} y1 y1\n * @param {number} x2 x2\n * @param {number} y2 y2\n * @return {Point} isInside\n */\n public isInsideGrid(x1: number, y1: number, x2: number, y2: number) {\n return (\n x2 >= 0 &&\n x1 < this.gridRightBoundary &&\n y2 >= 0 &&\n y1 < this.gridBottomBoundary\n );\n }\n}\n"],"file":"collision-index.js"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { ILayer } from '@antv/l7-core';
|
|
2
|
-
/**
|
|
3
|
-
* 该文件中的工具方法主要用于对 style 中的属性进行 数据映射
|
|
4
|
-
*/
|
|
5
|
-
interface IConfigToUpdate {
|
|
6
|
-
opacity?: any;
|
|
7
|
-
strokeOpacity?: any;
|
|
8
|
-
stroke?: any;
|
|
9
|
-
strokeWidth?: any;
|
|
10
|
-
offsets?: any;
|
|
11
|
-
textOffset?: any;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* 当样式发生变化时判断是否需要进行数据映射
|
|
15
|
-
* @param configToUpdate
|
|
16
|
-
* @param layer
|
|
17
|
-
*/
|
|
18
|
-
declare function handleStyleDataMapping(configToUpdate: IConfigToUpdate, layer: any): void;
|
|
19
|
-
/**
|
|
20
|
-
* 根据传入参数 float 的类型和值做相应的操作
|
|
21
|
-
*/
|
|
22
|
-
declare function handleStyleFloat(fieldName: string, layer: ILayer, styleFloat: any): void;
|
|
23
|
-
/**
|
|
24
|
-
* 根据传入参数 stroke / color 的类型和值做相应的操作
|
|
25
|
-
* @param fieldName
|
|
26
|
-
* @param layer
|
|
27
|
-
* @param styleColor
|
|
28
|
-
*/
|
|
29
|
-
declare function handleStyleColor(fieldName: string, layer: ILayer, styleColor: any): void;
|
|
30
|
-
export { handleStyleDataMapping, handleStyleFloat, handleStyleColor };
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import _isString from "lodash/isString";
|
|
2
|
-
import _isNumber from "lodash/isNumber";
|
|
3
|
-
import _isFunction from "lodash/isFunction";
|
|
4
|
-
import _isArray from "lodash/isArray";
|
|
5
|
-
var WIDTH = 1024;
|
|
6
|
-
|
|
7
|
-
function registerStyleAttribute(fieldName, layer, field, values, updateOptions) {
|
|
8
|
-
layer.updateStyleAttribute(fieldName, field, values, updateOptions);
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
function handleStyleDataMapping(configToUpdate, layer) {
|
|
12
|
-
if (configToUpdate.opacity) {
|
|
13
|
-
handleStyleFloat('opacity', layer, configToUpdate.opacity);
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
if (configToUpdate.strokeWidth) {
|
|
17
|
-
handleStyleFloat('strokeWidth', layer, configToUpdate.strokeWidth);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
if (configToUpdate.strokeOpacity) {
|
|
21
|
-
handleStyleFloat('strokeOpacity', layer, configToUpdate.strokeOpacity);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
if (configToUpdate.stroke) {
|
|
25
|
-
handleStyleColor('stroke', layer, configToUpdate.stroke);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
if (configToUpdate.offsets) {
|
|
29
|
-
handleStyleOffsets('offsets', layer, configToUpdate.offsets);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
if (configToUpdate.textOffset) {
|
|
33
|
-
handleStyleOffsets('textOffset', layer, configToUpdate.textOffset);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
function handleStyleFloat(fieldName, layer, styleFloat) {
|
|
38
|
-
if (_isString(styleFloat)) {
|
|
39
|
-
registerStyleAttribute(fieldName, layer, styleFloat, function (value) {
|
|
40
|
-
return value;
|
|
41
|
-
});
|
|
42
|
-
} else if (_isNumber(styleFloat)) {
|
|
43
|
-
registerStyleAttribute(fieldName, layer, [styleFloat], undefined);
|
|
44
|
-
} else if (_isArray(styleFloat) && styleFloat.length === 2) {
|
|
45
|
-
if (_isString(styleFloat[0]) && _isFunction(styleFloat[1])) {
|
|
46
|
-
registerStyleAttribute(fieldName, layer, styleFloat[0], styleFloat[1]);
|
|
47
|
-
} else if (_isString(styleFloat[0]) && _isArray(styleFloat[1]) && _isNumber(styleFloat[1][0]) && _isNumber(styleFloat[1][1])) {
|
|
48
|
-
registerStyleAttribute(fieldName, layer, styleFloat[0], styleFloat[1]);
|
|
49
|
-
} else {
|
|
50
|
-
registerStyleAttribute(fieldName, layer, [1.0], undefined);
|
|
51
|
-
}
|
|
52
|
-
} else {
|
|
53
|
-
registerStyleAttribute(fieldName, layer, [1.0], undefined);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
function handleStyleOffsets(fieldName, layer, styleOffsets) {
|
|
58
|
-
if (_isString(styleOffsets)) {
|
|
59
|
-
registerStyleAttribute(fieldName, layer, styleOffsets, function (value) {
|
|
60
|
-
return value;
|
|
61
|
-
});
|
|
62
|
-
} else if (_isArray(styleOffsets) && styleOffsets.length === 2 && _isString(styleOffsets[0]) && _isFunction(styleOffsets[1])) {
|
|
63
|
-
registerStyleAttribute(fieldName, layer, styleOffsets[0], styleOffsets[1]);
|
|
64
|
-
} else if (_isArray(styleOffsets) && styleOffsets.length === 2 && _isNumber(styleOffsets[0]) && _isNumber(styleOffsets[1])) {
|
|
65
|
-
registerStyleAttribute(fieldName, layer, styleOffsets, undefined);
|
|
66
|
-
} else {
|
|
67
|
-
registerStyleAttribute(fieldName, layer, [0, 0], undefined);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
function handleStyleColor(fieldName, layer, styleColor) {
|
|
72
|
-
if (_isString(styleColor)) {
|
|
73
|
-
registerStyleAttribute(fieldName, layer, styleColor, undefined);
|
|
74
|
-
} else if (_isArray(styleColor) && styleColor.length === 2) {
|
|
75
|
-
if (_isString(styleColor[0]) && _isFunction(styleColor[1])) {
|
|
76
|
-
registerStyleAttribute(fieldName, layer, styleColor[0], styleColor[1]);
|
|
77
|
-
} else if (_isString(styleColor[0]) && _isArray(styleColor[1]) && styleColor[1].length > 0) {
|
|
78
|
-
registerStyleAttribute(fieldName, layer, styleColor[0], styleColor[1]);
|
|
79
|
-
} else {
|
|
80
|
-
registerStyleAttribute(fieldName, layer, '#fff', undefined);
|
|
81
|
-
}
|
|
82
|
-
} else {
|
|
83
|
-
registerStyleAttribute(fieldName, layer, '#fff', undefined);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
export { handleStyleDataMapping, handleStyleFloat, handleStyleColor };
|
|
88
|
-
//# sourceMappingURL=dataMappingStyle.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/dataMappingStyle.ts"],"names":["WIDTH","registerStyleAttribute","fieldName","layer","field","values","updateOptions","updateStyleAttribute","handleStyleDataMapping","configToUpdate","opacity","handleStyleFloat","strokeWidth","strokeOpacity","stroke","handleStyleColor","offsets","handleStyleOffsets","textOffset","styleFloat","value","undefined","length","styleOffsets","styleColor"],"mappings":"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","sourcesContent":["import {\n gl,\n ILayer,\n IStyleAttributeUpdateOptions,\n ITexture2D,\n StyleAttributeField,\n StyleAttributeOption,\n} from '@antv/l7-core';\nimport { rgb2arr } from '@antv/l7-utils';\nimport { isArray, isFunction, isNumber, isString } from 'lodash';\n/**\n * 该文件中的工具方法主要用于对 style 中的属性进行 数据映射\n */\n\ninterface IConfigToUpdate {\n opacity?: any;\n strokeOpacity?: any;\n stroke?: any;\n strokeWidth?: any;\n offsets?: any;\n textOffset?: any;\n}\n\n// 画布默认的宽度\nconst WIDTH = 1024;\n\n/**\n * 当 style 中使用的 opacity 不是常数的时候根据数据进行映射\n * @param field\n * @param values\n * @param updateOptions\n */\nfunction registerStyleAttribute(\n fieldName: string,\n layer: ILayer,\n field: StyleAttributeField,\n values?: StyleAttributeOption,\n updateOptions?: Partial<IStyleAttributeUpdateOptions>,\n) {\n layer.updateStyleAttribute(fieldName, field, values, updateOptions);\n}\n\n/**\n * 当样式发生变化时判断是否需要进行数据映射\n * @param configToUpdate\n * @param layer\n */\nfunction handleStyleDataMapping(configToUpdate: IConfigToUpdate, layer: any) {\n if (configToUpdate.opacity) {\n // 处理 style 中 opacity 属性的数据映射\n\n handleStyleFloat('opacity', layer, configToUpdate.opacity);\n }\n\n if (configToUpdate.strokeWidth) {\n // 处理 style 中 strokeWidth 属性的数据映射\n\n handleStyleFloat('strokeWidth', layer, configToUpdate.strokeWidth);\n }\n\n if (configToUpdate.strokeOpacity) {\n // 处理 style 中 strokeOpacity 属性的数据映射\n\n handleStyleFloat('strokeOpacity', layer, configToUpdate.strokeOpacity);\n }\n\n if (configToUpdate.stroke) {\n // 处理 style 中 stroke (strokeColor) 属性的数据映射\n handleStyleColor('stroke', layer, configToUpdate.stroke);\n }\n\n if (configToUpdate.offsets) {\n // 处理 style 中 offsets 属性的数据映射\n handleStyleOffsets('offsets', layer, configToUpdate.offsets);\n }\n\n if (configToUpdate.textOffset) {\n // 处理 style 中 textOffset 属性的数据映射\n handleStyleOffsets('textOffset', layer, configToUpdate.textOffset);\n }\n}\n\n/**\n * 根据传入参数 float 的类型和值做相应的操作\n */\nfunction handleStyleFloat(fieldName: string, layer: ILayer, styleFloat: any) {\n if (isString(styleFloat)) {\n // 如果传入的 styleFloat 是 string 类型,那么就认为其对应的是传入数据的字段\n registerStyleAttribute(fieldName, layer, styleFloat, (value: any) => {\n return value;\n });\n } else if (isNumber(styleFloat)) {\n // 传入 number、默认值处理\n registerStyleAttribute(fieldName, layer, [styleFloat], undefined);\n } else if (isArray(styleFloat) && styleFloat.length === 2) {\n // 传入的 styleFloat 是长度为 2 的数组\n if (isString(styleFloat[0]) && isFunction(styleFloat[1])) {\n // 字段回调函数 [string, callback]\n registerStyleAttribute(fieldName, layer, styleFloat[0], styleFloat[1]);\n } else if (\n isString(styleFloat[0]) &&\n isArray(styleFloat[1]) &&\n isNumber(styleFloat[1][0]) &&\n isNumber(styleFloat[1][1])\n ) {\n // 字段映射 [string, [start: number, end: number]]\n registerStyleAttribute(fieldName, layer, styleFloat[0], styleFloat[1]);\n } else {\n // 兼容\n registerStyleAttribute(fieldName, layer, [1.0], undefined);\n }\n } else {\n // 兼容\n registerStyleAttribute(fieldName, layer, [1.0], undefined);\n }\n}\n/**\n * 根据传入参数 offsets 的类型和值做相应的操作\n * @param fieldName\n * @param layer\n * @param styleOffsets\n */\nfunction handleStyleOffsets(\n fieldName: string,\n layer: ILayer,\n styleOffsets: any,\n) {\n if (isString(styleOffsets)) {\n // 如果传入的 styleOffsets 是 string 类型,那么就认为其对应的是传入数据的字段\n registerStyleAttribute(fieldName, layer, styleOffsets, (value: any) => {\n return value;\n });\n } else if (\n isArray(styleOffsets) &&\n styleOffsets.length === 2 &&\n isString(styleOffsets[0]) &&\n isFunction(styleOffsets[1])\n ) {\n // 字段回调函数 [string, callback]\n registerStyleAttribute(fieldName, layer, styleOffsets[0], styleOffsets[1]);\n } else if (\n isArray(styleOffsets) &&\n styleOffsets.length === 2 &&\n isNumber(styleOffsets[0]) &&\n isNumber(styleOffsets[1])\n ) {\n // 字段映射 [string, [start: number, end: number]]\n registerStyleAttribute(fieldName, layer, styleOffsets, undefined);\n } else {\n // 兼容\n registerStyleAttribute(fieldName, layer, [0, 0], undefined);\n }\n}\n\n/**\n * 根据传入参数 stroke / color 的类型和值做相应的操作\n * @param fieldName\n * @param layer\n * @param styleColor\n */\nfunction handleStyleColor(fieldName: string, layer: ILayer, styleColor: any) {\n if (isString(styleColor)) {\n // 如果传入的 styleColor 是 string 类型,那么就认为其是颜色值\n registerStyleAttribute(fieldName, layer, styleColor, undefined);\n } else if (isArray(styleColor) && styleColor.length === 2) {\n // 传入的 styleColor 是长度为 2 的数组\n if (isString(styleColor[0]) && isFunction(styleColor[1])) {\n // 字段回调函数 [string, callback]\n registerStyleAttribute(fieldName, layer, styleColor[0], styleColor[1]);\n } else if (\n isString(styleColor[0]) &&\n isArray(styleColor[1]) &&\n styleColor[1].length > 0\n ) {\n // 字段映射 [string, [start: string, end: string]]\n registerStyleAttribute(fieldName, layer, styleColor[0], styleColor[1]);\n } else {\n // 兼容\n registerStyleAttribute(fieldName, layer, '#fff', undefined);\n }\n } else {\n // 兼容\n registerStyleAttribute(fieldName, layer, '#fff', undefined);\n }\n}\n\nexport { handleStyleDataMapping, handleStyleFloat, handleStyleColor };\n"],"file":"dataMappingStyle.js"}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { vec2 } from 'gl-matrix';
|
|
2
|
-
export declare function computeMiter(lineTangent: vec2, miter: vec2, start: vec2, end: vec2, halfThick: number): [number, vec2];
|
|
3
|
-
export declare function computeNormal(out: vec2, dir: vec2): vec2;
|
|
4
|
-
export declare function direction(out: vec2, a: vec2, b: vec2): vec2;
|
|
5
|
-
export interface IExtrudeLineOption {
|
|
6
|
-
join: string;
|
|
7
|
-
cap: string;
|
|
8
|
-
dash: boolean;
|
|
9
|
-
closed: boolean;
|
|
10
|
-
indexOffset: number;
|
|
11
|
-
miterLimit: number;
|
|
12
|
-
thickness: number;
|
|
13
|
-
}
|
|
14
|
-
export default class ExtrudePolyline {
|
|
15
|
-
complex: {
|
|
16
|
-
positions: number[];
|
|
17
|
-
indices: number[];
|
|
18
|
-
normals: number[];
|
|
19
|
-
startIndex: number;
|
|
20
|
-
};
|
|
21
|
-
private join;
|
|
22
|
-
private cap;
|
|
23
|
-
private miterLimit;
|
|
24
|
-
private thickness;
|
|
25
|
-
private normal;
|
|
26
|
-
private lastFlip;
|
|
27
|
-
private miter;
|
|
28
|
-
private started;
|
|
29
|
-
private dash;
|
|
30
|
-
private totalDistance;
|
|
31
|
-
constructor(opts?: Partial<IExtrudeLineOption>);
|
|
32
|
-
extrude_gaode2(points: number[][], originPoints: number[][]): {
|
|
33
|
-
positions: number[];
|
|
34
|
-
indices: number[];
|
|
35
|
-
normals: number[];
|
|
36
|
-
startIndex: number;
|
|
37
|
-
};
|
|
38
|
-
extrude(points: number[][]): {
|
|
39
|
-
positions: number[];
|
|
40
|
-
indices: number[];
|
|
41
|
-
normals: number[];
|
|
42
|
-
startIndex: number;
|
|
43
|
-
};
|
|
44
|
-
private segment_gaode2;
|
|
45
|
-
private segment;
|
|
46
|
-
private extrusions;
|
|
47
|
-
private lineSegmentDistance;
|
|
48
|
-
}
|