@antv/l7-layers 2.7.29 → 2.7.30
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/es/point/index.d.ts +1 -1
- package/es/point/index.js +6 -1
- package/es/point/index.js.map +1 -1
- package/es/point/models/fillmage.d.ts +29 -0
- package/es/point/models/fillmage.js +319 -0
- package/es/point/models/fillmage.js.map +1 -0
- package/es/point/models/index.d.ts +1 -1
- package/es/point/models/index.js +2 -0
- package/es/point/models/index.js.map +1 -1
- package/lib/point/index.js +6 -1
- package/lib/point/index.js.map +1 -1
- package/lib/point/models/fillmage.js +335 -0
- package/lib/point/models/fillmage.js.map +1 -0
- package/lib/point/models/index.js +3 -0
- package/lib/point/models/index.js.map +1 -1
- package/package.json +5 -5
package/es/point/index.d.ts
CHANGED
package/es/point/index.js
CHANGED
|
@@ -110,6 +110,7 @@ var PointLayer = function (_BaseLayer) {
|
|
|
110
110
|
value: function getDefaultConfig() {
|
|
111
111
|
var type = this.getModelType();
|
|
112
112
|
var defaultConfig = {
|
|
113
|
+
fillImage: {},
|
|
113
114
|
normal: {
|
|
114
115
|
blend: 'additive'
|
|
115
116
|
},
|
|
@@ -129,7 +130,7 @@ var PointLayer = function (_BaseLayer) {
|
|
|
129
130
|
}, {
|
|
130
131
|
key: "getModelType",
|
|
131
132
|
value: function getModelType() {
|
|
132
|
-
var PointTypes = ['fill', 'image', 'normal', 'simplePoint', 'extrude', 'text', 'icon'];
|
|
133
|
+
var PointTypes = ['fillImage', 'fill', 'image', 'normal', 'simplePoint', 'extrude', 'text', 'icon'];
|
|
133
134
|
|
|
134
135
|
if (this.layerType && PointTypes.includes(this.layerType)) {
|
|
135
136
|
return this.layerType;
|
|
@@ -159,6 +160,10 @@ var PointLayer = function (_BaseLayer) {
|
|
|
159
160
|
return 'simplePoint';
|
|
160
161
|
}
|
|
161
162
|
|
|
163
|
+
if (shape === 'fillImage') {
|
|
164
|
+
return 'fillImage';
|
|
165
|
+
}
|
|
166
|
+
|
|
162
167
|
if ((shape2d === null || shape2d === void 0 ? void 0 : shape2d.indexOf(shape)) !== -1) {
|
|
163
168
|
return 'fill';
|
|
164
169
|
}
|
package/es/point/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/point/index.ts"],"names":["BaseLayer","PointModels","PointLayer","modelType","getModelType","layerModel","models","initModels","buildModels","shapeOption","field","values","getLayerConfig","shape2d","shape3d","iconMap","iconService","getIconMap","indexOf","Array","v","hasOwnProperty","properties","opacity","type","minimum","maximum","defaultConfig","normal","blend","simplePoint","fill","extrude","image","icon","text","PointTypes","layerType","includes","layerData","getEncodedData","item","find","fe","getModelTypeWillEmptyData","shape","fontService","getGlyph"],"mappings":";;;;;;;;;;;;;;;;;;AACA,OAAOA,SAAP,MAAsB,mBAAtB;AAEA,OAAOC,WAAP,MAAuC,gBAAvC;;IAEqBC,U;;;;;;;;;;;;;;;;2DACG,Y;;;;;;;WACtB,uBAAqB;AACnB,UAAMC,SAAS,GAAG,KAAKC,YAAL,EAAlB;AACA,WAAKC,UAAL,GAAkB,IAAIJ,WAAW,CAACE,SAAD,CAAf,CAA2B,IAA3B,CAAlB;AACA,WAAKG,MAAL,GAAc,KAAKD,UAAL,CAAgBE,UAAhB,EAAd;AACD;;;WACD,yBAAuB;AACrB,WAAKD,MAAL,GAAc,KAAKD,UAAL,CAAgBG,WAAhB,EAAd;AACD;;;WAMD,qCAA8C;AAC5C,UAAI,KAAKC,WAAT,EAAsB;AACpB,gCAA0B,KAAKA,WAA/B;AAAA,YAAQC,KAAR,qBAAQA,KAAR;AAAA,YAAeC,MAAf,qBAAeA,MAAf;;AACA,mCAA6B,KAAKC,cAAL,EAA7B;AAAA,YAAQC,OAAR,wBAAQA,OAAR;AAAA,YAAiBC,OAAjB,wBAAiBA,OAAjB;;AAEA,YAAMC,OAAO,GAAG,KAAKC,WAAL,CAAiBC,UAAjB,EAAhB;;AAEA,YAAIP,KAAK,IAAI,CAAAG,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEK,OAAT,CAAiBR,KAAjB,OAAsC,CAAC,CAApD,EAAuD;AACrD,iBAAO,MAAP;AACD;;AAED,YAAIC,MAAM,IAAIA,MAAM,YAAYQ,KAAhC,EAAuC;AAAA,qDACrBR,MADqB;AAAA;;AAAA;AACrC,gEAAwB;AAAA,kBAAbS,CAAa;;AACtB,kBAAI,OAAOA,CAAP,KAAa,QAAb,IAAyBL,OAAO,CAACM,cAAR,CAAuBD,CAAvB,CAA7B,EAAkE;AAChE,uBAAO,OAAP;AACD;AACF;AALoC;AAAA;AAAA;AAAA;AAAA;AAMtC;AACF;;AACD,aAAO,QAAP;AACD;;;WACD,2BAA4B;AAC1B,aAAO;AACLE,QAAAA,UAAU,EAAE;AACVC,UAAAA,OAAO,EAAE;AACPC,YAAAA,IAAI,EAAE,QADC;AAEPC,YAAAA,OAAO,EAAE,CAFF;AAGPC,YAAAA,OAAO,EAAE;AAHF;AADC;AADP,OAAP;AASD;;;WACD,4BAA6B;AAC3B,UAAMF,IAAI,GAAG,KAAKpB,YAAL,EAAb;AACA,UAAMuB,aAAa,GAAG;AACpBC,QAAAA,MAAM,EAAE;AACNC,UAAAA,KAAK,EAAE;AADD,
|
|
1
|
+
{"version":3,"sources":["../../src/point/index.ts"],"names":["BaseLayer","PointModels","PointLayer","modelType","getModelType","layerModel","models","initModels","buildModels","shapeOption","field","values","getLayerConfig","shape2d","shape3d","iconMap","iconService","getIconMap","indexOf","Array","v","hasOwnProperty","properties","opacity","type","minimum","maximum","defaultConfig","fillImage","normal","blend","simplePoint","fill","extrude","image","icon","text","PointTypes","layerType","includes","layerData","getEncodedData","item","find","fe","getModelTypeWillEmptyData","shape","fontService","getGlyph"],"mappings":"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","sourcesContent":["import { IEncodeFeature } from '@antv/l7-core';\nimport BaseLayer from '../core/BaseLayer';\nimport { IPointLayerStyleOptions } from '../core/interface';\nimport PointModels, { PointType } from './models/index';\n\nexport default class PointLayer extends BaseLayer<IPointLayerStyleOptions> {\n public type: string = 'PointLayer';\n public buildModels() {\n const modelType = this.getModelType();\n this.layerModel = new PointModels[modelType](this);\n this.models = this.layerModel.initModels();\n }\n public rebuildModels() {\n this.models = this.layerModel.buildModels();\n }\n\n /**\n * 在未传入数据的时候判断点图层的 shape 类型\n * @returns\n */\n public getModelTypeWillEmptyData(): PointType {\n if (this.shapeOption) {\n const { field, values } = this.shapeOption;\n const { shape2d, shape3d } = this.getLayerConfig();\n\n const iconMap = this.iconService.getIconMap();\n\n if (field && shape2d?.indexOf(field as string) !== -1) {\n return 'fill';\n }\n\n if (values && values instanceof Array) {\n for (const v of values) {\n if (typeof v === 'string' && iconMap.hasOwnProperty(v as string)) {\n return 'image';\n }\n }\n }\n }\n return 'normal';\n }\n protected getConfigSchema() {\n return {\n properties: {\n opacity: {\n type: 'number',\n minimum: 0,\n maximum: 1,\n },\n },\n };\n }\n protected getDefaultConfig() {\n const type = this.getModelType();\n const defaultConfig = {\n fillImage: {},\n normal: {\n blend: 'additive',\n },\n simplePoint: {},\n fill: { blend: 'normal' },\n extrude: {},\n image: {},\n icon: {},\n text: {\n blend: 'normal',\n },\n };\n return defaultConfig[type];\n }\n\n protected getModelType(): PointType {\n const PointTypes = [\n 'fillImage',\n 'fill',\n 'image',\n 'normal',\n 'simplePoint',\n 'extrude',\n 'text',\n 'icon',\n ];\n if (this.layerType && PointTypes.includes(this.layerType)) {\n return this.layerType as PointType;\n }\n // pointlayer\n // 2D、 3d、 shape、image、text、normal、\n const layerData = this.getEncodedData();\n const { shape2d, shape3d } = this.getLayerConfig();\n const iconMap = this.iconService.getIconMap();\n const item = layerData.find((fe: IEncodeFeature) => {\n return fe.hasOwnProperty('shape');\n });\n if (!item) {\n // return 'normal';\n return this.getModelTypeWillEmptyData();\n } else {\n const shape = item.shape;\n if (shape === 'dot') {\n return 'normal';\n }\n if (shape === 'simple') {\n return 'simplePoint';\n }\n if (shape === 'fillImage') {\n return 'fillImage';\n }\n if (shape2d?.indexOf(shape as string) !== -1) {\n return 'fill';\n }\n if (shape3d?.indexOf(shape as string) !== -1) {\n return 'extrude';\n }\n if (iconMap.hasOwnProperty(shape as string)) {\n return 'image';\n }\n if (this.fontService.getGlyph(shape as string) !== '') {\n return 'icon';\n }\n return 'text';\n }\n }\n}\n"],"file":"index.js"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { IAttribute, IElements, IModel, IModelUniform } from '@antv/l7-core';
|
|
2
|
+
import BaseModel from '../../core/BaseModel';
|
|
3
|
+
export default class FillImageModel extends BaseModel {
|
|
4
|
+
meter2coord: number;
|
|
5
|
+
private texture;
|
|
6
|
+
private isMeter;
|
|
7
|
+
getUninforms(): IModelUniform;
|
|
8
|
+
getAttribute(): {
|
|
9
|
+
attributes: {
|
|
10
|
+
[attributeName: string]: IAttribute;
|
|
11
|
+
};
|
|
12
|
+
elements: IElements;
|
|
13
|
+
};
|
|
14
|
+
initModels(): IModel[];
|
|
15
|
+
/**
|
|
16
|
+
* 计算等面积点图层(unit meter)笛卡尔坐标标度与世界坐标标度的比例
|
|
17
|
+
* @returns
|
|
18
|
+
*/
|
|
19
|
+
calMeter2Coord(): void;
|
|
20
|
+
buildModels(): IModel[];
|
|
21
|
+
getShaders(): {
|
|
22
|
+
frag: string;
|
|
23
|
+
vert: string;
|
|
24
|
+
type: string;
|
|
25
|
+
};
|
|
26
|
+
clearModels(): void;
|
|
27
|
+
protected registerBuiltinAttributes(): void;
|
|
28
|
+
private updateTexture;
|
|
29
|
+
}
|
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
|
+
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
3
|
+
import _createClass from "@babel/runtime/helpers/createClass";
|
|
4
|
+
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
|
|
5
|
+
import _inherits from "@babel/runtime/helpers/inherits";
|
|
6
|
+
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
|
|
7
|
+
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
8
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
9
|
+
import _isNumber from "lodash/isNumber";
|
|
10
|
+
|
|
11
|
+
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); }; }
|
|
12
|
+
|
|
13
|
+
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; } }
|
|
14
|
+
|
|
15
|
+
import { AttributeType, gl } from '@antv/l7-core';
|
|
16
|
+
import { getMask } from '@antv/l7-utils';
|
|
17
|
+
import BaseModel from '../../core/BaseModel';
|
|
18
|
+
import { PointFillTriangulation } from '../../core/triangulation';
|
|
19
|
+
var pointFillFrag = "uniform sampler2D u_texture;\nuniform vec2 u_textSize;\n\nuniform float u_additive;\n\nvarying mat4 styleMappingMat; // \u4F20\u9012\u4ECE\u7247\u5143\u4E2D\u4F20\u9012\u7684\u6620\u5C04\u6570\u636E\n\nvarying float v_radius;\n\n#pragma include \"sdf_2d\"\n#pragma include \"picking\"\nvarying vec2 v_uv; // \u672C\u8EAB\u7684 uv \u5750\u6807\nvarying vec2 v_Iconuv;\n\nvoid main() {\n\n float opacity = styleMappingMat[0][0];\n\n vec2 pos = v_Iconuv / u_textSize + v_uv / u_textSize * 64.;\n gl_FragColor = texture2D(u_texture, pos);\n gl_FragColor.a *= opacity;\n\n gl_FragColor = filterColor(gl_FragColor);\n}\n";
|
|
20
|
+
var pointFillVert = "attribute vec4 a_Color;\nattribute vec3 a_Position;\nattribute vec3 a_Extrude;\nattribute float a_Size;\nattribute vec2 a_Uv;\n\nvarying mat4 styleMappingMat; // \u7528\u4E8E\u5C06\u5728\u9876\u70B9\u7740\u8272\u5668\u4E2D\u8BA1\u7B97\u597D\u7684\u6837\u5F0F\u503C\u4F20\u9012\u7ED9\u7247\u5143\n\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\nuniform float u_isMeter;\n\nvarying float v_radius;\nvarying vec2 v_uv; // \u672C\u8EAB\u7684 uv \u5750\u6807\nvarying vec2 v_Iconuv; // icon \u8D34\u56FE\u7684 uv \u5750\u6807\n\nuniform float u_opacity : 1;\nuniform vec2 u_offsets;\n\n#pragma include \"styleMapping\"\n#pragma include \"styleMappingCalOpacity\"\n\n#pragma include \"projection\"\n#pragma include \"picking\"\n\n\nvoid main() {\n vec3 extrude = a_Extrude;\n\n v_uv = (a_Extrude.xy + 1.0)/2.0;\n v_uv.y = 1.0 - v_uv.y;\n v_Iconuv = a_Uv;\n\n // cal style mapping - \u6570\u636E\u7EB9\u7406\u6620\u5C04\u90E8\u5206\u7684\u8BA1\u7B97\n styleMappingMat = mat4(\n 0.0, 0.0, 0.0, 0.0, // opacity - empty - empty - empty\n 0.0, 0.0, 0.0, 0.0, // empty - empty - empty - empty\n 0.0, 0.0, 0.0, 0.0, // offsets[0] - offsets[1]\n 0.0, 0.0, 0.0, 0.0\n );\n\n float rowCount = u_cellTypeLayout[0][0]; // \u5F53\u524D\u7684\u6570\u636E\u7EB9\u7406\u6709\u51E0\u884C\n float columnCount = u_cellTypeLayout[0][1]; // \u5F53\u770B\u5230\u6570\u636E\u7EB9\u7406\u6709\u51E0\u5217\n float columnWidth = 1.0/columnCount; // \u5217\u5BBD\n float rowHeight = 1.0/rowCount; // \u884C\u9AD8\n float cellCount = calCellCount(); // opacity - strokeOpacity - strokeWidth - stroke - offsets\n float id = a_vertexId; // \u7B2Cn\u4E2A\u9876\u70B9\n float cellCurrentRow = floor(id * cellCount / columnCount) + 1.0; // \u8D77\u59CB\u70B9\u5728\u7B2C\u51E0\u884C\n float cellCurrentColumn = mod(id * cellCount, columnCount) + 1.0; // \u8D77\u59CB\u70B9\u5728\u7B2C\u51E0\u5217\n \n // cell \u56FA\u5B9A\u987A\u5E8F opacity -> strokeOpacity -> strokeWidth -> stroke ... \n // \u6309\u987A\u5E8F\u4ECE cell \u4E2D\u53D6\u503C\u3001\u82E5\u6CA1\u6709\u5219\u81EA\u52A8\u5F80\u4E0B\u53D6\u503C\n float textureOffset = 0.0; // \u5728 cell \u4E2D\u53D6\u503C\u7684\u504F\u79FB\u91CF\n\n vec2 opacityAndOffset = calOpacityAndOffset(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset, columnWidth, rowHeight);\n styleMappingMat[0][0] = opacityAndOffset.r;\n textureOffset = opacityAndOffset.g;\n\n vec2 textrueOffsets = vec2(0.0, 0.0);\n if(hasOffsets()) {\n vec2 valueXPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);\n textrueOffsets.r = pos2value(valueXPos, columnWidth, rowHeight); // x\n textureOffset += 1.0;\n\n vec2 valueYPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);\n textrueOffsets.g = pos2value(valueYPos, columnWidth, rowHeight); // x\n textureOffset += 1.0;\n } else {\n textrueOffsets = u_offsets;\n }\n\n // cal style mapping\n\n // radius(16-bit)\n v_radius = a_Size;\n\n // TODO: billboard\n // anti-alias\n \n\n vec2 offset = (extrude.xy * (a_Size) + textrueOffsets);\n vec3 aPosition = a_Position;\n if(u_isMeter < 1.0) {\n // \u4E0D\u4EE5\u7C73\u4E3A\u5B9E\u9645\u5355\u4F4D\n offset = project_pixel(offset);\n } else {\n // \u4EE5\u7C73\u4E3A\u5B9E\u9645\u5355\u4F4D\n\n if(u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) {\n aPosition.xy += offset;\n offset.x = 0.0;\n offset.y = 0.0;\n }\n }\n\n\n // vec4 project_pos = project_position(vec4(a_Position.xy, 0.0, 1.0));\n vec4 project_pos = project_position(vec4(aPosition.xy, 0.0, 1.0));\n // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, project_pixel(setPickingOrder(0.0)), 1.0));\n\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n gl_Position = u_Mvp * vec4(project_pos.xy + offset, 0.0, 1.0);\n } else {\n gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, project_pixel(setPickingOrder(0.0)), 1.0));\n }\n \n // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, 0.0, 1.0));\n\n setPickingColor(a_PickingColor);\n}\n";
|
|
21
|
+
import { Version } from '@antv/l7-maps';
|
|
22
|
+
|
|
23
|
+
var FillImageModel = function (_BaseModel) {
|
|
24
|
+
_inherits(FillImageModel, _BaseModel);
|
|
25
|
+
|
|
26
|
+
var _super = _createSuper(FillImageModel);
|
|
27
|
+
|
|
28
|
+
function FillImageModel() {
|
|
29
|
+
var _this;
|
|
30
|
+
|
|
31
|
+
_classCallCheck(this, FillImageModel);
|
|
32
|
+
|
|
33
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
34
|
+
args[_key] = arguments[_key];
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
38
|
+
|
|
39
|
+
_defineProperty(_assertThisInitialized(_this), "meter2coord", 1);
|
|
40
|
+
|
|
41
|
+
_defineProperty(_assertThisInitialized(_this), "texture", void 0);
|
|
42
|
+
|
|
43
|
+
_defineProperty(_assertThisInitialized(_this), "isMeter", false);
|
|
44
|
+
|
|
45
|
+
_defineProperty(_assertThisInitialized(_this), "updateTexture", function () {
|
|
46
|
+
var createTexture2D = _this.rendererService.createTexture2D;
|
|
47
|
+
|
|
48
|
+
if (_this.texture) {
|
|
49
|
+
_this.texture.update({
|
|
50
|
+
data: _this.iconService.getCanvas(),
|
|
51
|
+
mag: 'linear',
|
|
52
|
+
min: 'linear mipmap nearest',
|
|
53
|
+
mipmap: true
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
_this.layer.renderLayers();
|
|
57
|
+
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
_this.texture = createTexture2D({
|
|
62
|
+
data: _this.iconService.getCanvas(),
|
|
63
|
+
mag: gl.LINEAR,
|
|
64
|
+
min: gl.LINEAR_MIPMAP_LINEAR,
|
|
65
|
+
premultiplyAlpha: false,
|
|
66
|
+
width: 1024,
|
|
67
|
+
height: _this.iconService.canvasHeight || 128,
|
|
68
|
+
mipmap: true
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
return _this;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
_createClass(FillImageModel, [{
|
|
76
|
+
key: "getUninforms",
|
|
77
|
+
value: function getUninforms() {
|
|
78
|
+
var _ref = this.layer.getLayerConfig(),
|
|
79
|
+
_ref$opacity = _ref.opacity,
|
|
80
|
+
opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
|
|
81
|
+
_ref$strokeOpacity = _ref.strokeOpacity,
|
|
82
|
+
strokeOpacity = _ref$strokeOpacity === void 0 ? 1 : _ref$strokeOpacity,
|
|
83
|
+
_ref$strokeWidth = _ref.strokeWidth,
|
|
84
|
+
strokeWidth = _ref$strokeWidth === void 0 ? 0 : _ref$strokeWidth,
|
|
85
|
+
_ref$stroke = _ref.stroke,
|
|
86
|
+
stroke = _ref$stroke === void 0 ? 'rgba(0,0,0,0)' : _ref$stroke,
|
|
87
|
+
_ref$offsets = _ref.offsets,
|
|
88
|
+
offsets = _ref$offsets === void 0 ? [0, 0] : _ref$offsets,
|
|
89
|
+
blend = _ref.blend;
|
|
90
|
+
|
|
91
|
+
if (this.rendererService.getDirty()) {
|
|
92
|
+
this.texture.bind();
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
if (this.dataTextureTest && this.dataTextureNeedUpdate({
|
|
96
|
+
opacity: opacity,
|
|
97
|
+
strokeOpacity: strokeOpacity,
|
|
98
|
+
strokeWidth: strokeWidth,
|
|
99
|
+
stroke: stroke,
|
|
100
|
+
offsets: offsets
|
|
101
|
+
})) {
|
|
102
|
+
this.judgeStyleAttributes({
|
|
103
|
+
opacity: opacity,
|
|
104
|
+
strokeOpacity: strokeOpacity,
|
|
105
|
+
strokeWidth: strokeWidth,
|
|
106
|
+
stroke: stroke,
|
|
107
|
+
offsets: offsets
|
|
108
|
+
});
|
|
109
|
+
var encodeData = this.layer.getEncodedData();
|
|
110
|
+
|
|
111
|
+
var _this$calDataFrame = this.calDataFrame(this.cellLength, encodeData, this.cellProperties),
|
|
112
|
+
data = _this$calDataFrame.data,
|
|
113
|
+
width = _this$calDataFrame.width,
|
|
114
|
+
height = _this$calDataFrame.height;
|
|
115
|
+
|
|
116
|
+
this.rowCount = height;
|
|
117
|
+
this.dataTexture = this.cellLength > 0 && data.length > 0 ? this.createTexture2D({
|
|
118
|
+
flipY: true,
|
|
119
|
+
data: data,
|
|
120
|
+
format: gl.LUMINANCE,
|
|
121
|
+
type: gl.FLOAT,
|
|
122
|
+
width: width,
|
|
123
|
+
height: height
|
|
124
|
+
}) : this.createTexture2D({
|
|
125
|
+
flipY: true,
|
|
126
|
+
data: [1],
|
|
127
|
+
format: gl.LUMINANCE,
|
|
128
|
+
type: gl.FLOAT,
|
|
129
|
+
width: 1,
|
|
130
|
+
height: 1
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
return {
|
|
135
|
+
u_isMeter: Number(this.isMeter),
|
|
136
|
+
u_additive: blend === 'additive' ? 1.0 : 0.0,
|
|
137
|
+
u_dataTexture: this.dataTexture,
|
|
138
|
+
u_cellTypeLayout: this.getCellTypeLayout(),
|
|
139
|
+
u_texture: this.texture,
|
|
140
|
+
u_textSize: [1024, this.iconService.canvasHeight || 128],
|
|
141
|
+
u_opacity: _isNumber(opacity) ? opacity : 1.0,
|
|
142
|
+
u_offsets: this.isOffsetStatic(offsets) ? offsets : [0, 0]
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
}, {
|
|
146
|
+
key: "getAttribute",
|
|
147
|
+
value: function getAttribute() {
|
|
148
|
+
return this.styleAttributeService.createAttributesAndIndices(this.layer.getEncodedData(), PointFillTriangulation);
|
|
149
|
+
}
|
|
150
|
+
}, {
|
|
151
|
+
key: "initModels",
|
|
152
|
+
value: function initModels() {
|
|
153
|
+
this.updateTexture();
|
|
154
|
+
this.iconService.on('imageUpdate', this.updateTexture);
|
|
155
|
+
|
|
156
|
+
var _ref2 = this.layer.getLayerConfig(),
|
|
157
|
+
_ref2$unit = _ref2.unit,
|
|
158
|
+
unit = _ref2$unit === void 0 ? 'l7size' : _ref2$unit;
|
|
159
|
+
|
|
160
|
+
var version = this.mapService.version;
|
|
161
|
+
|
|
162
|
+
if (unit === 'meter' && version !== Version.L7MAP && version !== Version.GLOBEL) {
|
|
163
|
+
this.isMeter = true;
|
|
164
|
+
this.calMeter2Coord();
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
return this.buildModels();
|
|
168
|
+
}
|
|
169
|
+
}, {
|
|
170
|
+
key: "calMeter2Coord",
|
|
171
|
+
value: function calMeter2Coord() {
|
|
172
|
+
var _this$layer$getSource = _slicedToArray(this.layer.getSource().extent, 4),
|
|
173
|
+
minLng = _this$layer$getSource[0],
|
|
174
|
+
minLat = _this$layer$getSource[1],
|
|
175
|
+
maxLng = _this$layer$getSource[2],
|
|
176
|
+
maxLat = _this$layer$getSource[3];
|
|
177
|
+
|
|
178
|
+
var center = [(minLng + maxLng) / 2, (minLat + maxLat) / 2];
|
|
179
|
+
var version = this.mapService.version;
|
|
180
|
+
|
|
181
|
+
if (version === Version.MAPBOX && window.mapboxgl.MercatorCoordinate) {
|
|
182
|
+
var coord = window.mapboxgl.MercatorCoordinate.fromLngLat({
|
|
183
|
+
lng: center[0],
|
|
184
|
+
lat: center[1]
|
|
185
|
+
}, 0);
|
|
186
|
+
var offsetInMeters = 1;
|
|
187
|
+
var offsetInMercatorCoordinateUnits = offsetInMeters * coord.meterInMercatorCoordinateUnits();
|
|
188
|
+
var westCoord = new window.mapboxgl.MercatorCoordinate(coord.x - offsetInMercatorCoordinateUnits, coord.y, coord.z);
|
|
189
|
+
var westLnglat = westCoord.toLngLat();
|
|
190
|
+
this.meter2coord = center[0] - westLnglat.lng;
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
var m1 = this.mapService.meterToCoord(center, [minLng, minLat]);
|
|
195
|
+
var m2 = this.mapService.meterToCoord(center, [maxLng === minLng ? maxLng + 0.1 : maxLng, maxLat === minLat ? minLat + 0.1 : maxLat]);
|
|
196
|
+
this.meter2coord = (m1 + m2) / 2;
|
|
197
|
+
|
|
198
|
+
if (!Boolean(this.meter2coord)) {
|
|
199
|
+
this.meter2coord = 7.70681090738883;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}, {
|
|
203
|
+
key: "buildModels",
|
|
204
|
+
value: function buildModels() {
|
|
205
|
+
var _ref3 = this.layer.getLayerConfig(),
|
|
206
|
+
_ref3$mask = _ref3.mask,
|
|
207
|
+
mask = _ref3$mask === void 0 ? false : _ref3$mask,
|
|
208
|
+
_ref3$maskInside = _ref3.maskInside,
|
|
209
|
+
maskInside = _ref3$maskInside === void 0 ? true : _ref3$maskInside;
|
|
210
|
+
|
|
211
|
+
var _this$getShaders = this.getShaders(),
|
|
212
|
+
frag = _this$getShaders.frag,
|
|
213
|
+
vert = _this$getShaders.vert,
|
|
214
|
+
type = _this$getShaders.type;
|
|
215
|
+
|
|
216
|
+
return [this.layer.buildLayerModel({
|
|
217
|
+
moduleName: 'pointfill-' + type,
|
|
218
|
+
vertexShader: vert,
|
|
219
|
+
fragmentShader: frag,
|
|
220
|
+
triangulation: PointFillTriangulation,
|
|
221
|
+
depth: {
|
|
222
|
+
enable: false
|
|
223
|
+
},
|
|
224
|
+
blend: this.getBlend(),
|
|
225
|
+
stencil: getMask(mask, maskInside)
|
|
226
|
+
})];
|
|
227
|
+
}
|
|
228
|
+
}, {
|
|
229
|
+
key: "getShaders",
|
|
230
|
+
value: function getShaders() {
|
|
231
|
+
return {
|
|
232
|
+
frag: pointFillFrag,
|
|
233
|
+
vert: pointFillVert,
|
|
234
|
+
type: 'normal'
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
}, {
|
|
238
|
+
key: "clearModels",
|
|
239
|
+
value: function clearModels() {
|
|
240
|
+
var _this$dataTexture;
|
|
241
|
+
|
|
242
|
+
(_this$dataTexture = this.dataTexture) === null || _this$dataTexture === void 0 ? void 0 : _this$dataTexture.destroy();
|
|
243
|
+
}
|
|
244
|
+
}, {
|
|
245
|
+
key: "registerBuiltinAttributes",
|
|
246
|
+
value: function registerBuiltinAttributes() {
|
|
247
|
+
var _this2 = this;
|
|
248
|
+
|
|
249
|
+
this.styleAttributeService.registerStyleAttribute({
|
|
250
|
+
name: 'uv',
|
|
251
|
+
type: AttributeType.Attribute,
|
|
252
|
+
descriptor: {
|
|
253
|
+
name: 'a_Uv',
|
|
254
|
+
buffer: {
|
|
255
|
+
usage: gl.DYNAMIC_DRAW,
|
|
256
|
+
data: [],
|
|
257
|
+
type: gl.FLOAT
|
|
258
|
+
},
|
|
259
|
+
size: 2,
|
|
260
|
+
update: function update(feature, featureIdx, vertex, attributeIdx) {
|
|
261
|
+
var iconMap = _this2.iconService.getIconMap();
|
|
262
|
+
|
|
263
|
+
var shape = feature.shape;
|
|
264
|
+
|
|
265
|
+
var _ref4 = iconMap[shape] || {
|
|
266
|
+
x: 0,
|
|
267
|
+
y: 0
|
|
268
|
+
},
|
|
269
|
+
x = _ref4.x,
|
|
270
|
+
y = _ref4.y;
|
|
271
|
+
|
|
272
|
+
return [x, y];
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
});
|
|
276
|
+
this.styleAttributeService.registerStyleAttribute({
|
|
277
|
+
name: 'extrude',
|
|
278
|
+
type: AttributeType.Attribute,
|
|
279
|
+
descriptor: {
|
|
280
|
+
name: 'a_Extrude',
|
|
281
|
+
buffer: {
|
|
282
|
+
usage: gl.DYNAMIC_DRAW,
|
|
283
|
+
data: [],
|
|
284
|
+
type: gl.FLOAT
|
|
285
|
+
},
|
|
286
|
+
size: 3,
|
|
287
|
+
update: function update(feature, featureIdx, vertex, attributeIdx) {
|
|
288
|
+
var extrude = [1, 1, 0, -1, 1, 0, -1, -1, 0, 1, -1, 0];
|
|
289
|
+
var extrudeIndex = attributeIdx % 4 * 3;
|
|
290
|
+
return [extrude[extrudeIndex], extrude[extrudeIndex + 1], extrude[extrudeIndex + 2]];
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
});
|
|
294
|
+
this.styleAttributeService.registerStyleAttribute({
|
|
295
|
+
name: 'size',
|
|
296
|
+
type: AttributeType.Attribute,
|
|
297
|
+
descriptor: {
|
|
298
|
+
name: 'a_Size',
|
|
299
|
+
buffer: {
|
|
300
|
+
usage: gl.DYNAMIC_DRAW,
|
|
301
|
+
data: [],
|
|
302
|
+
type: gl.FLOAT
|
|
303
|
+
},
|
|
304
|
+
size: 1,
|
|
305
|
+
update: function update(feature, featureIdx, vertex, attributeIdx) {
|
|
306
|
+
var _feature$size = feature.size,
|
|
307
|
+
size = _feature$size === void 0 ? 5 : _feature$size;
|
|
308
|
+
return Array.isArray(size) ? [size[0] * _this2.meter2coord] : [size * _this2.meter2coord];
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
});
|
|
312
|
+
}
|
|
313
|
+
}]);
|
|
314
|
+
|
|
315
|
+
return FillImageModel;
|
|
316
|
+
}(BaseModel);
|
|
317
|
+
|
|
318
|
+
export { FillImageModel as default };
|
|
319
|
+
//# sourceMappingURL=fillmage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/point/models/fillmage.ts"],"names":["AttributeType","gl","getMask","BaseModel","PointFillTriangulation","Version","FillImageModel","createTexture2D","rendererService","texture","update","data","iconService","getCanvas","mag","min","mipmap","layer","renderLayers","LINEAR","LINEAR_MIPMAP_LINEAR","premultiplyAlpha","width","height","canvasHeight","getLayerConfig","opacity","strokeOpacity","strokeWidth","stroke","offsets","blend","getDirty","bind","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","rowCount","dataTexture","length","flipY","format","LUMINANCE","type","FLOAT","u_isMeter","Number","isMeter","u_additive","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_texture","u_textSize","u_opacity","u_offsets","isOffsetStatic","styleAttributeService","createAttributesAndIndices","updateTexture","on","unit","version","mapService","L7MAP","GLOBEL","calMeter2Coord","buildModels","getSource","extent","minLng","minLat","maxLng","maxLat","center","MAPBOX","window","mapboxgl","MercatorCoordinate","coord","fromLngLat","lng","lat","offsetInMeters","offsetInMercatorCoordinateUnits","meterInMercatorCoordinateUnits","westCoord","x","y","z","westLnglat","toLngLat","meter2coord","m1","meterToCoord","m2","Boolean","mask","maskInside","getShaders","frag","vert","buildLayerModel","moduleName","vertexShader","fragmentShader","triangulation","depth","enable","getBlend","stencil","pointFillFrag","pointFillVert","destroy","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","size","feature","featureIdx","vertex","attributeIdx","iconMap","getIconMap","shape","extrude","extrudeIndex","Array","isArray"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IAttribute,\n IElements,\n IEncodeFeature,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\nimport { getMask } from '@antv/l7-utils';\nimport BaseModel from '../../core/BaseModel';\nimport { IPointLayerStyleOptions } from '../../core/interface';\nimport { PointFillTriangulation } from '../../core/triangulation';\n// static pointLayer shader - not support animate\nimport pointFillFrag from '../shaders/image/fillImage_frag.glsl';\nimport pointFillVert from '../shaders/image/fillImage_vert.glsl';\n\nimport { isNumber } from 'lodash';\n\nimport { Version } from '@antv/l7-maps';\n\nexport default class FillImageModel extends BaseModel {\n public meter2coord: number = 1;\n private texture: ITexture2D;\n private isMeter: boolean = false;\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n strokeOpacity = 1,\n strokeWidth = 0,\n stroke = 'rgba(0,0,0,0)',\n offsets = [0, 0],\n blend,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n\n if (this.rendererService.getDirty()) {\n this.texture.bind();\n }\n\n if (\n this.dataTextureTest &&\n this.dataTextureNeedUpdate({\n opacity,\n strokeOpacity,\n strokeWidth,\n stroke,\n offsets,\n })\n ) {\n // 判断当前的样式中哪些是需要进行数据映射的,哪些是常量,同时计算用于构建数据纹理的一些中间变量\n this.judgeStyleAttributes({\n opacity,\n strokeOpacity,\n strokeWidth,\n stroke,\n offsets,\n });\n\n const encodeData = this.layer.getEncodedData();\n const { data, width, height } = this.calDataFrame(\n this.cellLength,\n encodeData,\n this.cellProperties,\n );\n this.rowCount = height; // 当前数据纹理有多少行\n\n this.dataTexture =\n this.cellLength > 0 && data.length > 0\n ? this.createTexture2D({\n flipY: true,\n data,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width,\n height,\n })\n : this.createTexture2D({\n flipY: true,\n data: [1],\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width: 1,\n height: 1,\n });\n }\n return {\n u_isMeter: Number(this.isMeter),\n\n u_additive: blend === 'additive' ? 1.0 : 0.0,\n\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n\n u_texture: this.texture,\n u_textSize: [1024, this.iconService.canvasHeight || 128],\n\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n u_offsets: this.isOffsetStatic(offsets)\n ? (offsets as [number, number])\n : [0, 0],\n };\n }\n\n public getAttribute(): {\n attributes: {\n [attributeName: string]: IAttribute;\n };\n elements: IElements;\n } {\n return this.styleAttributeService.createAttributesAndIndices(\n this.layer.getEncodedData(),\n PointFillTriangulation,\n );\n }\n\n public initModels(): IModel[] {\n this.updateTexture();\n this.iconService.on('imageUpdate', this.updateTexture);\n\n const {\n unit = 'l7size',\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n const { version } = this.mapService;\n if (\n unit === 'meter' &&\n version !== Version.L7MAP &&\n version !== Version.GLOBEL\n ) {\n this.isMeter = true;\n this.calMeter2Coord();\n }\n\n return this.buildModels();\n }\n\n /**\n * 计算等面积点图层(unit meter)笛卡尔坐标标度与世界坐标标度的比例\n * @returns\n */\n public calMeter2Coord() {\n // @ts-ignore\n const [minLng, minLat, maxLng, maxLat] = this.layer.getSource().extent;\n const center = [(minLng + maxLng) / 2, (minLat + maxLat) / 2];\n\n const { version } = this.mapService;\n if (version === Version.MAPBOX && window.mapboxgl.MercatorCoordinate) {\n const coord = window.mapboxgl.MercatorCoordinate.fromLngLat(\n { lng: center[0], lat: center[1] },\n 0,\n );\n const offsetInMeters = 1;\n const offsetInMercatorCoordinateUnits =\n offsetInMeters * coord.meterInMercatorCoordinateUnits();\n const westCoord = new window.mapboxgl.MercatorCoordinate(\n coord.x - offsetInMercatorCoordinateUnits,\n coord.y,\n coord.z,\n );\n const westLnglat = westCoord.toLngLat();\n\n this.meter2coord = center[0] - westLnglat.lng;\n return;\n }\n\n // @ts-ignore\n const m1 = this.mapService.meterToCoord(center, [minLng, minLat]);\n // @ts-ignore\n const m2 = this.mapService.meterToCoord(center, [\n maxLng === minLng ? maxLng + 0.1 : maxLng,\n maxLat === minLat ? minLat + 0.1 : maxLat,\n ]);\n this.meter2coord = (m1 + m2) / 2;\n if (!Boolean(this.meter2coord)) {\n // Tip: 兼容单个数据导致的 m1、m2 为 NaN\n this.meter2coord = 7.70681090738883;\n }\n }\n\n public buildModels(): IModel[] {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n const { frag, vert, type } = this.getShaders();\n return [\n this.layer.buildLayerModel({\n moduleName: 'pointfill-' + type,\n vertexShader: vert,\n fragmentShader: frag,\n triangulation: PointFillTriangulation,\n depth: { enable: false },\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n }),\n ];\n }\n\n public getShaders(): { frag: string; vert: string; type: string } {\n return {\n frag: pointFillFrag,\n vert: pointFillVert,\n type: 'normal',\n };\n }\n\n public clearModels() {\n this.dataTexture?.destroy();\n }\n\n // overwrite baseModel func\n protected registerBuiltinAttributes() {\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 const iconMap = this.iconService.getIconMap();\n const { shape } = feature;\n const { x, y } = iconMap[shape as string] || { x: 0, y: 0 };\n return [x, y];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'extrude',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Extrude',\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: 3,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const extrude = [1, 1, 0, -1, 1, 0, -1, -1, 0, 1, -1, 0];\n\n const extrudeIndex = (attributeIdx % 4) * 3;\n return [\n extrude[extrudeIndex],\n extrude[extrudeIndex + 1],\n extrude[extrudeIndex + 2],\n ];\n },\n },\n });\n\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\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: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 5 } = feature;\n // console.log('featureIdx', featureIdx, feature)\n return Array.isArray(size)\n ? [size[0] * this.meter2coord]\n : [(size as number) * this.meter2coord];\n },\n },\n });\n }\n\n private updateTexture = () => {\n const { createTexture2D } = this.rendererService;\n if (this.texture) {\n this.texture.update({\n data: this.iconService.getCanvas(),\n mag: 'linear',\n min: 'linear mipmap nearest',\n mipmap: true,\n });\n // this.layer.render();\n // TODO: 更新完纹理后在更新的图层的时候需要更新所有的图层\n this.layer.renderLayers();\n return;\n }\n this.texture = createTexture2D({\n data: this.iconService.getCanvas(),\n mag: gl.LINEAR,\n // min: gl.LINEAR,\n min: gl.LINEAR_MIPMAP_LINEAR,\n premultiplyAlpha: false,\n width: 1024,\n height: this.iconService.canvasHeight || 128,\n mipmap: true,\n });\n };\n}\n"],"file":"fillmage.js"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare type PointType = 'fill' | 'image' | 'normal' | 'simplePoint' | 'extrude' | 'text' | 'icon';
|
|
1
|
+
export declare type PointType = 'fillImage' | 'fill' | 'image' | 'normal' | 'simplePoint' | 'extrude' | 'text' | 'icon';
|
|
2
2
|
declare const PointModels: {
|
|
3
3
|
[key in PointType]: any;
|
|
4
4
|
};
|
package/es/point/models/index.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import ExtrudeModel from './extrude';
|
|
2
2
|
import FillModel from './fill';
|
|
3
|
+
import FillImageModel from './fillmage';
|
|
3
4
|
import IconModel from './icon-font';
|
|
4
5
|
import IMageModel from './image';
|
|
5
6
|
import NormalModel from './normal';
|
|
6
7
|
import SimplePopint from './simplePoint';
|
|
7
8
|
import TextModel from './text';
|
|
8
9
|
var PointModels = {
|
|
10
|
+
fillImage: FillImageModel,
|
|
9
11
|
fill: FillModel,
|
|
10
12
|
image: IMageModel,
|
|
11
13
|
normal: NormalModel,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/point/models/index.ts"],"names":["ExtrudeModel","FillModel","IconModel","IMageModel","NormalModel","SimplePopint","TextModel","PointModels","fill","image","normal","simplePoint","extrude","text","icon"],"mappings":"AAAA,OAAOA,YAAP,MAAyB,WAAzB;AACA,OAAOC,SAAP,MAAsB,QAAtB;AACA,OAAOC,SAAP,MAAsB,aAAtB;AACA,OAAOC,UAAP,MAAuB,SAAvB;AACA,OAAOC,WAAP,MAAwB,UAAxB;AACA,OAAOC,YAAP,MAAyB,eAAzB;AACA,OAAOC,SAAP,MAAsB,QAAtB;
|
|
1
|
+
{"version":3,"sources":["../../../src/point/models/index.ts"],"names":["ExtrudeModel","FillModel","FillImageModel","IconModel","IMageModel","NormalModel","SimplePopint","TextModel","PointModels","fillImage","fill","image","normal","simplePoint","extrude","text","icon"],"mappings":"AAAA,OAAOA,YAAP,MAAyB,WAAzB;AACA,OAAOC,SAAP,MAAsB,QAAtB;AACA,OAAOC,cAAP,MAA2B,YAA3B;AACA,OAAOC,SAAP,MAAsB,aAAtB;AACA,OAAOC,UAAP,MAAuB,SAAvB;AACA,OAAOC,WAAP,MAAwB,UAAxB;AACA,OAAOC,YAAP,MAAyB,eAAzB;AACA,OAAOC,SAAP,MAAsB,QAAtB;AAYA,IAAMC,WAAwC,GAAG;AAC/CC,EAAAA,SAAS,EAAEP,cADoC;AAE/CQ,EAAAA,IAAI,EAAET,SAFyC;AAG/CU,EAAAA,KAAK,EAAEP,UAHwC;AAI/CQ,EAAAA,MAAM,EAAEP,WAJuC;AAK/CQ,EAAAA,WAAW,EAAEP,YALkC;AAM/CQ,EAAAA,OAAO,EAAEd,YANsC;AAO/Ce,EAAAA,IAAI,EAAER,SAPyC;AAQ/CS,EAAAA,IAAI,EAAEb;AARyC,CAAjD;AAWA,eAAeK,WAAf","sourcesContent":["import ExtrudeModel from './extrude';\nimport FillModel from './fill';\nimport FillImageModel from './fillmage';\nimport IconModel from './icon-font';\nimport IMageModel from './image';\nimport NormalModel from './normal';\nimport SimplePopint from './simplePoint';\nimport TextModel from './text';\n\nexport type PointType =\n | 'fillImage'\n | 'fill'\n | 'image'\n | 'normal'\n | 'simplePoint'\n | 'extrude'\n | 'text'\n | 'icon';\n\nconst PointModels: { [key in PointType]: any } = {\n fillImage: FillImageModel,\n fill: FillModel,\n image: IMageModel,\n normal: NormalModel,\n simplePoint: SimplePopint,\n extrude: ExtrudeModel,\n text: TextModel,\n icon: IconModel,\n};\n\nexport default PointModels;\n"],"file":"index.js"}
|
package/lib/point/index.js
CHANGED
|
@@ -124,6 +124,7 @@ var PointLayer = function (_BaseLayer) {
|
|
|
124
124
|
value: function getDefaultConfig() {
|
|
125
125
|
var type = this.getModelType();
|
|
126
126
|
var defaultConfig = {
|
|
127
|
+
fillImage: {},
|
|
127
128
|
normal: {
|
|
128
129
|
blend: 'additive'
|
|
129
130
|
},
|
|
@@ -143,7 +144,7 @@ var PointLayer = function (_BaseLayer) {
|
|
|
143
144
|
}, {
|
|
144
145
|
key: "getModelType",
|
|
145
146
|
value: function getModelType() {
|
|
146
|
-
var PointTypes = ['fill', 'image', 'normal', 'simplePoint', 'extrude', 'text', 'icon'];
|
|
147
|
+
var PointTypes = ['fillImage', 'fill', 'image', 'normal', 'simplePoint', 'extrude', 'text', 'icon'];
|
|
147
148
|
|
|
148
149
|
if (this.layerType && PointTypes.includes(this.layerType)) {
|
|
149
150
|
return this.layerType;
|
|
@@ -173,6 +174,10 @@ var PointLayer = function (_BaseLayer) {
|
|
|
173
174
|
return 'simplePoint';
|
|
174
175
|
}
|
|
175
176
|
|
|
177
|
+
if (shape === 'fillImage') {
|
|
178
|
+
return 'fillImage';
|
|
179
|
+
}
|
|
180
|
+
|
|
176
181
|
if ((shape2d === null || shape2d === void 0 ? void 0 : shape2d.indexOf(shape)) !== -1) {
|
|
177
182
|
return 'fill';
|
|
178
183
|
}
|
package/lib/point/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/point/index.ts"],"names":["PointLayer","modelType","getModelType","layerModel","PointModels","models","initModels","buildModels","shapeOption","field","values","getLayerConfig","shape2d","shape3d","iconMap","iconService","getIconMap","indexOf","Array","v","hasOwnProperty","properties","opacity","type","minimum","maximum","defaultConfig","normal","blend","simplePoint","fill","extrude","image","icon","text","PointTypes","layerType","includes","layerData","getEncodedData","item","find","fe","getModelTypeWillEmptyData","shape","fontService","getGlyph","BaseLayer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AACA;;AAEA;;;;;;;;;;;;IAEqBA,U;;;;;;;;;;;;;;;uFACG,Y;;;;;;WACtB,uBAAqB;AACnB,UAAMC,SAAS,GAAG,KAAKC,YAAL,EAAlB;AACA,WAAKC,UAAL,GAAkB,IAAIC,eAAYH,SAAZ,CAAJ,CAA2B,IAA3B,CAAlB;AACA,WAAKI,MAAL,GAAc,KAAKF,UAAL,CAAgBG,UAAhB,EAAd;AACD;;;WACD,yBAAuB;AACrB,WAAKD,MAAL,GAAc,KAAKF,UAAL,CAAgBI,WAAhB,EAAd;AACD;;;WAMD,qCAA8C;AAC5C,UAAI,KAAKC,WAAT,EAAsB;AACpB,gCAA0B,KAAKA,WAA/B;AAAA,YAAQC,KAAR,qBAAQA,KAAR;AAAA,YAAeC,MAAf,qBAAeA,MAAf;;AACA,mCAA6B,KAAKC,cAAL,EAA7B;AAAA,YAAQC,OAAR,wBAAQA,OAAR;AAAA,YAAiBC,OAAjB,wBAAiBA,OAAjB;;AAEA,YAAMC,OAAO,GAAG,KAAKC,WAAL,CAAiBC,UAAjB,EAAhB;;AAEA,YAAIP,KAAK,IAAI,CAAAG,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEK,OAAT,CAAiBR,KAAjB,OAAsC,CAAC,CAApD,EAAuD;AACrD,iBAAO,MAAP;AACD;;AAED,YAAIC,MAAM,IAAIA,MAAM,YAAYQ,KAAhC,EAAuC;AAAA,qDACrBR,MADqB;AAAA;;AAAA;AACrC,gEAAwB;AAAA,kBAAbS,CAAa;;AACtB,kBAAI,OAAOA,CAAP,KAAa,QAAb,IAAyBL,OAAO,CAACM,cAAR,CAAuBD,CAAvB,CAA7B,EAAkE;AAChE,uBAAO,OAAP;AACD;AACF;AALoC;AAAA;AAAA;AAAA;AAAA;AAMtC;AACF;;AACD,aAAO,QAAP;AACD;;;WACD,2BAA4B;AAC1B,aAAO;AACLE,QAAAA,UAAU,EAAE;AACVC,UAAAA,OAAO,EAAE;AACPC,YAAAA,IAAI,EAAE,QADC;AAEPC,YAAAA,OAAO,EAAE,CAFF;AAGPC,YAAAA,OAAO,EAAE;AAHF;AADC;AADP,OAAP;AASD;;;WACD,4BAA6B;AAC3B,UAAMF,IAAI,GAAG,KAAKrB,YAAL,EAAb;AACA,UAAMwB,aAAa,GAAG;AACpBC,QAAAA,MAAM,EAAE;AACNC,UAAAA,KAAK,EAAE;AADD,
|
|
1
|
+
{"version":3,"sources":["../../src/point/index.ts"],"names":["PointLayer","modelType","getModelType","layerModel","PointModels","models","initModels","buildModels","shapeOption","field","values","getLayerConfig","shape2d","shape3d","iconMap","iconService","getIconMap","indexOf","Array","v","hasOwnProperty","properties","opacity","type","minimum","maximum","defaultConfig","fillImage","normal","blend","simplePoint","fill","extrude","image","icon","text","PointTypes","layerType","includes","layerData","getEncodedData","item","find","fe","getModelTypeWillEmptyData","shape","fontService","getGlyph","BaseLayer"],"mappings":"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","sourcesContent":["import { IEncodeFeature } from '@antv/l7-core';\nimport BaseLayer from '../core/BaseLayer';\nimport { IPointLayerStyleOptions } from '../core/interface';\nimport PointModels, { PointType } from './models/index';\n\nexport default class PointLayer extends BaseLayer<IPointLayerStyleOptions> {\n public type: string = 'PointLayer';\n public buildModels() {\n const modelType = this.getModelType();\n this.layerModel = new PointModels[modelType](this);\n this.models = this.layerModel.initModels();\n }\n public rebuildModels() {\n this.models = this.layerModel.buildModels();\n }\n\n /**\n * 在未传入数据的时候判断点图层的 shape 类型\n * @returns\n */\n public getModelTypeWillEmptyData(): PointType {\n if (this.shapeOption) {\n const { field, values } = this.shapeOption;\n const { shape2d, shape3d } = this.getLayerConfig();\n\n const iconMap = this.iconService.getIconMap();\n\n if (field && shape2d?.indexOf(field as string) !== -1) {\n return 'fill';\n }\n\n if (values && values instanceof Array) {\n for (const v of values) {\n if (typeof v === 'string' && iconMap.hasOwnProperty(v as string)) {\n return 'image';\n }\n }\n }\n }\n return 'normal';\n }\n protected getConfigSchema() {\n return {\n properties: {\n opacity: {\n type: 'number',\n minimum: 0,\n maximum: 1,\n },\n },\n };\n }\n protected getDefaultConfig() {\n const type = this.getModelType();\n const defaultConfig = {\n fillImage: {},\n normal: {\n blend: 'additive',\n },\n simplePoint: {},\n fill: { blend: 'normal' },\n extrude: {},\n image: {},\n icon: {},\n text: {\n blend: 'normal',\n },\n };\n return defaultConfig[type];\n }\n\n protected getModelType(): PointType {\n const PointTypes = [\n 'fillImage',\n 'fill',\n 'image',\n 'normal',\n 'simplePoint',\n 'extrude',\n 'text',\n 'icon',\n ];\n if (this.layerType && PointTypes.includes(this.layerType)) {\n return this.layerType as PointType;\n }\n // pointlayer\n // 2D、 3d、 shape、image、text、normal、\n const layerData = this.getEncodedData();\n const { shape2d, shape3d } = this.getLayerConfig();\n const iconMap = this.iconService.getIconMap();\n const item = layerData.find((fe: IEncodeFeature) => {\n return fe.hasOwnProperty('shape');\n });\n if (!item) {\n // return 'normal';\n return this.getModelTypeWillEmptyData();\n } else {\n const shape = item.shape;\n if (shape === 'dot') {\n return 'normal';\n }\n if (shape === 'simple') {\n return 'simplePoint';\n }\n if (shape === 'fillImage') {\n return 'fillImage';\n }\n if (shape2d?.indexOf(shape as string) !== -1) {\n return 'fill';\n }\n if (shape3d?.indexOf(shape as string) !== -1) {\n return 'extrude';\n }\n if (iconMap.hasOwnProperty(shape as string)) {\n return 'image';\n }\n if (this.fontService.getGlyph(shape as string) !== '') {\n return 'icon';\n }\n return 'text';\n }\n }\n}\n"],"file":"index.js"}
|
|
@@ -0,0 +1,335 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
|
+
|
|
12
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
+
|
|
14
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
15
|
+
|
|
16
|
+
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
17
|
+
|
|
18
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
19
|
+
|
|
20
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
21
|
+
|
|
22
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
23
|
+
|
|
24
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
25
|
+
|
|
26
|
+
var _isNumber2 = _interopRequireDefault(require("lodash/isNumber"));
|
|
27
|
+
|
|
28
|
+
var _l7Core = require("@antv/l7-core");
|
|
29
|
+
|
|
30
|
+
var _l7Utils = require("@antv/l7-utils");
|
|
31
|
+
|
|
32
|
+
var _BaseModel2 = _interopRequireDefault(require("../../core/BaseModel"));
|
|
33
|
+
|
|
34
|
+
var _triangulation = require("../../core/triangulation");
|
|
35
|
+
|
|
36
|
+
var _l7Maps = require("@antv/l7-maps");
|
|
37
|
+
|
|
38
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
39
|
+
|
|
40
|
+
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; } }
|
|
41
|
+
|
|
42
|
+
var pointFillFrag = "uniform sampler2D u_texture;\nuniform vec2 u_textSize;\n\nuniform float u_additive;\n\nvarying mat4 styleMappingMat; // \u4F20\u9012\u4ECE\u7247\u5143\u4E2D\u4F20\u9012\u7684\u6620\u5C04\u6570\u636E\n\nvarying float v_radius;\n\n#pragma include \"sdf_2d\"\n#pragma include \"picking\"\nvarying vec2 v_uv; // \u672C\u8EAB\u7684 uv \u5750\u6807\nvarying vec2 v_Iconuv;\n\nvoid main() {\n\n float opacity = styleMappingMat[0][0];\n\n vec2 pos = v_Iconuv / u_textSize + v_uv / u_textSize * 64.;\n gl_FragColor = texture2D(u_texture, pos);\n gl_FragColor.a *= opacity;\n\n gl_FragColor = filterColor(gl_FragColor);\n}\n";
|
|
43
|
+
var pointFillVert = "attribute vec4 a_Color;\nattribute vec3 a_Position;\nattribute vec3 a_Extrude;\nattribute float a_Size;\nattribute vec2 a_Uv;\n\nvarying mat4 styleMappingMat; // \u7528\u4E8E\u5C06\u5728\u9876\u70B9\u7740\u8272\u5668\u4E2D\u8BA1\u7B97\u597D\u7684\u6837\u5F0F\u503C\u4F20\u9012\u7ED9\u7247\u5143\n\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\nuniform float u_isMeter;\n\nvarying float v_radius;\nvarying vec2 v_uv; // \u672C\u8EAB\u7684 uv \u5750\u6807\nvarying vec2 v_Iconuv; // icon \u8D34\u56FE\u7684 uv \u5750\u6807\n\nuniform float u_opacity : 1;\nuniform vec2 u_offsets;\n\n#pragma include \"styleMapping\"\n#pragma include \"styleMappingCalOpacity\"\n\n#pragma include \"projection\"\n#pragma include \"picking\"\n\n\nvoid main() {\n vec3 extrude = a_Extrude;\n\n v_uv = (a_Extrude.xy + 1.0)/2.0;\n v_uv.y = 1.0 - v_uv.y;\n v_Iconuv = a_Uv;\n\n // cal style mapping - \u6570\u636E\u7EB9\u7406\u6620\u5C04\u90E8\u5206\u7684\u8BA1\u7B97\n styleMappingMat = mat4(\n 0.0, 0.0, 0.0, 0.0, // opacity - empty - empty - empty\n 0.0, 0.0, 0.0, 0.0, // empty - empty - empty - empty\n 0.0, 0.0, 0.0, 0.0, // offsets[0] - offsets[1]\n 0.0, 0.0, 0.0, 0.0\n );\n\n float rowCount = u_cellTypeLayout[0][0]; // \u5F53\u524D\u7684\u6570\u636E\u7EB9\u7406\u6709\u51E0\u884C\n float columnCount = u_cellTypeLayout[0][1]; // \u5F53\u770B\u5230\u6570\u636E\u7EB9\u7406\u6709\u51E0\u5217\n float columnWidth = 1.0/columnCount; // \u5217\u5BBD\n float rowHeight = 1.0/rowCount; // \u884C\u9AD8\n float cellCount = calCellCount(); // opacity - strokeOpacity - strokeWidth - stroke - offsets\n float id = a_vertexId; // \u7B2Cn\u4E2A\u9876\u70B9\n float cellCurrentRow = floor(id * cellCount / columnCount) + 1.0; // \u8D77\u59CB\u70B9\u5728\u7B2C\u51E0\u884C\n float cellCurrentColumn = mod(id * cellCount, columnCount) + 1.0; // \u8D77\u59CB\u70B9\u5728\u7B2C\u51E0\u5217\n \n // cell \u56FA\u5B9A\u987A\u5E8F opacity -> strokeOpacity -> strokeWidth -> stroke ... \n // \u6309\u987A\u5E8F\u4ECE cell \u4E2D\u53D6\u503C\u3001\u82E5\u6CA1\u6709\u5219\u81EA\u52A8\u5F80\u4E0B\u53D6\u503C\n float textureOffset = 0.0; // \u5728 cell \u4E2D\u53D6\u503C\u7684\u504F\u79FB\u91CF\n\n vec2 opacityAndOffset = calOpacityAndOffset(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset, columnWidth, rowHeight);\n styleMappingMat[0][0] = opacityAndOffset.r;\n textureOffset = opacityAndOffset.g;\n\n vec2 textrueOffsets = vec2(0.0, 0.0);\n if(hasOffsets()) {\n vec2 valueXPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);\n textrueOffsets.r = pos2value(valueXPos, columnWidth, rowHeight); // x\n textureOffset += 1.0;\n\n vec2 valueYPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);\n textrueOffsets.g = pos2value(valueYPos, columnWidth, rowHeight); // x\n textureOffset += 1.0;\n } else {\n textrueOffsets = u_offsets;\n }\n\n // cal style mapping\n\n // radius(16-bit)\n v_radius = a_Size;\n\n // TODO: billboard\n // anti-alias\n \n\n vec2 offset = (extrude.xy * (a_Size) + textrueOffsets);\n vec3 aPosition = a_Position;\n if(u_isMeter < 1.0) {\n // \u4E0D\u4EE5\u7C73\u4E3A\u5B9E\u9645\u5355\u4F4D\n offset = project_pixel(offset);\n } else {\n // \u4EE5\u7C73\u4E3A\u5B9E\u9645\u5355\u4F4D\n\n if(u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) {\n aPosition.xy += offset;\n offset.x = 0.0;\n offset.y = 0.0;\n }\n }\n\n\n // vec4 project_pos = project_position(vec4(a_Position.xy, 0.0, 1.0));\n vec4 project_pos = project_position(vec4(aPosition.xy, 0.0, 1.0));\n // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, project_pixel(setPickingOrder(0.0)), 1.0));\n\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n gl_Position = u_Mvp * vec4(project_pos.xy + offset, 0.0, 1.0);\n } else {\n gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, project_pixel(setPickingOrder(0.0)), 1.0));\n }\n \n // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, 0.0, 1.0));\n\n setPickingColor(a_PickingColor);\n}\n";
|
|
44
|
+
|
|
45
|
+
var FillImageModel = function (_BaseModel) {
|
|
46
|
+
(0, _inherits2.default)(FillImageModel, _BaseModel);
|
|
47
|
+
|
|
48
|
+
var _super = _createSuper(FillImageModel);
|
|
49
|
+
|
|
50
|
+
function FillImageModel() {
|
|
51
|
+
var _this;
|
|
52
|
+
|
|
53
|
+
(0, _classCallCheck2.default)(this, FillImageModel);
|
|
54
|
+
|
|
55
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
56
|
+
args[_key] = arguments[_key];
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
60
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "meter2coord", 1);
|
|
61
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "texture", void 0);
|
|
62
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "isMeter", false);
|
|
63
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "updateTexture", function () {
|
|
64
|
+
var createTexture2D = _this.rendererService.createTexture2D;
|
|
65
|
+
|
|
66
|
+
if (_this.texture) {
|
|
67
|
+
_this.texture.update({
|
|
68
|
+
data: _this.iconService.getCanvas(),
|
|
69
|
+
mag: 'linear',
|
|
70
|
+
min: 'linear mipmap nearest',
|
|
71
|
+
mipmap: true
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
_this.layer.renderLayers();
|
|
75
|
+
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
_this.texture = createTexture2D({
|
|
80
|
+
data: _this.iconService.getCanvas(),
|
|
81
|
+
mag: _l7Core.gl.LINEAR,
|
|
82
|
+
min: _l7Core.gl.LINEAR_MIPMAP_LINEAR,
|
|
83
|
+
premultiplyAlpha: false,
|
|
84
|
+
width: 1024,
|
|
85
|
+
height: _this.iconService.canvasHeight || 128,
|
|
86
|
+
mipmap: true
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
return _this;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
(0, _createClass2.default)(FillImageModel, [{
|
|
93
|
+
key: "getUninforms",
|
|
94
|
+
value: function getUninforms() {
|
|
95
|
+
var _ref = this.layer.getLayerConfig(),
|
|
96
|
+
_ref$opacity = _ref.opacity,
|
|
97
|
+
opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
|
|
98
|
+
_ref$strokeOpacity = _ref.strokeOpacity,
|
|
99
|
+
strokeOpacity = _ref$strokeOpacity === void 0 ? 1 : _ref$strokeOpacity,
|
|
100
|
+
_ref$strokeWidth = _ref.strokeWidth,
|
|
101
|
+
strokeWidth = _ref$strokeWidth === void 0 ? 0 : _ref$strokeWidth,
|
|
102
|
+
_ref$stroke = _ref.stroke,
|
|
103
|
+
stroke = _ref$stroke === void 0 ? 'rgba(0,0,0,0)' : _ref$stroke,
|
|
104
|
+
_ref$offsets = _ref.offsets,
|
|
105
|
+
offsets = _ref$offsets === void 0 ? [0, 0] : _ref$offsets,
|
|
106
|
+
blend = _ref.blend;
|
|
107
|
+
|
|
108
|
+
if (this.rendererService.getDirty()) {
|
|
109
|
+
this.texture.bind();
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
if (this.dataTextureTest && this.dataTextureNeedUpdate({
|
|
113
|
+
opacity: opacity,
|
|
114
|
+
strokeOpacity: strokeOpacity,
|
|
115
|
+
strokeWidth: strokeWidth,
|
|
116
|
+
stroke: stroke,
|
|
117
|
+
offsets: offsets
|
|
118
|
+
})) {
|
|
119
|
+
this.judgeStyleAttributes({
|
|
120
|
+
opacity: opacity,
|
|
121
|
+
strokeOpacity: strokeOpacity,
|
|
122
|
+
strokeWidth: strokeWidth,
|
|
123
|
+
stroke: stroke,
|
|
124
|
+
offsets: offsets
|
|
125
|
+
});
|
|
126
|
+
var encodeData = this.layer.getEncodedData();
|
|
127
|
+
|
|
128
|
+
var _this$calDataFrame = this.calDataFrame(this.cellLength, encodeData, this.cellProperties),
|
|
129
|
+
data = _this$calDataFrame.data,
|
|
130
|
+
width = _this$calDataFrame.width,
|
|
131
|
+
height = _this$calDataFrame.height;
|
|
132
|
+
|
|
133
|
+
this.rowCount = height;
|
|
134
|
+
this.dataTexture = this.cellLength > 0 && data.length > 0 ? this.createTexture2D({
|
|
135
|
+
flipY: true,
|
|
136
|
+
data: data,
|
|
137
|
+
format: _l7Core.gl.LUMINANCE,
|
|
138
|
+
type: _l7Core.gl.FLOAT,
|
|
139
|
+
width: width,
|
|
140
|
+
height: height
|
|
141
|
+
}) : this.createTexture2D({
|
|
142
|
+
flipY: true,
|
|
143
|
+
data: [1],
|
|
144
|
+
format: _l7Core.gl.LUMINANCE,
|
|
145
|
+
type: _l7Core.gl.FLOAT,
|
|
146
|
+
width: 1,
|
|
147
|
+
height: 1
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
return {
|
|
152
|
+
u_isMeter: Number(this.isMeter),
|
|
153
|
+
u_additive: blend === 'additive' ? 1.0 : 0.0,
|
|
154
|
+
u_dataTexture: this.dataTexture,
|
|
155
|
+
u_cellTypeLayout: this.getCellTypeLayout(),
|
|
156
|
+
u_texture: this.texture,
|
|
157
|
+
u_textSize: [1024, this.iconService.canvasHeight || 128],
|
|
158
|
+
u_opacity: (0, _isNumber2.default)(opacity) ? opacity : 1.0,
|
|
159
|
+
u_offsets: this.isOffsetStatic(offsets) ? offsets : [0, 0]
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
}, {
|
|
163
|
+
key: "getAttribute",
|
|
164
|
+
value: function getAttribute() {
|
|
165
|
+
return this.styleAttributeService.createAttributesAndIndices(this.layer.getEncodedData(), _triangulation.PointFillTriangulation);
|
|
166
|
+
}
|
|
167
|
+
}, {
|
|
168
|
+
key: "initModels",
|
|
169
|
+
value: function initModels() {
|
|
170
|
+
this.updateTexture();
|
|
171
|
+
this.iconService.on('imageUpdate', this.updateTexture);
|
|
172
|
+
|
|
173
|
+
var _ref2 = this.layer.getLayerConfig(),
|
|
174
|
+
_ref2$unit = _ref2.unit,
|
|
175
|
+
unit = _ref2$unit === void 0 ? 'l7size' : _ref2$unit;
|
|
176
|
+
|
|
177
|
+
var version = this.mapService.version;
|
|
178
|
+
|
|
179
|
+
if (unit === 'meter' && version !== _l7Maps.Version.L7MAP && version !== _l7Maps.Version.GLOBEL) {
|
|
180
|
+
this.isMeter = true;
|
|
181
|
+
this.calMeter2Coord();
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
return this.buildModels();
|
|
185
|
+
}
|
|
186
|
+
}, {
|
|
187
|
+
key: "calMeter2Coord",
|
|
188
|
+
value: function calMeter2Coord() {
|
|
189
|
+
var _this$layer$getSource = (0, _slicedToArray2.default)(this.layer.getSource().extent, 4),
|
|
190
|
+
minLng = _this$layer$getSource[0],
|
|
191
|
+
minLat = _this$layer$getSource[1],
|
|
192
|
+
maxLng = _this$layer$getSource[2],
|
|
193
|
+
maxLat = _this$layer$getSource[3];
|
|
194
|
+
|
|
195
|
+
var center = [(minLng + maxLng) / 2, (minLat + maxLat) / 2];
|
|
196
|
+
var version = this.mapService.version;
|
|
197
|
+
|
|
198
|
+
if (version === _l7Maps.Version.MAPBOX && window.mapboxgl.MercatorCoordinate) {
|
|
199
|
+
var coord = window.mapboxgl.MercatorCoordinate.fromLngLat({
|
|
200
|
+
lng: center[0],
|
|
201
|
+
lat: center[1]
|
|
202
|
+
}, 0);
|
|
203
|
+
var offsetInMeters = 1;
|
|
204
|
+
var offsetInMercatorCoordinateUnits = offsetInMeters * coord.meterInMercatorCoordinateUnits();
|
|
205
|
+
var westCoord = new window.mapboxgl.MercatorCoordinate(coord.x - offsetInMercatorCoordinateUnits, coord.y, coord.z);
|
|
206
|
+
var westLnglat = westCoord.toLngLat();
|
|
207
|
+
this.meter2coord = center[0] - westLnglat.lng;
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
var m1 = this.mapService.meterToCoord(center, [minLng, minLat]);
|
|
212
|
+
var m2 = this.mapService.meterToCoord(center, [maxLng === minLng ? maxLng + 0.1 : maxLng, maxLat === minLat ? minLat + 0.1 : maxLat]);
|
|
213
|
+
this.meter2coord = (m1 + m2) / 2;
|
|
214
|
+
|
|
215
|
+
if (!Boolean(this.meter2coord)) {
|
|
216
|
+
this.meter2coord = 7.70681090738883;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}, {
|
|
220
|
+
key: "buildModels",
|
|
221
|
+
value: function buildModels() {
|
|
222
|
+
var _ref3 = this.layer.getLayerConfig(),
|
|
223
|
+
_ref3$mask = _ref3.mask,
|
|
224
|
+
mask = _ref3$mask === void 0 ? false : _ref3$mask,
|
|
225
|
+
_ref3$maskInside = _ref3.maskInside,
|
|
226
|
+
maskInside = _ref3$maskInside === void 0 ? true : _ref3$maskInside;
|
|
227
|
+
|
|
228
|
+
var _this$getShaders = this.getShaders(),
|
|
229
|
+
frag = _this$getShaders.frag,
|
|
230
|
+
vert = _this$getShaders.vert,
|
|
231
|
+
type = _this$getShaders.type;
|
|
232
|
+
|
|
233
|
+
return [this.layer.buildLayerModel({
|
|
234
|
+
moduleName: 'pointfill-' + type,
|
|
235
|
+
vertexShader: vert,
|
|
236
|
+
fragmentShader: frag,
|
|
237
|
+
triangulation: _triangulation.PointFillTriangulation,
|
|
238
|
+
depth: {
|
|
239
|
+
enable: false
|
|
240
|
+
},
|
|
241
|
+
blend: this.getBlend(),
|
|
242
|
+
stencil: (0, _l7Utils.getMask)(mask, maskInside)
|
|
243
|
+
})];
|
|
244
|
+
}
|
|
245
|
+
}, {
|
|
246
|
+
key: "getShaders",
|
|
247
|
+
value: function getShaders() {
|
|
248
|
+
return {
|
|
249
|
+
frag: pointFillFrag,
|
|
250
|
+
vert: pointFillVert,
|
|
251
|
+
type: 'normal'
|
|
252
|
+
};
|
|
253
|
+
}
|
|
254
|
+
}, {
|
|
255
|
+
key: "clearModels",
|
|
256
|
+
value: function clearModels() {
|
|
257
|
+
var _this$dataTexture;
|
|
258
|
+
|
|
259
|
+
(_this$dataTexture = this.dataTexture) === null || _this$dataTexture === void 0 ? void 0 : _this$dataTexture.destroy();
|
|
260
|
+
}
|
|
261
|
+
}, {
|
|
262
|
+
key: "registerBuiltinAttributes",
|
|
263
|
+
value: function registerBuiltinAttributes() {
|
|
264
|
+
var _this2 = this;
|
|
265
|
+
|
|
266
|
+
this.styleAttributeService.registerStyleAttribute({
|
|
267
|
+
name: 'uv',
|
|
268
|
+
type: _l7Core.AttributeType.Attribute,
|
|
269
|
+
descriptor: {
|
|
270
|
+
name: 'a_Uv',
|
|
271
|
+
buffer: {
|
|
272
|
+
usage: _l7Core.gl.DYNAMIC_DRAW,
|
|
273
|
+
data: [],
|
|
274
|
+
type: _l7Core.gl.FLOAT
|
|
275
|
+
},
|
|
276
|
+
size: 2,
|
|
277
|
+
update: function update(feature, featureIdx, vertex, attributeIdx) {
|
|
278
|
+
var iconMap = _this2.iconService.getIconMap();
|
|
279
|
+
|
|
280
|
+
var shape = feature.shape;
|
|
281
|
+
|
|
282
|
+
var _ref4 = iconMap[shape] || {
|
|
283
|
+
x: 0,
|
|
284
|
+
y: 0
|
|
285
|
+
},
|
|
286
|
+
x = _ref4.x,
|
|
287
|
+
y = _ref4.y;
|
|
288
|
+
|
|
289
|
+
return [x, y];
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
});
|
|
293
|
+
this.styleAttributeService.registerStyleAttribute({
|
|
294
|
+
name: 'extrude',
|
|
295
|
+
type: _l7Core.AttributeType.Attribute,
|
|
296
|
+
descriptor: {
|
|
297
|
+
name: 'a_Extrude',
|
|
298
|
+
buffer: {
|
|
299
|
+
usage: _l7Core.gl.DYNAMIC_DRAW,
|
|
300
|
+
data: [],
|
|
301
|
+
type: _l7Core.gl.FLOAT
|
|
302
|
+
},
|
|
303
|
+
size: 3,
|
|
304
|
+
update: function update(feature, featureIdx, vertex, attributeIdx) {
|
|
305
|
+
var extrude = [1, 1, 0, -1, 1, 0, -1, -1, 0, 1, -1, 0];
|
|
306
|
+
var extrudeIndex = attributeIdx % 4 * 3;
|
|
307
|
+
return [extrude[extrudeIndex], extrude[extrudeIndex + 1], extrude[extrudeIndex + 2]];
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
});
|
|
311
|
+
this.styleAttributeService.registerStyleAttribute({
|
|
312
|
+
name: 'size',
|
|
313
|
+
type: _l7Core.AttributeType.Attribute,
|
|
314
|
+
descriptor: {
|
|
315
|
+
name: 'a_Size',
|
|
316
|
+
buffer: {
|
|
317
|
+
usage: _l7Core.gl.DYNAMIC_DRAW,
|
|
318
|
+
data: [],
|
|
319
|
+
type: _l7Core.gl.FLOAT
|
|
320
|
+
},
|
|
321
|
+
size: 1,
|
|
322
|
+
update: function update(feature, featureIdx, vertex, attributeIdx) {
|
|
323
|
+
var _feature$size = feature.size,
|
|
324
|
+
size = _feature$size === void 0 ? 5 : _feature$size;
|
|
325
|
+
return Array.isArray(size) ? [size[0] * _this2.meter2coord] : [size * _this2.meter2coord];
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
});
|
|
329
|
+
}
|
|
330
|
+
}]);
|
|
331
|
+
return FillImageModel;
|
|
332
|
+
}(_BaseModel2.default);
|
|
333
|
+
|
|
334
|
+
exports.default = FillImageModel;
|
|
335
|
+
//# sourceMappingURL=fillmage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/point/models/fillmage.ts"],"names":["FillImageModel","createTexture2D","rendererService","texture","update","data","iconService","getCanvas","mag","min","mipmap","layer","renderLayers","gl","LINEAR","LINEAR_MIPMAP_LINEAR","premultiplyAlpha","width","height","canvasHeight","getLayerConfig","opacity","strokeOpacity","strokeWidth","stroke","offsets","blend","getDirty","bind","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","rowCount","dataTexture","length","flipY","format","LUMINANCE","type","FLOAT","u_isMeter","Number","isMeter","u_additive","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_texture","u_textSize","u_opacity","u_offsets","isOffsetStatic","styleAttributeService","createAttributesAndIndices","PointFillTriangulation","updateTexture","on","unit","version","mapService","Version","L7MAP","GLOBEL","calMeter2Coord","buildModels","getSource","extent","minLng","minLat","maxLng","maxLat","center","MAPBOX","window","mapboxgl","MercatorCoordinate","coord","fromLngLat","lng","lat","offsetInMeters","offsetInMercatorCoordinateUnits","meterInMercatorCoordinateUnits","westCoord","x","y","z","westLnglat","toLngLat","meter2coord","m1","meterToCoord","m2","Boolean","mask","maskInside","getShaders","frag","vert","buildLayerModel","moduleName","vertexShader","fragmentShader","triangulation","depth","enable","getBlend","stencil","pointFillFrag","pointFillVert","destroy","registerStyleAttribute","name","AttributeType","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","size","feature","featureIdx","vertex","attributeIdx","iconMap","getIconMap","shape","extrude","extrudeIndex","Array","isArray","BaseModel"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IAttribute,\n IElements,\n IEncodeFeature,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\nimport { getMask } from '@antv/l7-utils';\nimport BaseModel from '../../core/BaseModel';\nimport { IPointLayerStyleOptions } from '../../core/interface';\nimport { PointFillTriangulation } from '../../core/triangulation';\n// static pointLayer shader - not support animate\nimport pointFillFrag from '../shaders/image/fillImage_frag.glsl';\nimport pointFillVert from '../shaders/image/fillImage_vert.glsl';\n\nimport { isNumber } from 'lodash';\n\nimport { Version } from '@antv/l7-maps';\n\nexport default class FillImageModel extends BaseModel {\n public meter2coord: number = 1;\n private texture: ITexture2D;\n private isMeter: boolean = false;\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n strokeOpacity = 1,\n strokeWidth = 0,\n stroke = 'rgba(0,0,0,0)',\n offsets = [0, 0],\n blend,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n\n if (this.rendererService.getDirty()) {\n this.texture.bind();\n }\n\n if (\n this.dataTextureTest &&\n this.dataTextureNeedUpdate({\n opacity,\n strokeOpacity,\n strokeWidth,\n stroke,\n offsets,\n })\n ) {\n // 判断当前的样式中哪些是需要进行数据映射的,哪些是常量,同时计算用于构建数据纹理的一些中间变量\n this.judgeStyleAttributes({\n opacity,\n strokeOpacity,\n strokeWidth,\n stroke,\n offsets,\n });\n\n const encodeData = this.layer.getEncodedData();\n const { data, width, height } = this.calDataFrame(\n this.cellLength,\n encodeData,\n this.cellProperties,\n );\n this.rowCount = height; // 当前数据纹理有多少行\n\n this.dataTexture =\n this.cellLength > 0 && data.length > 0\n ? this.createTexture2D({\n flipY: true,\n data,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width,\n height,\n })\n : this.createTexture2D({\n flipY: true,\n data: [1],\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width: 1,\n height: 1,\n });\n }\n return {\n u_isMeter: Number(this.isMeter),\n\n u_additive: blend === 'additive' ? 1.0 : 0.0,\n\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n\n u_texture: this.texture,\n u_textSize: [1024, this.iconService.canvasHeight || 128],\n\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n u_offsets: this.isOffsetStatic(offsets)\n ? (offsets as [number, number])\n : [0, 0],\n };\n }\n\n public getAttribute(): {\n attributes: {\n [attributeName: string]: IAttribute;\n };\n elements: IElements;\n } {\n return this.styleAttributeService.createAttributesAndIndices(\n this.layer.getEncodedData(),\n PointFillTriangulation,\n );\n }\n\n public initModels(): IModel[] {\n this.updateTexture();\n this.iconService.on('imageUpdate', this.updateTexture);\n\n const {\n unit = 'l7size',\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n const { version } = this.mapService;\n if (\n unit === 'meter' &&\n version !== Version.L7MAP &&\n version !== Version.GLOBEL\n ) {\n this.isMeter = true;\n this.calMeter2Coord();\n }\n\n return this.buildModels();\n }\n\n /**\n * 计算等面积点图层(unit meter)笛卡尔坐标标度与世界坐标标度的比例\n * @returns\n */\n public calMeter2Coord() {\n // @ts-ignore\n const [minLng, minLat, maxLng, maxLat] = this.layer.getSource().extent;\n const center = [(minLng + maxLng) / 2, (minLat + maxLat) / 2];\n\n const { version } = this.mapService;\n if (version === Version.MAPBOX && window.mapboxgl.MercatorCoordinate) {\n const coord = window.mapboxgl.MercatorCoordinate.fromLngLat(\n { lng: center[0], lat: center[1] },\n 0,\n );\n const offsetInMeters = 1;\n const offsetInMercatorCoordinateUnits =\n offsetInMeters * coord.meterInMercatorCoordinateUnits();\n const westCoord = new window.mapboxgl.MercatorCoordinate(\n coord.x - offsetInMercatorCoordinateUnits,\n coord.y,\n coord.z,\n );\n const westLnglat = westCoord.toLngLat();\n\n this.meter2coord = center[0] - westLnglat.lng;\n return;\n }\n\n // @ts-ignore\n const m1 = this.mapService.meterToCoord(center, [minLng, minLat]);\n // @ts-ignore\n const m2 = this.mapService.meterToCoord(center, [\n maxLng === minLng ? maxLng + 0.1 : maxLng,\n maxLat === minLat ? minLat + 0.1 : maxLat,\n ]);\n this.meter2coord = (m1 + m2) / 2;\n if (!Boolean(this.meter2coord)) {\n // Tip: 兼容单个数据导致的 m1、m2 为 NaN\n this.meter2coord = 7.70681090738883;\n }\n }\n\n public buildModels(): IModel[] {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n const { frag, vert, type } = this.getShaders();\n return [\n this.layer.buildLayerModel({\n moduleName: 'pointfill-' + type,\n vertexShader: vert,\n fragmentShader: frag,\n triangulation: PointFillTriangulation,\n depth: { enable: false },\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n }),\n ];\n }\n\n public getShaders(): { frag: string; vert: string; type: string } {\n return {\n frag: pointFillFrag,\n vert: pointFillVert,\n type: 'normal',\n };\n }\n\n public clearModels() {\n this.dataTexture?.destroy();\n }\n\n // overwrite baseModel func\n protected registerBuiltinAttributes() {\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 const iconMap = this.iconService.getIconMap();\n const { shape } = feature;\n const { x, y } = iconMap[shape as string] || { x: 0, y: 0 };\n return [x, y];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'extrude',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Extrude',\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: 3,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const extrude = [1, 1, 0, -1, 1, 0, -1, -1, 0, 1, -1, 0];\n\n const extrudeIndex = (attributeIdx % 4) * 3;\n return [\n extrude[extrudeIndex],\n extrude[extrudeIndex + 1],\n extrude[extrudeIndex + 2],\n ];\n },\n },\n });\n\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\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: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 5 } = feature;\n // console.log('featureIdx', featureIdx, feature)\n return Array.isArray(size)\n ? [size[0] * this.meter2coord]\n : [(size as number) * this.meter2coord];\n },\n },\n });\n }\n\n private updateTexture = () => {\n const { createTexture2D } = this.rendererService;\n if (this.texture) {\n this.texture.update({\n data: this.iconService.getCanvas(),\n mag: 'linear',\n min: 'linear mipmap nearest',\n mipmap: true,\n });\n // this.layer.render();\n // TODO: 更新完纹理后在更新的图层的时候需要更新所有的图层\n this.layer.renderLayers();\n return;\n }\n this.texture = createTexture2D({\n data: this.iconService.getCanvas(),\n mag: gl.LINEAR,\n // min: gl.LINEAR,\n min: gl.LINEAR_MIPMAP_LINEAR,\n premultiplyAlpha: false,\n width: 1024,\n height: this.iconService.canvasHeight || 128,\n mipmap: true,\n });\n };\n}\n"],"file":"fillmage.js"}
|
|
@@ -11,6 +11,8 @@ var _extrude = _interopRequireDefault(require("./extrude"));
|
|
|
11
11
|
|
|
12
12
|
var _fill = _interopRequireDefault(require("./fill"));
|
|
13
13
|
|
|
14
|
+
var _fillmage = _interopRequireDefault(require("./fillmage"));
|
|
15
|
+
|
|
14
16
|
var _iconFont = _interopRequireDefault(require("./icon-font"));
|
|
15
17
|
|
|
16
18
|
var _image = _interopRequireDefault(require("./image"));
|
|
@@ -22,6 +24,7 @@ var _simplePoint = _interopRequireDefault(require("./simplePoint"));
|
|
|
22
24
|
var _text = _interopRequireDefault(require("./text"));
|
|
23
25
|
|
|
24
26
|
var PointModels = {
|
|
27
|
+
fillImage: _fillmage.default,
|
|
25
28
|
fill: _fill.default,
|
|
26
29
|
image: _image.default,
|
|
27
30
|
normal: _normal.default,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/point/models/index.ts"],"names":["PointModels","fill","FillModel","image","IMageModel","normal","NormalModel","simplePoint","SimplePopint","extrude","ExtrudeModel","text","TextModel","icon","IconModel"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;
|
|
1
|
+
{"version":3,"sources":["../../../src/point/models/index.ts"],"names":["PointModels","fillImage","FillImageModel","fill","FillModel","image","IMageModel","normal","NormalModel","simplePoint","SimplePopint","extrude","ExtrudeModel","text","TextModel","icon","IconModel"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAYA,IAAMA,WAAwC,GAAG;AAC/CC,EAAAA,SAAS,EAAEC,iBADoC;AAE/CC,EAAAA,IAAI,EAAEC,aAFyC;AAG/CC,EAAAA,KAAK,EAAEC,cAHwC;AAI/CC,EAAAA,MAAM,EAAEC,eAJuC;AAK/CC,EAAAA,WAAW,EAAEC,oBALkC;AAM/CC,EAAAA,OAAO,EAAEC,gBANsC;AAO/CC,EAAAA,IAAI,EAAEC,aAPyC;AAQ/CC,EAAAA,IAAI,EAAEC;AARyC,CAAjD;eAWehB,W","sourcesContent":["import ExtrudeModel from './extrude';\nimport FillModel from './fill';\nimport FillImageModel from './fillmage';\nimport IconModel from './icon-font';\nimport IMageModel from './image';\nimport NormalModel from './normal';\nimport SimplePopint from './simplePoint';\nimport TextModel from './text';\n\nexport type PointType =\n | 'fillImage'\n | 'fill'\n | 'image'\n | 'normal'\n | 'simplePoint'\n | 'extrude'\n | 'text'\n | 'icon';\n\nconst PointModels: { [key in PointType]: any } = {\n fillImage: FillImageModel,\n fill: FillModel,\n image: IMageModel,\n normal: NormalModel,\n simplePoint: SimplePopint,\n extrude: ExtrudeModel,\n text: TextModel,\n icon: IconModel,\n};\n\nexport default PointModels;\n"],"file":"index.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@antv/l7-layers",
|
|
3
|
-
"version": "2.7.
|
|
3
|
+
"version": "2.7.30",
|
|
4
4
|
"description": "L7's collection of built-in layers",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "es/index.js",
|
|
@@ -24,9 +24,9 @@
|
|
|
24
24
|
"license": "ISC",
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"@antv/geo-coord": "^1.0.8",
|
|
27
|
-
"@antv/l7-core": "^2.7.
|
|
28
|
-
"@antv/l7-source": "^2.7.
|
|
29
|
-
"@antv/l7-utils": "^2.7.
|
|
27
|
+
"@antv/l7-core": "^2.7.30",
|
|
28
|
+
"@antv/l7-source": "^2.7.30",
|
|
29
|
+
"@antv/l7-utils": "^2.7.30",
|
|
30
30
|
"@babel/runtime": "^7.7.7",
|
|
31
31
|
"@mapbox/martini": "^0.2.0",
|
|
32
32
|
"@turf/meta": "^6.0.2",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"@types/gl-matrix": "^2.4.5",
|
|
53
53
|
"@types/lodash": "^4.14.138"
|
|
54
54
|
},
|
|
55
|
-
"gitHead": "
|
|
55
|
+
"gitHead": "9e6777a25e16f7b6ee730b606d5538437f9113e9",
|
|
56
56
|
"publishConfig": {
|
|
57
57
|
"access": "public"
|
|
58
58
|
}
|