@deck.gl/carto 8.10.0-alpha.4 → 8.10.0-alpha.5
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/dist/cartoRasterTile-worker.js +1 -1
- package/dist/cartoSpatialTile-worker.js +1 -1
- package/dist/cartoVectorTile-worker.js +1 -1
- package/dist/dist.dev.js +64 -715
- package/dist/es5/api/carto-api-error.js +3 -7
- package/dist/es5/api/carto-api-error.js.map +1 -1
- package/dist/es5/layers/carto-layer.js +196 -200
- package/dist/es5/layers/carto-layer.js.map +1 -1
- package/dist/es5/layers/h3-tile-layer.js +50 -54
- package/dist/es5/layers/h3-tile-layer.js.map +1 -1
- package/dist/es5/layers/h3-tileset-2d.js +62 -68
- package/dist/es5/layers/h3-tileset-2d.js.map +1 -1
- package/dist/es5/layers/point-label-layer.js +160 -165
- package/dist/es5/layers/point-label-layer.js.map +1 -1
- package/dist/es5/layers/quadbin-layer.js +23 -27
- package/dist/es5/layers/quadbin-layer.js.map +1 -1
- package/dist/es5/layers/quadbin-tile-layer.js +31 -34
- package/dist/es5/layers/quadbin-tile-layer.js.map +1 -1
- package/dist/es5/layers/quadbin-tileset-2d.js +32 -38
- package/dist/es5/layers/quadbin-tileset-2d.js.map +1 -1
- package/dist/es5/layers/raster-layer.js +94 -98
- package/dist/es5/layers/raster-layer.js.map +1 -1
- package/dist/es5/layers/raster-tile-layer.js +28 -33
- package/dist/es5/layers/raster-tile-layer.js.map +1 -1
- package/dist/es5/layers/schema/carto-raster-tile-loader.js +1 -1
- package/dist/es5/layers/schema/carto-raster-tile.js +31 -39
- package/dist/es5/layers/schema/carto-raster-tile.js.map +1 -1
- package/dist/es5/layers/schema/carto-spatial-tile-loader.js +1 -1
- package/dist/es5/layers/schema/carto-spatial-tile.js +36 -47
- package/dist/es5/layers/schema/carto-spatial-tile.js.map +1 -1
- package/dist/es5/layers/schema/carto-tile.js +161 -196
- package/dist/es5/layers/schema/carto-tile.js.map +1 -1
- package/dist/es5/layers/schema/carto-vector-tile-loader.js +1 -1
- package/dist/es5/layers/spatial-index-tile-layer.js +67 -73
- package/dist/es5/layers/spatial-index-tile-layer.js.map +1 -1
- package/dist/es5/layers/vector-tile-layer.js +83 -90
- package/dist/es5/layers/vector-tile-layer.js.map +1 -1
- package/dist/esm/api/carto-api-error.js +8 -13
- package/dist/esm/api/carto-api-error.js.map +1 -1
- package/dist/esm/api/layer-map.js +4 -4
- package/dist/esm/api/layer-map.js.map +1 -1
- package/dist/esm/api/maps-api-common.js +3 -3
- package/dist/esm/api/maps-api-common.js.map +1 -1
- package/dist/esm/api/maps-client.js +7 -7
- package/dist/esm/api/maps-client.js.map +1 -1
- package/dist/esm/api/maps-v3-client.js +12 -12
- package/dist/esm/api/maps-v3-client.js.map +1 -1
- package/dist/esm/api/parseMap.js +4 -4
- package/dist/esm/api/parseMap.js.map +1 -1
- package/dist/esm/config.js +3 -3
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/layers/carto-layer.js +12 -15
- package/dist/esm/layers/carto-layer.js.map +1 -1
- package/dist/esm/layers/h3-tile-layer.js +3 -6
- package/dist/esm/layers/h3-tile-layer.js.map +1 -1
- package/dist/esm/layers/point-label-layer.js +6 -10
- package/dist/esm/layers/point-label-layer.js.map +1 -1
- package/dist/esm/layers/quadbin-layer.js +2 -5
- package/dist/esm/layers/quadbin-layer.js.map +1 -1
- package/dist/esm/layers/quadbin-tile-layer.js +3 -6
- package/dist/esm/layers/quadbin-tile-layer.js.map +1 -1
- package/dist/esm/layers/raster-layer-vertex.glsl.js +98 -1
- package/dist/esm/layers/raster-layer-vertex.glsl.js.map +1 -1
- package/dist/esm/layers/raster-layer.js +4 -8
- package/dist/esm/layers/raster-layer.js.map +1 -1
- package/dist/esm/layers/raster-tile-layer.js +3 -6
- package/dist/esm/layers/raster-tile-layer.js.map +1 -1
- package/dist/esm/layers/schema/carto-raster-tile-loader.js +1 -1
- package/dist/esm/layers/schema/carto-raster-tile.js +1 -1
- package/dist/esm/layers/schema/carto-raster-tile.js.map +1 -1
- package/dist/esm/layers/schema/carto-spatial-tile-loader.js +1 -1
- package/dist/esm/layers/schema/carto-vector-tile-loader.js +1 -1
- package/dist/esm/layers/spatial-index-tile-layer.js +2 -5
- package/dist/esm/layers/spatial-index-tile-layer.js.map +1 -1
- package/dist/esm/layers/utils.js +1 -1
- package/dist/esm/layers/utils.js.map +1 -1
- package/dist/esm/layers/vector-tile-layer.js +2 -5
- package/dist/esm/layers/vector-tile-layer.js.map +1 -1
- package/dist/esm/sources/base-source.js +1 -1
- package/dist/esm/sources/base-source.js.map +1 -1
- package/dist/esm/sources/utils.js +2 -2
- package/dist/esm/sources/utils.js.map +1 -1
- package/dist/esm/style/palette.js +2 -2
- package/dist/esm/style/palette.js.map +1 -1
- package/dist/esm/style/utils.js +1 -1
- package/dist/esm/style/utils.js.map +1 -1
- package/dist/esm/utils.js +1 -1
- package/dist/esm/utils.js.map +1 -1
- package/dist.min.js +46 -25
- package/package.json +2 -2
|
@@ -9,9 +9,9 @@ exports.default = void 0;
|
|
|
9
9
|
|
|
10
10
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
15
15
|
|
|
16
16
|
var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
|
|
17
17
|
|
|
@@ -21,8 +21,6 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
|
|
|
21
21
|
|
|
22
22
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
23
23
|
|
|
24
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
25
|
-
|
|
26
24
|
var _core = require("@deck.gl/core");
|
|
27
25
|
|
|
28
26
|
var _layers = require("@deck.gl/layers");
|
|
@@ -52,22 +50,22 @@ var EnhancedTextBackgroundLayer = function (_TextBackgroundLayer) {
|
|
|
52
50
|
return _super.apply(this, arguments);
|
|
53
51
|
}
|
|
54
52
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
53
|
+
var _proto = EnhancedTextBackgroundLayer.prototype;
|
|
54
|
+
|
|
55
|
+
_proto.getShaders = function getShaders() {
|
|
56
|
+
var shaders = (0, _get2.default)((0, _getPrototypeOf2.default)(EnhancedTextBackgroundLayer.prototype), "getShaders", this).call(this);
|
|
57
|
+
var vs = shaders.vs;
|
|
58
|
+
vs = vs.replaceAll('padding.', '_padding.');
|
|
59
|
+
vs = vs.replace('void main(void) {', 'void main(void) {\n vec4 _padding = padding + instancePixelOffsets.xyxy * vec4(1.0, 1.0, -1.0, -1.0);');
|
|
60
|
+
return _objectSpread(_objectSpread({}, shaders), {}, {
|
|
61
|
+
vs: vs
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
|
|
67
65
|
return EnhancedTextBackgroundLayer;
|
|
68
66
|
}(_layers._TextBackgroundLayer);
|
|
69
67
|
|
|
70
|
-
|
|
68
|
+
EnhancedTextBackgroundLayer.layerName = 'EnhancedTextBackgroundLayer';
|
|
71
69
|
|
|
72
70
|
var EnhancedTextLayer = function (_TextLayer) {
|
|
73
71
|
(0, _inherits2.default)(EnhancedTextLayer, _TextLayer);
|
|
@@ -79,24 +77,24 @@ var EnhancedTextLayer = function (_TextLayer) {
|
|
|
79
77
|
return _super2.apply(this, arguments);
|
|
80
78
|
}
|
|
81
79
|
|
|
82
|
-
|
|
83
|
-
key: "filterSubLayer",
|
|
84
|
-
value: function filterSubLayer(_ref) {
|
|
85
|
-
var layer = _ref.layer,
|
|
86
|
-
renderPass = _ref.renderPass;
|
|
87
|
-
var background = layer.id.includes('primary-background');
|
|
80
|
+
var _proto2 = EnhancedTextLayer.prototype;
|
|
88
81
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
82
|
+
_proto2.filterSubLayer = function filterSubLayer(_ref) {
|
|
83
|
+
var layer = _ref.layer,
|
|
84
|
+
renderPass = _ref.renderPass;
|
|
85
|
+
var background = layer.id.includes('primary-background');
|
|
92
86
|
|
|
93
|
-
|
|
87
|
+
if (renderPass === 'collision') {
|
|
88
|
+
return background;
|
|
94
89
|
}
|
|
95
|
-
|
|
90
|
+
|
|
91
|
+
return !background;
|
|
92
|
+
};
|
|
93
|
+
|
|
96
94
|
return EnhancedTextLayer;
|
|
97
95
|
}(_layers.TextLayer);
|
|
98
96
|
|
|
99
|
-
|
|
97
|
+
EnhancedTextLayer.layerName = 'EnhancedTextLayer';
|
|
100
98
|
|
|
101
99
|
var defaultProps = _objectSpread(_objectSpread({}, _layers.TextLayer.defaultProps), {}, {
|
|
102
100
|
getRadius: {
|
|
@@ -120,149 +118,146 @@ var PointLabelLayer = function (_CompositeLayer) {
|
|
|
120
118
|
return _super3.apply(this, arguments);
|
|
121
119
|
}
|
|
122
120
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
var radiusPadding = 1 + 1 / 4;
|
|
148
|
-
return typeof getRadius === 'function' ? function (d, info) {
|
|
149
|
-
var r = (info ? getRadius(d, info) : 1) * radiusScale * radiusPadding;
|
|
150
|
-
return [xMult * (r + xPadding), yMult * (r + yPadding) + yOffset];
|
|
151
|
-
} : [xMult * (getRadius * radiusScale * radiusPadding + xPadding), yMult * (getRadius * radiusScale * radiusPadding + yPadding) + yOffset];
|
|
121
|
+
var _proto3 = PointLabelLayer.prototype;
|
|
122
|
+
|
|
123
|
+
_proto3.calculatePixelOffset = function calculatePixelOffset(secondary) {
|
|
124
|
+
var _this$props = this.props,
|
|
125
|
+
anchor = _this$props.getTextAnchor,
|
|
126
|
+
alignment = _this$props.getAlignmentBaseline,
|
|
127
|
+
getRadius = _this$props.getRadius,
|
|
128
|
+
getSecondaryText = _this$props.getSecondaryText,
|
|
129
|
+
radiusScale = _this$props.radiusScale,
|
|
130
|
+
secondarySizeScale = _this$props.secondarySizeScale,
|
|
131
|
+
sizeScale = _this$props.sizeScale;
|
|
132
|
+
var xMult = anchor === 'middle' ? 0 : anchor === 'start' ? 1 : -1;
|
|
133
|
+
var yMult = alignment === 'center' ? 0 : alignment === 'bottom' ? 1 : -1;
|
|
134
|
+
var xPadding = sizeScale / 4;
|
|
135
|
+
var yPadding = sizeScale * (1 + 1 / 4);
|
|
136
|
+
var secondaryOffset = 0.6 * (1 - yMult) * sizeScale;
|
|
137
|
+
var yOffset = secondary ? secondaryOffset : 0;
|
|
138
|
+
|
|
139
|
+
if (anchor === 'middle' && alignment === 'top' && getSecondaryText) {
|
|
140
|
+
yOffset -= secondaryOffset;
|
|
141
|
+
yOffset -= secondarySizeScale;
|
|
142
|
+
yOffset += sizeScale;
|
|
152
143
|
}
|
|
153
|
-
}, {
|
|
154
|
-
key: "calculateBackgroundPadding",
|
|
155
|
-
value: function calculateBackgroundPadding() {
|
|
156
|
-
var _this$props2 = this.props,
|
|
157
|
-
anchor = _this$props2.getTextAnchor,
|
|
158
|
-
alignment = _this$props2.getAlignmentBaseline,
|
|
159
|
-
sizeScale = _this$props2.sizeScale;
|
|
160
|
-
var paddingX = 12 * sizeScale;
|
|
161
|
-
var paddingY = 3 * sizeScale;
|
|
162
|
-
var backgroundPadding = [0, 0, 0, 0];
|
|
163
|
-
|
|
164
|
-
if (alignment === 'top') {
|
|
165
|
-
backgroundPadding[TOP] = paddingY;
|
|
166
|
-
} else if (alignment === 'bottom') {
|
|
167
|
-
backgroundPadding[BOTTOM] = paddingY;
|
|
168
|
-
} else {
|
|
169
|
-
backgroundPadding[TOP] = 0.5 * paddingY;
|
|
170
|
-
backgroundPadding[BOTTOM] = 0.5 * paddingY;
|
|
171
|
-
}
|
|
172
144
|
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
145
|
+
var radiusPadding = 1 + 1 / 4;
|
|
146
|
+
return typeof getRadius === 'function' ? function (d, info) {
|
|
147
|
+
var r = (info ? getRadius(d, info) : 1) * radiusScale * radiusPadding;
|
|
148
|
+
return [xMult * (r + xPadding), yMult * (r + yPadding) + yOffset];
|
|
149
|
+
} : [xMult * (getRadius * radiusScale * radiusPadding + xPadding), yMult * (getRadius * radiusScale * radiusPadding + yPadding) + yOffset];
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
_proto3.calculateBackgroundPadding = function calculateBackgroundPadding() {
|
|
153
|
+
var _this$props2 = this.props,
|
|
154
|
+
anchor = _this$props2.getTextAnchor,
|
|
155
|
+
alignment = _this$props2.getAlignmentBaseline,
|
|
156
|
+
sizeScale = _this$props2.sizeScale;
|
|
157
|
+
var paddingX = 12 * sizeScale;
|
|
158
|
+
var paddingY = 3 * sizeScale;
|
|
159
|
+
var backgroundPadding = [0, 0, 0, 0];
|
|
160
|
+
|
|
161
|
+
if (alignment === 'top') {
|
|
162
|
+
backgroundPadding[TOP] = paddingY;
|
|
163
|
+
} else if (alignment === 'bottom') {
|
|
164
|
+
backgroundPadding[BOTTOM] = paddingY;
|
|
165
|
+
} else {
|
|
166
|
+
backgroundPadding[TOP] = 0.5 * paddingY;
|
|
167
|
+
backgroundPadding[BOTTOM] = 0.5 * paddingY;
|
|
168
|
+
}
|
|
181
169
|
|
|
182
|
-
|
|
170
|
+
if (anchor === 'start') {
|
|
171
|
+
backgroundPadding[LEFT] = paddingX;
|
|
172
|
+
} else if (anchor === 'end') {
|
|
173
|
+
backgroundPadding[RIGHT] = paddingX;
|
|
174
|
+
} else {
|
|
175
|
+
backgroundPadding[LEFT] = 0.5 * paddingX;
|
|
176
|
+
backgroundPadding[RIGHT] = 0.5 * paddingX;
|
|
183
177
|
}
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
178
|
+
|
|
179
|
+
return backgroundPadding;
|
|
180
|
+
};
|
|
181
|
+
|
|
182
|
+
_proto3.renderTextLayer = function renderTextLayer(id, _ref2) {
|
|
183
|
+
var _ref2$updateTriggers = _ref2.updateTriggers,
|
|
184
|
+
updateTriggersOverride = _ref2$updateTriggers === void 0 ? {} : _ref2$updateTriggers,
|
|
185
|
+
props = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
|
|
186
|
+
var _this$props3 = this.props,
|
|
187
|
+
data = _this$props3.data,
|
|
188
|
+
characterSet = _this$props3.characterSet,
|
|
189
|
+
fontFamily = _this$props3.fontFamily,
|
|
190
|
+
fontSettings = _this$props3.fontSettings,
|
|
191
|
+
fontWeight = _this$props3.fontWeight,
|
|
192
|
+
outlineColor = _this$props3.outlineColor,
|
|
193
|
+
outlineWidth = _this$props3.outlineWidth,
|
|
194
|
+
sizeScale = _this$props3.sizeScale,
|
|
195
|
+
radiusScale = _this$props3.radiusScale,
|
|
196
|
+
getAlignmentBaseline = _this$props3.getAlignmentBaseline,
|
|
197
|
+
getColor = _this$props3.getColor,
|
|
198
|
+
getPosition = _this$props3.getPosition,
|
|
199
|
+
getTextAnchor = _this$props3.getTextAnchor,
|
|
200
|
+
updateTriggers = _this$props3.updateTriggers;
|
|
201
|
+
return new EnhancedTextLayer(this.getSubLayerProps({
|
|
202
|
+
id: id,
|
|
203
|
+
data: data,
|
|
204
|
+
characterSet: characterSet,
|
|
205
|
+
fontFamily: fontFamily,
|
|
206
|
+
fontSettings: fontSettings,
|
|
207
|
+
fontWeight: fontWeight,
|
|
208
|
+
outlineColor: outlineColor,
|
|
209
|
+
outlineWidth: outlineWidth,
|
|
210
|
+
sizeScale: sizeScale,
|
|
211
|
+
getAlignmentBaseline: getAlignmentBaseline,
|
|
212
|
+
getColor: getColor,
|
|
213
|
+
getPosition: getPosition,
|
|
214
|
+
getTextAnchor: getTextAnchor,
|
|
215
|
+
updateTriggers: _objectSpread(_objectSpread(_objectSpread({}, updateTriggers), updateTriggersOverride), {}, {
|
|
216
|
+
getPixelOffset: [updateTriggers.getRadius, updateTriggers.getTextAnchor, updateTriggers.getAlignmentBaseline, radiusScale, sizeScale]
|
|
217
|
+
})
|
|
218
|
+
}), {
|
|
219
|
+
getSize: 1,
|
|
220
|
+
_subLayerProps: {
|
|
221
|
+
background: {
|
|
222
|
+
type: EnhancedTextBackgroundLayer
|
|
228
223
|
}
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
224
|
+
}
|
|
225
|
+
}, props);
|
|
226
|
+
};
|
|
227
|
+
|
|
228
|
+
_proto3.renderLayers = function renderLayers() {
|
|
229
|
+
var _this$props4 = this.props,
|
|
230
|
+
getText = _this$props4.getText,
|
|
231
|
+
getSecondaryColor = _this$props4.getSecondaryColor,
|
|
232
|
+
getSecondaryText = _this$props4.getSecondaryText,
|
|
233
|
+
secondaryOutlineColor = _this$props4.secondaryOutlineColor,
|
|
234
|
+
secondarySizeScale = _this$props4.secondarySizeScale,
|
|
235
|
+
updateTriggers = _this$props4.updateTriggers;
|
|
236
|
+
var getPixelOffset = this.calculatePixelOffset(false);
|
|
237
|
+
var backgroundPadding = this.calculateBackgroundPadding();
|
|
238
|
+
var out = [this.renderTextLayer("".concat(updateTriggers.getText, "-primary"), {
|
|
239
|
+
backgroundPadding: backgroundPadding,
|
|
240
|
+
getText: getText,
|
|
241
|
+
getPixelOffset: getPixelOffset,
|
|
242
|
+
background: true
|
|
243
|
+
}), Boolean(getSecondaryText) && this.renderTextLayer("".concat(updateTriggers.getSecondaryText, "-secondary"), _objectSpread(_objectSpread(_objectSpread({
|
|
244
|
+
getText: getSecondaryText,
|
|
245
|
+
getPixelOffset: this.calculatePixelOffset(true),
|
|
246
|
+
getAlignmentBaseline: 'top'
|
|
247
|
+
}, getSecondaryColor && {
|
|
248
|
+
getColor: getSecondaryColor
|
|
249
|
+
}), secondarySizeScale && {
|
|
250
|
+
sizeScale: secondarySizeScale
|
|
251
|
+
}), secondaryOutlineColor && {
|
|
252
|
+
outlineColor: secondaryOutlineColor
|
|
253
|
+
}))];
|
|
254
|
+
return out;
|
|
255
|
+
};
|
|
256
|
+
|
|
262
257
|
return PointLabelLayer;
|
|
263
258
|
}(_core.CompositeLayer);
|
|
264
259
|
|
|
265
260
|
exports.default = PointLabelLayer;
|
|
266
|
-
|
|
267
|
-
|
|
261
|
+
PointLabelLayer.layerName = 'PointLabelLayer';
|
|
262
|
+
PointLabelLayer.defaultProps = defaultProps;
|
|
268
263
|
//# sourceMappingURL=point-label-layer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/layers/point-label-layer.ts"],"names":["LEFT","TOP","RIGHT","BOTTOM","EnhancedTextBackgroundLayer","shaders","vs","replaceAll","replace","TextBackgroundLayer","EnhancedTextLayer","layer","renderPass","background","id","includes","TextLayer","defaultProps","getRadius","type","value","radiusScale","min","PointLabelLayer","secondary","props","anchor","getTextAnchor","alignment","getAlignmentBaseline","getSecondaryText","secondarySizeScale","sizeScale","xMult","yMult","xPadding","yPadding","secondaryOffset","yOffset","radiusPadding","d","info","r","paddingX","paddingY","backgroundPadding","updateTriggers","updateTriggersOverride","data","characterSet","fontFamily","fontSettings","fontWeight","outlineColor","outlineWidth","getColor","getPosition","getSubLayerProps","getPixelOffset","getSize","_subLayerProps","getText","getSecondaryColor","secondaryOutlineColor","calculatePixelOffset","calculateBackgroundPadding","out","renderTextLayer","Boolean","CompositeLayer"],"mappings":"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","sourcesContent":["import {\n Accessor,\n Color,\n CompositeLayer,\n CompositeLayerProps,\n DefaultProps,\n Layer,\n LayersList\n} from '@deck.gl/core';\nimport {\n TextLayer,\n TextLayerProps,\n _TextBackgroundLayer as TextBackgroundLayer\n} from '@deck.gl/layers';\n\nconst [LEFT, TOP, RIGHT, BOTTOM] = [0, 1, 2, 3];\n\nclass EnhancedTextBackgroundLayer extends TextBackgroundLayer {\n static layerName = 'EnhancedTextBackgroundLayer';\n\n getShaders() {\n const shaders = super.getShaders();\n let vs = shaders.vs;\n\n // Modify shader so that the padding is offset by the pixel offset to ensure the padding\n // always captures the anchor point. As padding is uniform we cannot pass it a per-label value\n vs = vs.replaceAll('padding.', '_padding.');\n vs = vs.replace(\n 'void main(void) {',\n 'void main(void) {\\n vec4 _padding = padding + instancePixelOffsets.xyxy * vec4(1.0, 1.0, -1.0, -1.0);'\n );\n\n return {...shaders, vs};\n }\n}\n\n// TextLayer which includes modified text-background-layer-vertex shader and only renders the\n// primary background layer in the collision pass\nclass EnhancedTextLayer extends TextLayer {\n static layerName = 'EnhancedTextLayer';\n\n filterSubLayer({layer, renderPass}) {\n const background = layer.id.includes('primary-background');\n if (renderPass === 'collision') {\n return background; // Only draw primary background layer in collision pass\n }\n\n return !background; // Do not draw background layer in other passes\n }\n}\n\nconst defaultProps: DefaultProps<PointLabelLayerProps> = {\n ...TextLayer.defaultProps,\n getRadius: {type: 'accessor', value: 1},\n radiusScale: {type: 'number', min: 0, value: 1}\n};\n\n/** All properties supported by PointLabelLayer. */\nexport type PointLabelLayerProps<DataT = any> = _PointLabelLayerProps<DataT> &\n TextLayerProps &\n CompositeLayerProps;\n\n/** Properties added by PointLabelLayer. */\ntype _PointLabelLayerProps<DataT> = TextLayerProps<DataT> & {\n /**\n * Radius multiplier.\n * @default 1\n */\n radiusScale?: number;\n /**\n * Radius accessor.\n * @default 1\n */\n getRadius?: Accessor<DataT, number>;\n /**\n * Secondary label text accessor\n */\n getSecondaryText?: Accessor<DataT, string>;\n /**\n * Secondary label color accessor\n * @default [0, 0, 0, 255]\n */\n getSecondaryColor?: Accessor<DataT, Color>;\n /**\n * Secondary label color of outline around the text, in `[r, g, b, [a]]`. Each channel is a number between 0-255 and `a` is 255 if not supplied.\n * @default [0, 0, 0, 255]\n */\n secondaryOutlineColor?: Color;\n /**\n * Secondary label text size multiplier.\n * @default 1\n */\n secondarySizeScale?: number;\n};\n\nexport default class PointLabelLayer<\n DataT = any,\n ExtraProps extends {} = {}\n> extends CompositeLayer<ExtraProps & Required<_PointLabelLayerProps<DataT>>> {\n static layerName = 'PointLabelLayer';\n static defaultProps = defaultProps;\n\n calculatePixelOffset(secondary) {\n const {\n getTextAnchor: anchor,\n getAlignmentBaseline: alignment,\n getRadius,\n getSecondaryText,\n radiusScale,\n secondarySizeScale,\n sizeScale\n } = this.props;\n const xMult = anchor === 'middle' ? 0 : anchor === 'start' ? 1 : -1;\n const yMult = alignment === 'center' ? 0 : alignment === 'bottom' ? 1 : -1;\n\n // Padding based on font size (font size / 4)\n const xPadding = sizeScale / 4;\n const yPadding = sizeScale * (1 + 1 / 4);\n\n // Place secondary label under main label (secondary label always 'top' baseline aligned)\n const secondaryOffset = 0.6 * (1 - yMult) * sizeScale;\n let yOffset = secondary ? secondaryOffset : 0;\n\n // Special case, position relative to secondary label\n if (anchor === 'middle' && alignment === 'top' && getSecondaryText) {\n yOffset -= secondaryOffset;\n yOffset -= secondarySizeScale;\n yOffset += sizeScale;\n }\n\n // Padding based on point radius (radius/ 4)\n const radiusPadding = 1 + 1 / 4;\n\n return typeof getRadius === 'function'\n ? (d, info) => {\n const r = (info ? getRadius(d, info) : 1) * radiusScale * radiusPadding;\n return [xMult * (r + xPadding), yMult * (r + yPadding) + yOffset];\n }\n : [\n xMult * (getRadius * radiusScale * radiusPadding + xPadding),\n yMult * (getRadius * radiusScale * radiusPadding + yPadding) + yOffset\n ];\n }\n\n calculateBackgroundPadding() {\n const {getTextAnchor: anchor, getAlignmentBaseline: alignment, sizeScale} = this.props;\n\n // Heuristics to avoid label overlap\n const paddingX = 12 * sizeScale;\n const paddingY = 3 * sizeScale;\n const backgroundPadding = [0, 0, 0, 0];\n if (alignment === 'top') {\n backgroundPadding[TOP] = paddingY;\n } else if (alignment === 'bottom') {\n backgroundPadding[BOTTOM] = paddingY;\n } else {\n backgroundPadding[TOP] = 0.5 * paddingY;\n backgroundPadding[BOTTOM] = 0.5 * paddingY;\n }\n if (anchor === 'start') {\n backgroundPadding[LEFT] = paddingX;\n } else if (anchor === 'end') {\n backgroundPadding[RIGHT] = paddingX;\n } else {\n backgroundPadding[LEFT] = 0.5 * paddingX;\n backgroundPadding[RIGHT] = 0.5 * paddingX;\n }\n\n return backgroundPadding;\n }\n\n renderTextLayer(id, {updateTriggers: updateTriggersOverride = {}, ...props}): EnhancedTextLayer {\n const {\n data,\n\n characterSet,\n fontFamily,\n fontSettings,\n fontWeight,\n outlineColor,\n outlineWidth,\n sizeScale,\n radiusScale,\n\n getAlignmentBaseline,\n getColor,\n getPosition,\n getTextAnchor,\n\n updateTriggers\n } = this.props;\n\n return new EnhancedTextLayer(\n this.getSubLayerProps({\n id,\n data,\n\n characterSet,\n fontFamily,\n fontSettings,\n fontWeight,\n outlineColor,\n outlineWidth,\n sizeScale,\n\n getAlignmentBaseline,\n getColor,\n getPosition,\n getTextAnchor,\n\n updateTriggers: {\n ...updateTriggers,\n ...updateTriggersOverride,\n getPixelOffset: [\n updateTriggers.getRadius,\n updateTriggers.getTextAnchor,\n updateTriggers.getAlignmentBaseline,\n radiusScale,\n sizeScale\n ]\n }\n }),\n {\n getSize: 1,\n _subLayerProps: {background: {type: EnhancedTextBackgroundLayer}}\n },\n props\n );\n }\n\n renderLayers(): Layer | null | LayersList {\n const {\n getText,\n getSecondaryColor,\n getSecondaryText,\n secondaryOutlineColor,\n secondarySizeScale,\n updateTriggers\n } = this.props;\n const getPixelOffset = this.calculatePixelOffset(false);\n const backgroundPadding = this.calculateBackgroundPadding();\n const out = [\n // Text doesn't update via updateTrigger for some reason\n this.renderTextLayer(`${updateTriggers.getText}-primary`, {\n backgroundPadding,\n getText,\n getPixelOffset,\n background: true // Only use background for primary label for faster collisions\n }),\n Boolean(getSecondaryText) &&\n this.renderTextLayer(`${updateTriggers.getSecondaryText}-secondary`, {\n getText: getSecondaryText,\n getPixelOffset: this.calculatePixelOffset(true),\n getAlignmentBaseline: 'top',\n // updateTriggers: {getText: updateTriggers.getSecondaryText},\n\n // Optional overrides\n ...(getSecondaryColor && {getColor: getSecondaryColor}),\n ...(secondarySizeScale && {sizeScale: secondarySizeScale}),\n ...(secondaryOutlineColor && {outlineColor: secondaryOutlineColor})\n })\n ];\n\n return out;\n }\n}\n"],"file":"point-label-layer.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/layers/point-label-layer.ts"],"names":["LEFT","TOP","RIGHT","BOTTOM","EnhancedTextBackgroundLayer","getShaders","shaders","vs","replaceAll","replace","TextBackgroundLayer","layerName","EnhancedTextLayer","filterSubLayer","layer","renderPass","background","id","includes","TextLayer","defaultProps","getRadius","type","value","radiusScale","min","PointLabelLayer","calculatePixelOffset","secondary","props","anchor","getTextAnchor","alignment","getAlignmentBaseline","getSecondaryText","secondarySizeScale","sizeScale","xMult","yMult","xPadding","yPadding","secondaryOffset","yOffset","radiusPadding","d","info","r","calculateBackgroundPadding","paddingX","paddingY","backgroundPadding","renderTextLayer","updateTriggers","updateTriggersOverride","data","characterSet","fontFamily","fontSettings","fontWeight","outlineColor","outlineWidth","getColor","getPosition","getSubLayerProps","getPixelOffset","getSize","_subLayerProps","renderLayers","getText","getSecondaryColor","secondaryOutlineColor","out","Boolean","CompositeLayer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AASA;;;;;;;;;;;;AAMA,IAAOA,IAAP,GAAoC,CAApC;AAAA,IAAaC,GAAb,GAAuC,CAAvC;AAAA,IAAkBC,KAAlB,GAA0C,CAA1C;AAAA,IAAyBC,MAAzB,GAA6C,CAA7C;;IAEMC,2B;;;;;;;;;;;;SAGJC,U,GAAA,sBAAa;AACX,QAAMC,OAAO,0HAAb;AACA,QAAIC,EAAE,GAAGD,OAAO,CAACC,EAAjB;AAIAA,IAAAA,EAAE,GAAGA,EAAE,CAACC,UAAH,CAAc,UAAd,EAA0B,WAA1B,CAAL;AACAD,IAAAA,EAAE,GAAGA,EAAE,CAACE,OAAH,CACH,mBADG,EAEH,wGAFG,CAAL;AAKA,2CAAWH,OAAX;AAAoBC,MAAAA,EAAE,EAAFA;AAApB;AACD,G;;;EAhBuCG,4B;;AAApCN,2B,CACGO,S,GAAY,6B;;IAoBfC,iB;;;;;;;;;;;;UAGJC,c,GAAA,8BAAoC;AAAA,QAApBC,KAAoB,QAApBA,KAAoB;AAAA,QAAbC,UAAa,QAAbA,UAAa;AAClC,QAAMC,UAAU,GAAGF,KAAK,CAACG,EAAN,CAASC,QAAT,CAAkB,oBAAlB,CAAnB;;AACA,QAAIH,UAAU,KAAK,WAAnB,EAAgC;AAC9B,aAAOC,UAAP;AACD;;AAED,WAAO,CAACA,UAAR;AACD,G;;;EAV6BG,iB;;AAA1BP,iB,CACGD,S,GAAY,mB;;AAYrB,IAAMS,YAAgD,mCACjDD,kBAAUC,YADuC;AAEpDC,EAAAA,SAAS,EAAE;AAACC,IAAAA,IAAI,EAAE,UAAP;AAAmBC,IAAAA,KAAK,EAAE;AAA1B,GAFyC;AAGpDC,EAAAA,WAAW,EAAE;AAACF,IAAAA,IAAI,EAAE,QAAP;AAAiBG,IAAAA,GAAG,EAAE,CAAtB;AAAyBF,IAAAA,KAAK,EAAE;AAAhC;AAHuC,EAAtD;;IA4CqBG,e;;;;;;;;;;;;UAOnBC,oB,GAAA,8BAAqBC,SAArB,EAAgC;AAC9B,sBAQI,KAAKC,KART;AAAA,QACiBC,MADjB,eACEC,aADF;AAAA,QAEwBC,SAFxB,eAEEC,oBAFF;AAAA,QAGEZ,SAHF,eAGEA,SAHF;AAAA,QAIEa,gBAJF,eAIEA,gBAJF;AAAA,QAKEV,WALF,eAKEA,WALF;AAAA,QAMEW,kBANF,eAMEA,kBANF;AAAA,QAOEC,SAPF,eAOEA,SAPF;AASA,QAAMC,KAAK,GAAGP,MAAM,KAAK,QAAX,GAAsB,CAAtB,GAA0BA,MAAM,KAAK,OAAX,GAAqB,CAArB,GAAyB,CAAC,CAAlE;AACA,QAAMQ,KAAK,GAAGN,SAAS,KAAK,QAAd,GAAyB,CAAzB,GAA6BA,SAAS,KAAK,QAAd,GAAyB,CAAzB,GAA6B,CAAC,CAAzE;AAGA,QAAMO,QAAQ,GAAGH,SAAS,GAAG,CAA7B;AACA,QAAMI,QAAQ,GAAGJ,SAAS,IAAI,IAAI,IAAI,CAAZ,CAA1B;AAGA,QAAMK,eAAe,GAAG,OAAO,IAAIH,KAAX,IAAoBF,SAA5C;AACA,QAAIM,OAAO,GAAGd,SAAS,GAAGa,eAAH,GAAqB,CAA5C;;AAGA,QAAIX,MAAM,KAAK,QAAX,IAAuBE,SAAS,KAAK,KAArC,IAA8CE,gBAAlD,EAAoE;AAClEQ,MAAAA,OAAO,IAAID,eAAX;AACAC,MAAAA,OAAO,IAAIP,kBAAX;AACAO,MAAAA,OAAO,IAAIN,SAAX;AACD;;AAGD,QAAMO,aAAa,GAAG,IAAI,IAAI,CAA9B;AAEA,WAAO,OAAOtB,SAAP,KAAqB,UAArB,GACH,UAACuB,CAAD,EAAIC,IAAJ,EAAa;AACX,UAAMC,CAAC,GAAG,CAACD,IAAI,GAAGxB,SAAS,CAACuB,CAAD,EAAIC,IAAJ,CAAZ,GAAwB,CAA7B,IAAkCrB,WAAlC,GAAgDmB,aAA1D;AACA,aAAO,CAACN,KAAK,IAAIS,CAAC,GAAGP,QAAR,CAAN,EAAyBD,KAAK,IAAIQ,CAAC,GAAGN,QAAR,CAAL,GAAyBE,OAAlD,CAAP;AACD,KAJE,GAKH,CACEL,KAAK,IAAIhB,SAAS,GAAGG,WAAZ,GAA0BmB,aAA1B,GAA0CJ,QAA9C,CADP,EAEED,KAAK,IAAIjB,SAAS,GAAGG,WAAZ,GAA0BmB,aAA1B,GAA0CH,QAA9C,CAAL,GAA+DE,OAFjE,CALJ;AASD,G;;UAEDK,0B,GAAA,sCAA6B;AAC3B,uBAA4E,KAAKlB,KAAjF;AAAA,QAAsBC,MAAtB,gBAAOC,aAAP;AAAA,QAAoDC,SAApD,gBAA8BC,oBAA9B;AAAA,QAA+DG,SAA/D,gBAA+DA,SAA/D;AAGA,QAAMY,QAAQ,GAAG,KAAKZ,SAAtB;AACA,QAAMa,QAAQ,GAAG,IAAIb,SAArB;AACA,QAAMc,iBAAiB,GAAG,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CAA1B;;AACA,QAAIlB,SAAS,KAAK,KAAlB,EAAyB;AACvBkB,MAAAA,iBAAiB,CAACjD,GAAD,CAAjB,GAAyBgD,QAAzB;AACD,KAFD,MAEO,IAAIjB,SAAS,KAAK,QAAlB,EAA4B;AACjCkB,MAAAA,iBAAiB,CAAC/C,MAAD,CAAjB,GAA4B8C,QAA5B;AACD,KAFM,MAEA;AACLC,MAAAA,iBAAiB,CAACjD,GAAD,CAAjB,GAAyB,MAAMgD,QAA/B;AACAC,MAAAA,iBAAiB,CAAC/C,MAAD,CAAjB,GAA4B,MAAM8C,QAAlC;AACD;;AACD,QAAInB,MAAM,KAAK,OAAf,EAAwB;AACtBoB,MAAAA,iBAAiB,CAAClD,IAAD,CAAjB,GAA0BgD,QAA1B;AACD,KAFD,MAEO,IAAIlB,MAAM,KAAK,KAAf,EAAsB;AAC3BoB,MAAAA,iBAAiB,CAAChD,KAAD,CAAjB,GAA2B8C,QAA3B;AACD,KAFM,MAEA;AACLE,MAAAA,iBAAiB,CAAClD,IAAD,CAAjB,GAA0B,MAAMgD,QAAhC;AACAE,MAAAA,iBAAiB,CAAChD,KAAD,CAAjB,GAA2B,MAAM8C,QAAjC;AACD;;AAED,WAAOE,iBAAP;AACD,G;;UAEDC,e,GAAA,yBAAgBlC,EAAhB,SAAgG;AAAA,qCAA3EmC,cAA2E;AAAA,QAA3DC,sBAA2D,qCAAlC,EAAkC;AAAA,QAA3BxB,KAA2B;AAC9F,uBAkBI,KAAKA,KAlBT;AAAA,QACEyB,IADF,gBACEA,IADF;AAAA,QAGEC,YAHF,gBAGEA,YAHF;AAAA,QAIEC,UAJF,gBAIEA,UAJF;AAAA,QAKEC,YALF,gBAKEA,YALF;AAAA,QAMEC,UANF,gBAMEA,UANF;AAAA,QAOEC,YAPF,gBAOEA,YAPF;AAAA,QAQEC,YARF,gBAQEA,YARF;AAAA,QASExB,SATF,gBASEA,SATF;AAAA,QAUEZ,WAVF,gBAUEA,WAVF;AAAA,QAYES,oBAZF,gBAYEA,oBAZF;AAAA,QAaE4B,QAbF,gBAaEA,QAbF;AAAA,QAcEC,WAdF,gBAcEA,WAdF;AAAA,QAeE/B,aAfF,gBAeEA,aAfF;AAAA,QAiBEqB,cAjBF,gBAiBEA,cAjBF;AAoBA,WAAO,IAAIxC,iBAAJ,CACL,KAAKmD,gBAAL,CAAsB;AACpB9C,MAAAA,EAAE,EAAFA,EADoB;AAEpBqC,MAAAA,IAAI,EAAJA,IAFoB;AAIpBC,MAAAA,YAAY,EAAZA,YAJoB;AAKpBC,MAAAA,UAAU,EAAVA,UALoB;AAMpBC,MAAAA,YAAY,EAAZA,YANoB;AAOpBC,MAAAA,UAAU,EAAVA,UAPoB;AAQpBC,MAAAA,YAAY,EAAZA,YARoB;AASpBC,MAAAA,YAAY,EAAZA,YAToB;AAUpBxB,MAAAA,SAAS,EAATA,SAVoB;AAYpBH,MAAAA,oBAAoB,EAApBA,oBAZoB;AAapB4B,MAAAA,QAAQ,EAARA,QAboB;AAcpBC,MAAAA,WAAW,EAAXA,WAdoB;AAepB/B,MAAAA,aAAa,EAAbA,aAfoB;AAiBpBqB,MAAAA,cAAc,gDACTA,cADS,GAETC,sBAFS;AAGZW,QAAAA,cAAc,EAAE,CACdZ,cAAc,CAAC/B,SADD,EAEd+B,cAAc,CAACrB,aAFD,EAGdqB,cAAc,CAACnB,oBAHD,EAIdT,WAJc,EAKdY,SALc;AAHJ;AAjBM,KAAtB,CADK,EA8BL;AACE6B,MAAAA,OAAO,EAAE,CADX;AAEEC,MAAAA,cAAc,EAAE;AAAClD,QAAAA,UAAU,EAAE;AAACM,UAAAA,IAAI,EAAElB;AAAP;AAAb;AAFlB,KA9BK,EAkCLyB,KAlCK,CAAP;AAoCD,G;;UAEDsC,Y,GAAA,wBAA0C;AACxC,uBAOI,KAAKtC,KAPT;AAAA,QACEuC,OADF,gBACEA,OADF;AAAA,QAEEC,iBAFF,gBAEEA,iBAFF;AAAA,QAGEnC,gBAHF,gBAGEA,gBAHF;AAAA,QAIEoC,qBAJF,gBAIEA,qBAJF;AAAA,QAKEnC,kBALF,gBAKEA,kBALF;AAAA,QAMEiB,cANF,gBAMEA,cANF;AAQA,QAAMY,cAAc,GAAG,KAAKrC,oBAAL,CAA0B,KAA1B,CAAvB;AACA,QAAMuB,iBAAiB,GAAG,KAAKH,0BAAL,EAA1B;AACA,QAAMwB,GAAG,GAAG,CAEV,KAAKpB,eAAL,WAAwBC,cAAc,CAACgB,OAAvC,eAA0D;AACxDlB,MAAAA,iBAAiB,EAAjBA,iBADwD;AAExDkB,MAAAA,OAAO,EAAPA,OAFwD;AAGxDJ,MAAAA,cAAc,EAAdA,cAHwD;AAIxDhD,MAAAA,UAAU,EAAE;AAJ4C,KAA1D,CAFU,EAQVwD,OAAO,CAACtC,gBAAD,CAAP,IACE,KAAKiB,eAAL,WAAwBC,cAAc,CAAClB,gBAAvC;AACEkC,MAAAA,OAAO,EAAElC,gBADX;AAEE8B,MAAAA,cAAc,EAAE,KAAKrC,oBAAL,CAA0B,IAA1B,CAFlB;AAGEM,MAAAA,oBAAoB,EAAE;AAHxB,OAOMoC,iBAAiB,IAAI;AAACR,MAAAA,QAAQ,EAAEQ;AAAX,KAP3B,GAQMlC,kBAAkB,IAAI;AAACC,MAAAA,SAAS,EAAED;AAAZ,KAR5B,GASMmC,qBAAqB,IAAI;AAACX,MAAAA,YAAY,EAAEW;AAAf,KAT/B,EATQ,CAAZ;AAsBA,WAAOC,GAAP;AACD,G;;;EAtKOE,oB;;;AAHW/C,e,CAIZf,S,GAAY,iB;AAJAe,e,CAKZN,Y,GAAeA,Y","sourcesContent":["import {\n Accessor,\n Color,\n CompositeLayer,\n CompositeLayerProps,\n DefaultProps,\n Layer,\n LayersList\n} from '@deck.gl/core';\nimport {\n TextLayer,\n TextLayerProps,\n _TextBackgroundLayer as TextBackgroundLayer\n} from '@deck.gl/layers';\n\nconst [LEFT, TOP, RIGHT, BOTTOM] = [0, 1, 2, 3];\n\nclass EnhancedTextBackgroundLayer extends TextBackgroundLayer {\n static layerName = 'EnhancedTextBackgroundLayer';\n\n getShaders() {\n const shaders = super.getShaders();\n let vs = shaders.vs;\n\n // Modify shader so that the padding is offset by the pixel offset to ensure the padding\n // always captures the anchor point. As padding is uniform we cannot pass it a per-label value\n vs = vs.replaceAll('padding.', '_padding.');\n vs = vs.replace(\n 'void main(void) {',\n 'void main(void) {\\n vec4 _padding = padding + instancePixelOffsets.xyxy * vec4(1.0, 1.0, -1.0, -1.0);'\n );\n\n return {...shaders, vs};\n }\n}\n\n// TextLayer which includes modified text-background-layer-vertex shader and only renders the\n// primary background layer in the collision pass\nclass EnhancedTextLayer extends TextLayer {\n static layerName = 'EnhancedTextLayer';\n\n filterSubLayer({layer, renderPass}) {\n const background = layer.id.includes('primary-background');\n if (renderPass === 'collision') {\n return background; // Only draw primary background layer in collision pass\n }\n\n return !background; // Do not draw background layer in other passes\n }\n}\n\nconst defaultProps: DefaultProps<PointLabelLayerProps> = {\n ...TextLayer.defaultProps,\n getRadius: {type: 'accessor', value: 1},\n radiusScale: {type: 'number', min: 0, value: 1}\n};\n\n/** All properties supported by PointLabelLayer. */\nexport type PointLabelLayerProps<DataT = any> = _PointLabelLayerProps<DataT> &\n TextLayerProps &\n CompositeLayerProps;\n\n/** Properties added by PointLabelLayer. */\ntype _PointLabelLayerProps<DataT> = TextLayerProps<DataT> & {\n /**\n * Radius multiplier.\n * @default 1\n */\n radiusScale?: number;\n /**\n * Radius accessor.\n * @default 1\n */\n getRadius?: Accessor<DataT, number>;\n /**\n * Secondary label text accessor\n */\n getSecondaryText?: Accessor<DataT, string>;\n /**\n * Secondary label color accessor\n * @default [0, 0, 0, 255]\n */\n getSecondaryColor?: Accessor<DataT, Color>;\n /**\n * Secondary label color of outline around the text, in `[r, g, b, [a]]`. Each channel is a number between 0-255 and `a` is 255 if not supplied.\n * @default [0, 0, 0, 255]\n */\n secondaryOutlineColor?: Color;\n /**\n * Secondary label text size multiplier.\n * @default 1\n */\n secondarySizeScale?: number;\n};\n\nexport default class PointLabelLayer<\n DataT = any,\n ExtraProps extends {} = {}\n> extends CompositeLayer<ExtraProps & Required<_PointLabelLayerProps<DataT>>> {\n static layerName = 'PointLabelLayer';\n static defaultProps = defaultProps;\n\n calculatePixelOffset(secondary) {\n const {\n getTextAnchor: anchor,\n getAlignmentBaseline: alignment,\n getRadius,\n getSecondaryText,\n radiusScale,\n secondarySizeScale,\n sizeScale\n } = this.props;\n const xMult = anchor === 'middle' ? 0 : anchor === 'start' ? 1 : -1;\n const yMult = alignment === 'center' ? 0 : alignment === 'bottom' ? 1 : -1;\n\n // Padding based on font size (font size / 4)\n const xPadding = sizeScale / 4;\n const yPadding = sizeScale * (1 + 1 / 4);\n\n // Place secondary label under main label (secondary label always 'top' baseline aligned)\n const secondaryOffset = 0.6 * (1 - yMult) * sizeScale;\n let yOffset = secondary ? secondaryOffset : 0;\n\n // Special case, position relative to secondary label\n if (anchor === 'middle' && alignment === 'top' && getSecondaryText) {\n yOffset -= secondaryOffset;\n yOffset -= secondarySizeScale;\n yOffset += sizeScale;\n }\n\n // Padding based on point radius (radius/ 4)\n const radiusPadding = 1 + 1 / 4;\n\n return typeof getRadius === 'function'\n ? (d, info) => {\n const r = (info ? getRadius(d, info) : 1) * radiusScale * radiusPadding;\n return [xMult * (r + xPadding), yMult * (r + yPadding) + yOffset];\n }\n : [\n xMult * (getRadius * radiusScale * radiusPadding + xPadding),\n yMult * (getRadius * radiusScale * radiusPadding + yPadding) + yOffset\n ];\n }\n\n calculateBackgroundPadding() {\n const {getTextAnchor: anchor, getAlignmentBaseline: alignment, sizeScale} = this.props;\n\n // Heuristics to avoid label overlap\n const paddingX = 12 * sizeScale;\n const paddingY = 3 * sizeScale;\n const backgroundPadding = [0, 0, 0, 0];\n if (alignment === 'top') {\n backgroundPadding[TOP] = paddingY;\n } else if (alignment === 'bottom') {\n backgroundPadding[BOTTOM] = paddingY;\n } else {\n backgroundPadding[TOP] = 0.5 * paddingY;\n backgroundPadding[BOTTOM] = 0.5 * paddingY;\n }\n if (anchor === 'start') {\n backgroundPadding[LEFT] = paddingX;\n } else if (anchor === 'end') {\n backgroundPadding[RIGHT] = paddingX;\n } else {\n backgroundPadding[LEFT] = 0.5 * paddingX;\n backgroundPadding[RIGHT] = 0.5 * paddingX;\n }\n\n return backgroundPadding;\n }\n\n renderTextLayer(id, {updateTriggers: updateTriggersOverride = {}, ...props}): EnhancedTextLayer {\n const {\n data,\n\n characterSet,\n fontFamily,\n fontSettings,\n fontWeight,\n outlineColor,\n outlineWidth,\n sizeScale,\n radiusScale,\n\n getAlignmentBaseline,\n getColor,\n getPosition,\n getTextAnchor,\n\n updateTriggers\n } = this.props;\n\n return new EnhancedTextLayer(\n this.getSubLayerProps({\n id,\n data,\n\n characterSet,\n fontFamily,\n fontSettings,\n fontWeight,\n outlineColor,\n outlineWidth,\n sizeScale,\n\n getAlignmentBaseline,\n getColor,\n getPosition,\n getTextAnchor,\n\n updateTriggers: {\n ...updateTriggers,\n ...updateTriggersOverride,\n getPixelOffset: [\n updateTriggers.getRadius,\n updateTriggers.getTextAnchor,\n updateTriggers.getAlignmentBaseline,\n radiusScale,\n sizeScale\n ]\n }\n }),\n {\n getSize: 1,\n _subLayerProps: {background: {type: EnhancedTextBackgroundLayer}}\n },\n props\n );\n }\n\n renderLayers(): Layer | null | LayersList {\n const {\n getText,\n getSecondaryColor,\n getSecondaryText,\n secondaryOutlineColor,\n secondarySizeScale,\n updateTriggers\n } = this.props;\n const getPixelOffset = this.calculatePixelOffset(false);\n const backgroundPadding = this.calculateBackgroundPadding();\n const out = [\n // Text doesn't update via updateTrigger for some reason\n this.renderTextLayer(`${updateTriggers.getText}-primary`, {\n backgroundPadding,\n getText,\n getPixelOffset,\n background: true // Only use background for primary label for faster collisions\n }),\n Boolean(getSecondaryText) &&\n this.renderTextLayer(`${updateTriggers.getSecondaryText}-secondary`, {\n getText: getSecondaryText,\n getPixelOffset: this.calculatePixelOffset(true),\n getAlignmentBaseline: 'top',\n // updateTriggers: {getText: updateTriggers.getSecondaryText},\n\n // Optional overrides\n ...(getSecondaryColor && {getColor: getSecondaryColor}),\n ...(secondarySizeScale && {sizeScale: secondarySizeScale}),\n ...(secondaryOutlineColor && {outlineColor: secondaryOutlineColor})\n })\n ];\n\n return out;\n }\n}\n"],"file":"point-label-layer.js"}
|
|
@@ -9,16 +9,12 @@ exports.default = void 0;
|
|
|
9
9
|
|
|
10
10
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
11
|
|
|
12
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
-
|
|
14
12
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
13
|
|
|
16
14
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
17
15
|
|
|
18
16
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
19
17
|
|
|
20
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
21
|
-
|
|
22
18
|
var _geoLayers = require("@deck.gl/geo-layers");
|
|
23
19
|
|
|
24
20
|
var _quadbinUtils = require("./quadbin-utils");
|
|
@@ -46,31 +42,31 @@ var QuadbinLayer = function (_GeoCellLayer) {
|
|
|
46
42
|
return _super.apply(this, arguments);
|
|
47
43
|
}
|
|
48
44
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
45
|
+
var _proto = QuadbinLayer.prototype;
|
|
46
|
+
|
|
47
|
+
_proto.indexToBounds = function indexToBounds() {
|
|
48
|
+
var _this$props = this.props,
|
|
49
|
+
data = _this$props.data,
|
|
50
|
+
extruded = _this$props.extruded,
|
|
51
|
+
getQuadbin = _this$props.getQuadbin;
|
|
52
|
+
var coverage = extruded ? 0.99 : 1;
|
|
53
|
+
return {
|
|
54
|
+
data: data,
|
|
55
|
+
_normalize: false,
|
|
56
|
+
positionFormat: 'XY',
|
|
57
|
+
getPolygon: function getPolygon(x, objectInfo) {
|
|
58
|
+
return (0, _quadbinUtils.getQuadbinPolygon)(getQuadbin(x, objectInfo), coverage);
|
|
59
|
+
},
|
|
60
|
+
updateTriggers: {
|
|
61
|
+
getPolygon: coverage
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
|
|
70
66
|
return QuadbinLayer;
|
|
71
67
|
}(_geoLayers._GeoCellLayer);
|
|
72
68
|
|
|
73
69
|
exports.default = QuadbinLayer;
|
|
74
|
-
|
|
75
|
-
|
|
70
|
+
QuadbinLayer.layerName = 'QuadbinLayer';
|
|
71
|
+
QuadbinLayer.defaultProps = defaultProps;
|
|
76
72
|
//# sourceMappingURL=quadbin-layer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/layers/quadbin-layer.ts"],"names":["defaultProps","getQuadbin","type","value","d","quadbin","QuadbinLayer","props","data","extruded","coverage","_normalize","positionFormat","getPolygon","x","objectInfo","updateTriggers","GeoCellLayer"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/layers/quadbin-layer.ts"],"names":["defaultProps","getQuadbin","type","value","d","quadbin","QuadbinLayer","indexToBounds","props","data","extruded","coverage","_normalize","positionFormat","getPolygon","x","objectInfo","updateTriggers","GeoCellLayer","layerName"],"mappings":";;;;;;;;;;;;;;;;;AACA;;AAIA;;;;;;AAEA,IAAMA,YAA6C,GAAG;AACpDC,EAAAA,UAAU,EAAE;AAACC,IAAAA,IAAI,EAAE,UAAP;AAAmBC,IAAAA,KAAK,EAAE,eAAAC,CAAC;AAAA,aAAIA,CAAC,CAACC,OAAN;AAAA;AAA3B;AADwC,CAAtD;;IAiBqBC,Y;;;;;;;;;;;;SAOnBC,a,GAAA,yBAAuD;AACrD,sBAAqC,KAAKC,KAA1C;AAAA,QAAOC,IAAP,eAAOA,IAAP;AAAA,QAAaC,QAAb,eAAaA,QAAb;AAAA,QAAuBT,UAAvB,eAAuBA,UAAvB;AAEA,QAAMU,QAAQ,GAAGD,QAAQ,GAAG,IAAH,GAAU,CAAnC;AAEA,WAAO;AACLD,MAAAA,IAAI,EAAJA,IADK;AAELG,MAAAA,UAAU,EAAE,KAFP;AAGLC,MAAAA,cAAc,EAAE,IAHX;AAKLC,MAAAA,UAAU,EAAE,oBAACC,CAAD,EAAWC,UAAX;AAAA,eAA0B,qCAAkBf,UAAU,CAACc,CAAD,EAAIC,UAAJ,CAA5B,EAA6CL,QAA7C,CAA1B;AAAA,OALP;AAMLM,MAAAA,cAAc,EAAE;AAACH,QAAAA,UAAU,EAAEH;AAAb;AANX,KAAP;AAQD,G;;;EApBgFO,wB;;;AAA9DZ,Y,CAIZa,S,GAAY,c;AAJAb,Y,CAKZN,Y,GAAeA,Y","sourcesContent":["import {AccessorFunction, DefaultProps} from '@deck.gl/core';\nimport {\n _GeoCellLayer as GeoCellLayer,\n _GeoCellLayerProps as GeoCellLayerProps\n} from '@deck.gl/geo-layers';\nimport {getQuadbinPolygon} from './quadbin-utils';\n\nconst defaultProps: DefaultProps<QuadbinLayerProps> = {\n getQuadbin: {type: 'accessor', value: d => d.quadbin}\n};\n\n/** All properties supported by QuadbinLayer. */\nexport type QuadbinLayerProps<DataT = any> = _QuadbinLayerProps<DataT> & GeoCellLayerProps<DataT>;\n\n/** Properties added by QuadbinLayer. */\ntype _QuadbinLayerProps<DataT> = {\n /**\n * Called for each data object to retrieve the quadbin string identifier.\n *\n * By default, it reads `quadbin` property of data object.\n */\n getQuadbin?: AccessorFunction<DataT, bigint>;\n};\n\nexport default class QuadbinLayer<DataT = any, ExtraProps extends {} = {}> extends GeoCellLayer<\n DataT,\n Required<_QuadbinLayerProps<DataT>> & ExtraProps\n> {\n static layerName = 'QuadbinLayer';\n static defaultProps = defaultProps;\n\n indexToBounds(): Partial<GeoCellLayer['props']> | null {\n const {data, extruded, getQuadbin} = this.props;\n // To avoid z-fighting reduce polygon footprint when extruding\n const coverage = extruded ? 0.99 : 1;\n\n return {\n data,\n _normalize: false,\n positionFormat: 'XY',\n\n getPolygon: (x: DataT, objectInfo) => getQuadbinPolygon(getQuadbin(x, objectInfo), coverage),\n updateTriggers: {getPolygon: coverage}\n };\n }\n}\n"],"file":"quadbin-layer.js"}
|
|
@@ -7,9 +7,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.default = exports.renderSubLayers = void 0;
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
13
|
|
|
14
14
|
var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
|
|
15
15
|
|
|
@@ -19,8 +19,6 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
|
|
|
19
19
|
|
|
20
20
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
21
|
|
|
22
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
23
|
-
|
|
24
22
|
var _core = require("@deck.gl/core");
|
|
25
23
|
|
|
26
24
|
var _quadbinLayer = _interopRequireDefault(require("./quadbin-layer"));
|
|
@@ -72,38 +70,37 @@ var QuadbinTileLayer = function (_CompositeLayer) {
|
|
|
72
70
|
return _super.apply(this, arguments);
|
|
73
71
|
}
|
|
74
72
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
}]);
|
|
73
|
+
var _proto = QuadbinTileLayer.prototype;
|
|
74
|
+
|
|
75
|
+
_proto.getLoadOptions = function getLoadOptions() {
|
|
76
|
+
var loadOptions = (0, _get2.default)((0, _getPrototypeOf2.default)(QuadbinTileLayer.prototype), "getLoadOptions", this).call(this) || {};
|
|
77
|
+
var tileJSON = this.props.data;
|
|
78
|
+
(0, _utils.injectAccessToken)(loadOptions, tileJSON.accessToken);
|
|
79
|
+
loadOptions.cartoSpatialTile = _objectSpread(_objectSpread({}, loadOptions.cartoSpatialTile), {}, {
|
|
80
|
+
scheme: 'quadbin'
|
|
81
|
+
});
|
|
82
|
+
return loadOptions;
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
_proto.renderLayers = function renderLayers() {
|
|
86
|
+
var tileJSON = this.props.data;
|
|
87
|
+
if (!tileJSON) return null;
|
|
88
|
+
var data = tileJSON.tiles,
|
|
89
|
+
maxZoom = tileJSON.maxresolution;
|
|
90
|
+
return [new _spatialIndexTileLayer.default(this.props, {
|
|
91
|
+
id: "quadbin-tile-layer-".concat(this.props.id),
|
|
92
|
+
data: data,
|
|
93
|
+
TilesetClass: _quadbinTileset2d.default,
|
|
94
|
+
renderSubLayers: renderSubLayers,
|
|
95
|
+
maxZoom: maxZoom,
|
|
96
|
+
loadOptions: this.getLoadOptions()
|
|
97
|
+
})];
|
|
98
|
+
};
|
|
99
|
+
|
|
103
100
|
return QuadbinTileLayer;
|
|
104
101
|
}(_core.CompositeLayer);
|
|
105
102
|
|
|
106
103
|
exports.default = QuadbinTileLayer;
|
|
107
|
-
|
|
108
|
-
|
|
104
|
+
QuadbinTileLayer.layerName = 'QuadbinTileLayer';
|
|
105
|
+
QuadbinTileLayer.defaultProps = defaultProps;
|
|
109
106
|
//# sourceMappingURL=quadbin-tile-layer.js.map
|