@antv/l7-layers 2.5.37-mini → 2.5.37-mini13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/core/BaseLayer.js +10 -4
- package/lib/core/BaseLayer.js.map +1 -1
- package/lib/core/shape/Path.js +5 -4
- package/lib/core/shape/Path.js.map +1 -1
- package/lib/core/shape/extrude.js +1 -1
- package/lib/core/triangulation.js +13 -9
- package/lib/core/triangulation.js.map +1 -1
- package/lib/earth/utils.js +1 -1
- package/lib/heatmap/models/heatmap.js +1 -1
- package/lib/image/models/image.js +28 -7
- package/lib/image/models/image.js.map +1 -1
- package/lib/imagetile/index.js +95 -0
- package/lib/imagetile/index.js.map +1 -0
- package/lib/imagetile/models/imagetile.js +177 -0
- package/lib/imagetile/models/imagetile.js.map +1 -0
- package/lib/imagetile/models/index.js +17 -0
- package/lib/imagetile/models/index.js.map +1 -0
- package/lib/imagetile/utils/ImageTile.js +99 -0
- package/lib/imagetile/utils/ImageTile.js.map +1 -0
- package/lib/imagetile/utils/Tile.js +324 -0
- package/lib/imagetile/utils/Tile.js.map +1 -0
- package/lib/imagetile/utils/lruCache.js +109 -0
- package/lib/imagetile/utils/lruCache.js.map +1 -0
- package/lib/imagetile/utils/tileCache.js +58 -0
- package/lib/imagetile/utils/tileCache.js.map +1 -0
- package/lib/index.js +16 -8
- package/lib/index.js.map +1 -1
- package/lib/line/index.js +3 -0
- package/lib/line/index.js.map +1 -1
- package/lib/line/models/arc.js +2 -2
- package/lib/line/models/arc_3d.js +2 -2
- package/lib/line/models/arcmini.js +160 -0
- package/lib/line/models/arcmini.js.map +1 -0
- package/lib/line/models/great_circle.js +2 -2
- package/lib/line/models/index.js +3 -0
- package/lib/line/models/index.js.map +1 -1
- package/lib/line/models/line.js +2 -2
- package/lib/plugins/DataMappingPlugin.js +1 -1
- package/lib/plugins/DataSourcePlugin.js +5 -1
- package/lib/plugins/DataSourcePlugin.js.map +1 -1
- package/lib/plugins/FeatureScalePlugin.js +5 -1
- package/lib/plugins/FeatureScalePlugin.js.map +1 -1
- package/lib/plugins/LayerAnimateStylePlugin.js +1 -1
- package/lib/plugins/LightingPlugin.js +5 -3
- package/lib/plugins/LightingPlugin.js.map +1 -1
- package/lib/plugins/MultiPassRendererPlugin.js +1 -1
- package/lib/plugins/ShaderUniformPlugin.js +1 -1
- package/lib/plugins/ShaderUniformPlugin.js.map +1 -1
- package/lib/plugins/UpdateStyleAttributePlugin.js +6 -6
- package/lib/plugins/UpdateStyleAttributePlugin.js.map +1 -1
- package/lib/point/shape/Path.js +5 -4
- package/lib/point/shape/Path.js.map +1 -1
- package/lib/raster/raster.js +1 -1
- package/lib/utils/dataMappingStyle.js +1 -1
- package/lib/utils/extrude_polyline.js +1 -1
- package/lib/utils/polylineNormal.js +1 -1
- package/lib/utils/symbol-layout.js +1 -1
- package/package.json +6 -5
|
@@ -0,0 +1,324 @@
|
|
|
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 _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
|
+
|
|
18
|
+
var _geoCoord = require("@antv/geo-coord");
|
|
19
|
+
|
|
20
|
+
var _l7Core = require("@antv/l7-core");
|
|
21
|
+
|
|
22
|
+
var _ImageTile = _interopRequireDefault(require("./ImageTile"));
|
|
23
|
+
|
|
24
|
+
var _tileCache = _interopRequireDefault(require("./tileCache"));
|
|
25
|
+
|
|
26
|
+
var CacheLimit = 30;
|
|
27
|
+
|
|
28
|
+
var Tile = function () {
|
|
29
|
+
function Tile(props) {
|
|
30
|
+
(0, _classCallCheck2.default)(this, Tile);
|
|
31
|
+
(0, _defineProperty2.default)(this, "tileList", {});
|
|
32
|
+
(0, _defineProperty2.default)(this, "tileCache", void 0);
|
|
33
|
+
(0, _defineProperty2.default)(this, "updateTileList", void 0);
|
|
34
|
+
(0, _defineProperty2.default)(this, "tileZoom", void 0);
|
|
35
|
+
(0, _defineProperty2.default)(this, "noPruneRange", void 0);
|
|
36
|
+
(0, _defineProperty2.default)(this, "url", void 0);
|
|
37
|
+
(0, _defineProperty2.default)(this, "resolution", void 0);
|
|
38
|
+
(0, _defineProperty2.default)(this, "maxSourceZoom", void 0);
|
|
39
|
+
(0, _defineProperty2.default)(this, "crstype", void 0);
|
|
40
|
+
(0, _defineProperty2.default)(this, "currentCrs", void 0);
|
|
41
|
+
(0, _defineProperty2.default)(this, "layerService", void 0);
|
|
42
|
+
(0, _defineProperty2.default)(this, "layer", void 0);
|
|
43
|
+
this.layerService = props.layerService;
|
|
44
|
+
this.layer = props.layer;
|
|
45
|
+
this.url = props.url;
|
|
46
|
+
this.resolution = props.resolution === 'low' ? -1 : 0;
|
|
47
|
+
this.maxSourceZoom = props.maxSourceZoom;
|
|
48
|
+
this.crstype = props.crstype;
|
|
49
|
+
this.currentCrs = new _geoCoord.GeoCoordinates.default({
|
|
50
|
+
start: {
|
|
51
|
+
x: 0,
|
|
52
|
+
y: 0
|
|
53
|
+
},
|
|
54
|
+
end: {
|
|
55
|
+
x: 0,
|
|
56
|
+
y: 0
|
|
57
|
+
},
|
|
58
|
+
projection: this.crstype
|
|
59
|
+
}).crs;
|
|
60
|
+
this.destroyTile = this.destroyTile.bind(this);
|
|
61
|
+
this.tileCache = new _tileCache.default(CacheLimit, this.destroyTile);
|
|
62
|
+
this.updateTileList = [];
|
|
63
|
+
this.removeTiles = this.removeTiles.bind(this);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
(0, _createClass2.default)(Tile, [{
|
|
67
|
+
key: "calCurrentTiles",
|
|
68
|
+
value: function calCurrentTiles(oprions) {
|
|
69
|
+
var _this = this;
|
|
70
|
+
|
|
71
|
+
var NE = oprions.NE,
|
|
72
|
+
SW = oprions.SW,
|
|
73
|
+
tileCenter = oprions.tileCenter,
|
|
74
|
+
currentZoom = oprions.currentZoom,
|
|
75
|
+
minSourceZoom = oprions.minSourceZoom,
|
|
76
|
+
minZoom = oprions.minZoom,
|
|
77
|
+
maxZoom = oprions.maxZoom;
|
|
78
|
+
|
|
79
|
+
if (currentZoom >= this.maxSourceZoom) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
var zoom = Math.floor(currentZoom) + this.resolution;
|
|
84
|
+
this.tileZoom = zoom > this.maxSourceZoom ? this.maxSourceZoom : zoom;
|
|
85
|
+
|
|
86
|
+
if (currentZoom < minZoom || currentZoom >= maxZoom || currentZoom < minSourceZoom) {
|
|
87
|
+
this.removeTiles();
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
this.updateTileList = [];
|
|
92
|
+
var centerPoint = this.currentCrs.lngLatToPoint((0, _geoCoord.toLngLat)(tileCenter.lng, tileCenter.lat), this.tileZoom);
|
|
93
|
+
var centerXY = centerPoint.divideBy(256).floor();
|
|
94
|
+
var pixelBounds = this.getPixelBounds(NE, SW, tileCenter, this.tileZoom, this.currentCrs);
|
|
95
|
+
var tileRange = this.pxBoundsToTileRange(pixelBounds);
|
|
96
|
+
var margin = 4;
|
|
97
|
+
this.noPruneRange = new _geoCoord.Bounds(tileRange.getBottomLeft().subtract([margin, -margin]), tileRange.getTopRight().add([margin, -margin]));
|
|
98
|
+
|
|
99
|
+
if (!(isFinite(tileRange.min.x) && isFinite(tileRange.min.y) && isFinite(tileRange.max.x) && isFinite(tileRange.max.y))) {
|
|
100
|
+
throw new Error('Attempted to load an infinite number of tiles');
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
for (var j = tileRange.min.y; j <= tileRange.max.y; j++) {
|
|
104
|
+
for (var i = tileRange.min.x; i <= tileRange.max.x; i++) {
|
|
105
|
+
var coords = [i, j, this.tileZoom];
|
|
106
|
+
var tile = this.tileList[coords.join('_')];
|
|
107
|
+
|
|
108
|
+
if (tile) {
|
|
109
|
+
tile.current = true;
|
|
110
|
+
} else {
|
|
111
|
+
this.tileList[coords.join('_')] = {
|
|
112
|
+
current: true,
|
|
113
|
+
coords: coords
|
|
114
|
+
};
|
|
115
|
+
this.updateTileList.push(coords);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
this.updateTileList.sort(function (a, b) {
|
|
121
|
+
var tile1 = a;
|
|
122
|
+
var tile2 = b;
|
|
123
|
+
var d1 = Math.pow(tile1[0] * 1 - centerXY.x, 2) + Math.pow(tile1[1] * 1 - centerXY.y, 2);
|
|
124
|
+
var d2 = Math.pow(tile2[0] * 1 - centerXY.x, 2) + Math.pow(tile2[1] * 1 - centerXY.y, 2);
|
|
125
|
+
return d1 - d2;
|
|
126
|
+
});
|
|
127
|
+
this.pruneTiles();
|
|
128
|
+
this.updateTileList.forEach(function (coords) {
|
|
129
|
+
var key = coords.join('_');
|
|
130
|
+
|
|
131
|
+
if (_this.tileList[key].current) {
|
|
132
|
+
_this.requestTile(key);
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
}, {
|
|
137
|
+
key: "pxBoundsToTileRange",
|
|
138
|
+
value: function pxBoundsToTileRange(pixelBounds) {
|
|
139
|
+
return new _geoCoord.Bounds(pixelBounds.min.divideBy(256).floor(), pixelBounds.max.divideBy(256).ceil().subtract([1, 1]));
|
|
140
|
+
}
|
|
141
|
+
}, {
|
|
142
|
+
key: "getPixelBounds",
|
|
143
|
+
value: function getPixelBounds(NE, SW, tileCenter, tileZoom, crs) {
|
|
144
|
+
var zoom = tileZoom;
|
|
145
|
+
var NEPoint = crs.lngLatToPoint((0, _geoCoord.toLngLat)(NE.lng, NE.lat), zoom);
|
|
146
|
+
var SWPoint = crs.lngLatToPoint((0, _geoCoord.toLngLat)(SW.lng, SW.lat), zoom);
|
|
147
|
+
var centerPoint = crs.lngLatToPoint((0, _geoCoord.toLngLat)(tileCenter.lng, tileCenter.lat), zoom);
|
|
148
|
+
var topHeight = centerPoint.y - NEPoint.y;
|
|
149
|
+
var bottomHeight = SWPoint.y - centerPoint.y;
|
|
150
|
+
var leftWidth;
|
|
151
|
+
var rightWidth;
|
|
152
|
+
|
|
153
|
+
if (tileCenter.lng - NE.lng > 0 || tileCenter.lng - SW.lng < 0) {
|
|
154
|
+
var width = Math.pow(2, zoom) * 256 / 360 * (180 - NE.lng) + Math.pow(2, zoom) * 256 / 360 * (SW.lng + 180);
|
|
155
|
+
|
|
156
|
+
if (tileCenter.lng - NE.lng > 0) {
|
|
157
|
+
leftWidth = Math.pow(2, zoom) * 256 / 360 * (tileCenter.lng - NE.lng);
|
|
158
|
+
rightWidth = width - leftWidth;
|
|
159
|
+
} else {
|
|
160
|
+
rightWidth = Math.pow(2, zoom) * 256 / 360 * (SW.lng - tileCenter.lng);
|
|
161
|
+
leftWidth = width - rightWidth;
|
|
162
|
+
}
|
|
163
|
+
} else {
|
|
164
|
+
leftWidth = Math.pow(2, zoom) * 256 / 360 * (tileCenter.lng - SW.lng);
|
|
165
|
+
rightWidth = Math.pow(2, zoom) * 256 / 360 * (NE.lng - tileCenter.lng);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
var pixelBounds = new _geoCoord.Bounds(centerPoint.subtract(leftWidth, topHeight), centerPoint.add(rightWidth, bottomHeight));
|
|
169
|
+
return pixelBounds;
|
|
170
|
+
}
|
|
171
|
+
}, {
|
|
172
|
+
key: "pruneTiles",
|
|
173
|
+
value: function pruneTiles() {
|
|
174
|
+
var _this2 = this;
|
|
175
|
+
|
|
176
|
+
Object.keys(this.tileList).map(function (key) {
|
|
177
|
+
var c = _this2.tileList[key].coords;
|
|
178
|
+
|
|
179
|
+
if (c[2] !== _this2.tileZoom || !_this2.noPruneRange.contains(new _geoCoord.Point(c[0], c[1]))) {
|
|
180
|
+
_this2.tileList[key].current = false;
|
|
181
|
+
}
|
|
182
|
+
});
|
|
183
|
+
Object.keys(this.tileList).map(function (key) {
|
|
184
|
+
var tile = _this2.tileList[key];
|
|
185
|
+
tile.retain = tile.current;
|
|
186
|
+
});
|
|
187
|
+
Object.keys(this.tileList).map(function (key) {
|
|
188
|
+
var tile = _this2.tileList[key];
|
|
189
|
+
|
|
190
|
+
if (tile.current && !tile.active) {
|
|
191
|
+
var _key$split$map = key.split('_').map(function (v) {
|
|
192
|
+
return Number(v);
|
|
193
|
+
}),
|
|
194
|
+
_key$split$map2 = (0, _slicedToArray2.default)(_key$split$map, 3),
|
|
195
|
+
x = _key$split$map2[0],
|
|
196
|
+
y = _key$split$map2[1],
|
|
197
|
+
z = _key$split$map2[2];
|
|
198
|
+
|
|
199
|
+
if (!_this2.retainParent(x, y, z, z - 5)) {
|
|
200
|
+
_this2.retainChildren(x, y, z, z + 2);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
this.removeOutTiles();
|
|
205
|
+
}
|
|
206
|
+
}, {
|
|
207
|
+
key: "requestTile",
|
|
208
|
+
value: function requestTile(key) {
|
|
209
|
+
var t = this.tileList[key];
|
|
210
|
+
|
|
211
|
+
if (!t) {
|
|
212
|
+
return;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
var tile = this.tileCache.getTile(key);
|
|
216
|
+
|
|
217
|
+
if (!tile) {
|
|
218
|
+
var container = (0, _l7Core.createLayerContainer)(this.layer.sceneContainer);
|
|
219
|
+
tile = new _ImageTile.default(key, this.url, container, this.layer.sceneContainer);
|
|
220
|
+
tile.name = key;
|
|
221
|
+
t.current = true;
|
|
222
|
+
t.retain = true;
|
|
223
|
+
t.active = true;
|
|
224
|
+
this.layer.layerChildren.push(tile.imageLayer);
|
|
225
|
+
this.tileCache.setTile(tile, key);
|
|
226
|
+
this.pruneTiles();
|
|
227
|
+
this.layerService.renderLayers();
|
|
228
|
+
} else {
|
|
229
|
+
tile.imageLayer.show();
|
|
230
|
+
t.current = true;
|
|
231
|
+
t.retain = true;
|
|
232
|
+
t.active = true;
|
|
233
|
+
this.pruneTiles();
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}, {
|
|
237
|
+
key: "retainParent",
|
|
238
|
+
value: function retainParent(x, y, z, minZoom) {
|
|
239
|
+
var x2 = Math.floor(x / 2);
|
|
240
|
+
var y2 = Math.floor(y / 2);
|
|
241
|
+
var z2 = z - 1;
|
|
242
|
+
var tile = this.tileList[[x2, y2, z2].join('_')];
|
|
243
|
+
|
|
244
|
+
if (tile && tile.active) {
|
|
245
|
+
tile.retain = true;
|
|
246
|
+
return true;
|
|
247
|
+
} else if (tile && tile.loaded) {
|
|
248
|
+
tile.retain = true;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
if (z2 > minZoom) {
|
|
252
|
+
return this.retainParent(x2, y2, z2, minZoom);
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
return false;
|
|
256
|
+
}
|
|
257
|
+
}, {
|
|
258
|
+
key: "retainChildren",
|
|
259
|
+
value: function retainChildren(x, y, z, maxZoom) {
|
|
260
|
+
for (var i = 2 * x; i < 2 * x + 2; i++) {
|
|
261
|
+
for (var j = 2 * y; j < 2 * y + 2; j++) {
|
|
262
|
+
var key = [i, j, z + 1].join('_');
|
|
263
|
+
var tile = this.tileList[key];
|
|
264
|
+
|
|
265
|
+
if (tile && tile.active) {
|
|
266
|
+
tile.retain = true;
|
|
267
|
+
continue;
|
|
268
|
+
} else if (tile && tile.loaded) {
|
|
269
|
+
tile.retain = true;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
if (z + 1 < maxZoom) {
|
|
273
|
+
this.retainChildren(i, j, z + 1, maxZoom);
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
}, {
|
|
279
|
+
key: "destroyTile",
|
|
280
|
+
value: function destroyTile(tile) {
|
|
281
|
+
var layerIndex = this.layer.layerChildren.indexOf(tile.imageLayer);
|
|
282
|
+
|
|
283
|
+
if (layerIndex > -1) {
|
|
284
|
+
this.layer.layerChildren.splice(layerIndex, 1);
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
tile.imageLayer.emit('remove', null);
|
|
288
|
+
tile.imageLayer.destroy();
|
|
289
|
+
this.layerService.renderLayers();
|
|
290
|
+
tile = null;
|
|
291
|
+
}
|
|
292
|
+
}, {
|
|
293
|
+
key: "removeOutTiles",
|
|
294
|
+
value: function removeOutTiles() {
|
|
295
|
+
for (var key in this.tileList) {
|
|
296
|
+
if (!this.tileList[key].retain) {
|
|
297
|
+
var tile = this.tileCache.getTile(key);
|
|
298
|
+
|
|
299
|
+
if (tile) {
|
|
300
|
+
tile.imageLayer.hide();
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
delete this.tileList[key];
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
}, {
|
|
308
|
+
key: "removeTiles",
|
|
309
|
+
value: function removeTiles() {
|
|
310
|
+
this.layer.layerChildren.forEach(function (layer) {
|
|
311
|
+
layer.emit('remove', null);
|
|
312
|
+
layer.destroy();
|
|
313
|
+
});
|
|
314
|
+
this.layer.layerChildren = [];
|
|
315
|
+
this.layerService.renderLayers();
|
|
316
|
+
this.tileList = {};
|
|
317
|
+
this.tileCache.destory();
|
|
318
|
+
}
|
|
319
|
+
}]);
|
|
320
|
+
return Tile;
|
|
321
|
+
}();
|
|
322
|
+
|
|
323
|
+
exports.default = Tile;
|
|
324
|
+
//# sourceMappingURL=Tile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/imagetile/utils/Tile.ts"],"names":["CacheLimit","Tile","props","layerService","layer","url","resolution","maxSourceZoom","crstype","currentCrs","GeoCoordinates","default","start","x","y","end","projection","crs","destroyTile","bind","tileCache","TileCache","updateTileList","removeTiles","oprions","NE","SW","tileCenter","currentZoom","minSourceZoom","minZoom","maxZoom","zoom","Math","floor","tileZoom","centerPoint","lngLatToPoint","lng","lat","centerXY","divideBy","pixelBounds","getPixelBounds","tileRange","pxBoundsToTileRange","margin","noPruneRange","Bounds","getBottomLeft","subtract","getTopRight","add","isFinite","min","max","Error","j","i","coords","tile","tileList","join","current","push","sort","a","b","tile1","tile2","d1","pow","d2","pruneTiles","forEach","key","requestTile","ceil","NEPoint","SWPoint","topHeight","bottomHeight","leftWidth","rightWidth","width","Object","keys","map","c","contains","Point","retain","active","split","v","Number","z","retainParent","retainChildren","removeOutTiles","t","getTile","container","sceneContainer","ImageTile","name","layerChildren","imageLayer","setTile","renderLayers","show","x2","y2","z2","loaded","layerIndex","indexOf","splice","emit","destroy","hide","destory"],"mappings":"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","sourcesContent":["import { Bounds, GeoCoordinates, Point, toLngLat } from '@antv/geo-coord';\nimport {\n createLayerContainer,\n ILayer,\n ILayerService,\n ILngLat,\n} from '@antv/l7-core';\nimport { Container } from 'inversify';\n\nimport ImageTile from './ImageTile';\nimport TileCache from './tileCache';\n\n// Tip: 瓦片地图的存储上限\nconst CacheLimit = 30;\n\nexport default class Tile {\n public tileList: any = {};\n public tileCache: any;\n\n public updateTileList: any[];\n public tileZoom: number;\n public noPruneRange: any;\n public url: string;\n public resolution: number;\n public maxSourceZoom: number;\n public crstype: string;\n public currentCrs: any;\n\n public layerService: ILayerService;\n public layer: ILayer;\n constructor(props: any) {\n this.layerService = props.layerService;\n this.layer = props.layer;\n this.url = props.url;\n this.resolution = props.resolution === 'low' ? -1 : 0;\n this.maxSourceZoom = props.maxSourceZoom;\n this.crstype = props.crstype;\n\n this.currentCrs = new GeoCoordinates.default({\n start: { x: 0, y: 0 },\n end: { x: 0, y: 0 },\n projection: this.crstype,\n }).crs as any;\n\n this.destroyTile = this.destroyTile.bind(this);\n this.tileCache = new TileCache(CacheLimit, this.destroyTile);\n\n this.updateTileList = [];\n\n this.removeTiles = this.removeTiles.bind(this);\n }\n\n public calCurrentTiles(oprions: any) {\n const {\n NE,\n SW,\n tileCenter,\n currentZoom,\n minSourceZoom,\n minZoom,\n maxZoom,\n } = oprions;\n // TODO: 当前瓦片的层级要比地图底图的层级低\n if (currentZoom >= this.maxSourceZoom) {\n return;\n }\n const zoom = Math.floor(currentZoom) + this.resolution;\n\n this.tileZoom = zoom > this.maxSourceZoom ? this.maxSourceZoom : zoom;\n\n if (\n currentZoom < minZoom ||\n currentZoom >= maxZoom ||\n currentZoom < minSourceZoom\n ) {\n this.removeTiles();\n return;\n }\n\n this.updateTileList = [];\n\n // 计算瓦片中心\n const centerPoint = this.currentCrs.lngLatToPoint(\n toLngLat(tileCenter.lng, tileCenter.lat),\n this.tileZoom,\n );\n const centerXY = centerPoint.divideBy(256).floor();\n\n const pixelBounds = this.getPixelBounds(\n NE,\n SW,\n tileCenter,\n this.tileZoom,\n this.currentCrs,\n ); // 计算像素范围\n const tileRange = this.pxBoundsToTileRange(pixelBounds); // 计算瓦片范围\n\n const margin = 4;\n\n this.noPruneRange = new Bounds(\n tileRange.getBottomLeft().subtract([margin, -margin]),\n tileRange.getTopRight().add([margin, -margin]),\n );\n\n // T: isFinite(n: number) 用于检测 n 是否无穷大\n if (\n !(\n isFinite(tileRange.min.x) &&\n isFinite(tileRange.min.y) &&\n isFinite(tileRange.max.x) &&\n isFinite(tileRange.max.y)\n )\n ) {\n throw new Error('Attempted to load an infinite number of tiles');\n }\n\n // 根据视野判断新增的瓦片索引\n for (let j = tileRange.min.y; j <= tileRange.max.y; j++) {\n for (let i = tileRange.min.x; i <= tileRange.max.x; i++) {\n const coords = [i, j, this.tileZoom];\n const tile = this.tileList[coords.join('_')];\n if (tile) {\n tile.current = true;\n } else {\n this.tileList[coords.join('_')] = {\n current: true,\n coords,\n };\n this.updateTileList.push(coords);\n }\n }\n }\n\n // 瓦片列表排序\n this.updateTileList.sort((a: any, b: any) => {\n const tile1 = a;\n const tile2 = b;\n const d1 =\n Math.pow(tile1[0] * 1 - centerXY.x, 2) +\n Math.pow(tile1[1] * 1 - centerXY.y, 2);\n const d2 =\n Math.pow(tile2[0] * 1 - centerXY.x, 2) +\n Math.pow(tile2[1] * 1 - centerXY.y, 2);\n return d1 - d2;\n });\n\n this.pruneTiles();\n this.updateTileList.forEach((coords: any) => {\n const key = coords.join('_');\n if (this.tileList[key].current) {\n this.requestTile(key);\n }\n });\n }\n\n public pxBoundsToTileRange(pixelBounds: any) {\n return new Bounds(\n pixelBounds.min.divideBy(256).floor(),\n pixelBounds.max\n .divideBy(256)\n .ceil()\n .subtract([1, 1]),\n );\n }\n\n public getPixelBounds(\n NE: ILngLat,\n SW: ILngLat,\n tileCenter: ILngLat,\n tileZoom: number,\n crs: any,\n ) {\n const zoom = tileZoom;\n const NEPoint = crs.lngLatToPoint(toLngLat(NE.lng, NE.lat), zoom);\n const SWPoint = crs.lngLatToPoint(toLngLat(SW.lng, SW.lat), zoom);\n const centerPoint = crs.lngLatToPoint(\n toLngLat(tileCenter.lng, tileCenter.lat),\n zoom,\n );\n const topHeight = centerPoint.y - NEPoint.y;\n const bottomHeight = SWPoint.y - centerPoint.y;\n // 跨日界线的情况\n let leftWidth;\n let rightWidth;\n if (tileCenter.lng - NE.lng > 0 || tileCenter.lng - SW.lng < 0) {\n const width =\n ((Math.pow(2, zoom) * 256) / 360) * (180 - NE.lng) +\n ((Math.pow(2, zoom) * 256) / 360) * (SW.lng + 180);\n if (tileCenter.lng - NE.lng > 0) {\n // 日界线在右侧\n leftWidth =\n ((Math.pow(2, zoom) * 256) / 360) * (tileCenter.lng - NE.lng);\n rightWidth = width - leftWidth;\n } else {\n rightWidth =\n ((Math.pow(2, zoom) * 256) / 360) * (SW.lng - tileCenter.lng);\n leftWidth = width - rightWidth;\n }\n } else {\n // 不跨日界线\n leftWidth = ((Math.pow(2, zoom) * 256) / 360) * (tileCenter.lng - SW.lng);\n rightWidth =\n ((Math.pow(2, zoom) * 256) / 360) * (NE.lng - tileCenter.lng);\n }\n const pixelBounds = new Bounds(\n centerPoint.subtract(leftWidth, topHeight),\n centerPoint.add(rightWidth, bottomHeight),\n );\n return pixelBounds;\n }\n\n public pruneTiles() {\n Object.keys(this.tileList).map((key) => {\n const c = this.tileList[key].coords;\n // 如果不是同一个缩放层级,则将瓦片设为不显示\n if (\n c[2] !== this.tileZoom ||\n !this.noPruneRange.contains(new Point(c[0], c[1]))\n ) {\n this.tileList[key].current = false;\n }\n });\n\n Object.keys(this.tileList).map((key) => {\n const tile = this.tileList[key];\n tile.retain = tile.current;\n });\n\n Object.keys(this.tileList).map((key) => {\n const tile = this.tileList[key];\n if (tile.current && !tile.active) {\n const [x, y, z] = key.split('_').map((v) => Number(v));\n\n if (!this.retainParent(x, y, z, z - 5)) {\n this.retainChildren(x, y, z, z + 2);\n }\n }\n });\n\n this.removeOutTiles();\n }\n\n public requestTile(key: string) {\n const t = this.tileList[key];\n if (!t) {\n return;\n }\n let tile = this.tileCache.getTile(key);\n if (!tile) {\n const container = createLayerContainer(\n this.layer.sceneContainer as Container,\n );\n tile = new ImageTile(\n key,\n this.url,\n container,\n this.layer.sceneContainer as Container,\n );\n tile.name = key;\n\n t.current = true;\n t.retain = true;\n t.active = true;\n\n // 往 imageTileLayer 中添加子图层\n this.layer.layerChildren.push(tile.imageLayer);\n\n this.tileCache.setTile(tile, key);\n\n this.pruneTiles();\n this.layerService.renderLayers();\n } else {\n // Tip: show 方法就是将相应的瓦片图片添加到渲染队列\n tile.imageLayer.show();\n t.current = true;\n t.retain = true;\n t.active = true;\n\n this.pruneTiles();\n }\n }\n\n public retainParent(x: number, y: number, z: number, minZoom: number): any {\n const x2 = Math.floor(x / 2);\n const y2 = Math.floor(y / 2);\n const z2 = z - 1;\n const tile = this.tileList[[x2, y2, z2].join('_')];\n if (tile && tile.active) {\n tile.retain = true;\n return true;\n } else if (tile && tile.loaded) {\n tile.retain = true;\n }\n if (z2 > minZoom) {\n return this.retainParent(x2, y2, z2, minZoom);\n }\n return false;\n }\n\n public retainChildren(x: number, y: number, z: number, maxZoom: number) {\n for (let i = 2 * x; i < 2 * x + 2; i++) {\n for (let j = 2 * y; j < 2 * y + 2; j++) {\n const key = [i, j, z + 1].join('_');\n const tile = this.tileList[key];\n if (tile && tile.active) {\n tile.retain = true;\n continue;\n } else if (tile && tile.loaded) {\n tile.retain = true;\n }\n\n if (z + 1 < maxZoom) {\n this.retainChildren(i, j, z + 1, maxZoom);\n }\n }\n }\n }\n\n public destroyTile(tile: any) {\n const layerIndex = this.layer.layerChildren.indexOf(tile.imageLayer);\n if (layerIndex > -1) {\n this.layer.layerChildren.splice(layerIndex, 1);\n }\n\n tile.imageLayer.emit('remove', null);\n tile.imageLayer.destroy();\n this.layerService.renderLayers();\n\n // 清除 tileCache 中的存储 相当于 tileCache.setTile(tile, null)\n tile = null;\n }\n\n public removeOutTiles() {\n for (const key in this.tileList) {\n if (!this.tileList[key].retain) {\n // Tip: 不需要显示的瓦片对象\n const tile = this.tileCache.getTile(key);\n // Tip: 若是网格对象存在\n if (tile) {\n // Tip: hide 方法就是将相应的瓦片图片从渲染队列中剔除\n tile.imageLayer.hide();\n }\n delete this.tileList[key];\n }\n }\n }\n\n public removeTiles() {\n this.layer.layerChildren.forEach((layer: any) => {\n layer.emit('remove', null);\n layer.destroy();\n });\n\n this.layer.layerChildren = [];\n this.layerService.renderLayers();\n this.tileList = {};\n this.tileCache.destory();\n }\n}\n"],"file":"Tile.js"}
|
|
@@ -0,0 +1,109 @@
|
|
|
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 _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
+
|
|
14
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
+
|
|
16
|
+
var LRUCache = function () {
|
|
17
|
+
function LRUCache() {
|
|
18
|
+
var limit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 50;
|
|
19
|
+
var destroy = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {
|
|
20
|
+
return '';
|
|
21
|
+
};
|
|
22
|
+
(0, _classCallCheck2.default)(this, LRUCache);
|
|
23
|
+
(0, _defineProperty2.default)(this, "limit", void 0);
|
|
24
|
+
(0, _defineProperty2.default)(this, "order", void 0);
|
|
25
|
+
(0, _defineProperty2.default)(this, "cache", void 0);
|
|
26
|
+
(0, _defineProperty2.default)(this, "destroy", void 0);
|
|
27
|
+
this.limit = limit;
|
|
28
|
+
this.destroy = destroy;
|
|
29
|
+
this.order = [];
|
|
30
|
+
this.clear();
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
(0, _createClass2.default)(LRUCache, [{
|
|
34
|
+
key: "clear",
|
|
35
|
+
value: function clear() {
|
|
36
|
+
var _this = this;
|
|
37
|
+
|
|
38
|
+
this.order.forEach(function (key) {
|
|
39
|
+
_this.delete(key);
|
|
40
|
+
});
|
|
41
|
+
this.cache = {};
|
|
42
|
+
this.order = [];
|
|
43
|
+
}
|
|
44
|
+
}, {
|
|
45
|
+
key: "get",
|
|
46
|
+
value: function get(key) {
|
|
47
|
+
var value = this.cache[key];
|
|
48
|
+
|
|
49
|
+
if (value) {
|
|
50
|
+
this.deleteOrder(key);
|
|
51
|
+
this.appendOrder(key);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
return value;
|
|
55
|
+
}
|
|
56
|
+
}, {
|
|
57
|
+
key: "set",
|
|
58
|
+
value: function set(key, value) {
|
|
59
|
+
if (!this.cache[key]) {
|
|
60
|
+
if (Object.keys(this.cache).length === this.limit) {
|
|
61
|
+
this.delete(this.order[0]);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
this.cache[key] = value;
|
|
65
|
+
this.appendOrder(key);
|
|
66
|
+
} else {
|
|
67
|
+
this.delete(key);
|
|
68
|
+
this.cache[key] = value;
|
|
69
|
+
this.appendOrder(key);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}, {
|
|
73
|
+
key: "delete",
|
|
74
|
+
value: function _delete(key) {
|
|
75
|
+
var value = this.cache[key];
|
|
76
|
+
|
|
77
|
+
if (value) {
|
|
78
|
+
this.deleteCache(key);
|
|
79
|
+
this.deleteOrder(key);
|
|
80
|
+
this.destroy(value, key);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}, {
|
|
84
|
+
key: "deleteCache",
|
|
85
|
+
value: function deleteCache(key) {
|
|
86
|
+
delete this.cache[key];
|
|
87
|
+
}
|
|
88
|
+
}, {
|
|
89
|
+
key: "deleteOrder",
|
|
90
|
+
value: function deleteOrder(key) {
|
|
91
|
+
var index = this.order.findIndex(function (o) {
|
|
92
|
+
return o === key;
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
if (index >= 0) {
|
|
96
|
+
this.order.splice(index, 1);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}, {
|
|
100
|
+
key: "appendOrder",
|
|
101
|
+
value: function appendOrder(key) {
|
|
102
|
+
this.order.push(key);
|
|
103
|
+
}
|
|
104
|
+
}]);
|
|
105
|
+
return LRUCache;
|
|
106
|
+
}();
|
|
107
|
+
|
|
108
|
+
exports.default = LRUCache;
|
|
109
|
+
//# sourceMappingURL=lruCache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/imagetile/utils/lruCache.ts"],"names":["LRUCache","limit","destroy","order","clear","forEach","key","delete","cache","value","deleteOrder","appendOrder","Object","keys","length","deleteCache","index","findIndex","o","splice","push"],"mappings":";;;;;;;;;;;;;;;IAOqBA,Q;AAKnB,sBAA4C;AAAA,QAAhCC,KAAgC,uEAAxB,EAAwB;AAAA,QAApBC,OAAoB,uEAAV;AAAA,aAAM,EAAN;AAAA,KAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAC1C,SAAKD,KAAL,GAAaA,KAAb;AACA,SAAKC,OAAL,GAAeA,OAAf;AACA,SAAKC,KAAL,GAAa,EAAb;AACA,SAAKC,KAAL;AACD;;;;WAED,iBAAe;AAAA;;AACb,WAAKD,KAAL,CAAWE,OAAX,CAAmB,UAACC,GAAD,EAAc;AAC/B,QAAA,KAAI,CAACC,MAAL,CAAYD,GAAZ;AACD,OAFD;AAGA,WAAKE,KAAL,GAAa,EAAb;AAEA,WAAKL,KAAL,GAAa,EAAb;AACD;;;WAED,aAAWG,GAAX,EAAwB;AACtB,UAAMG,KAAK,GAAG,KAAKD,KAAL,CAAWF,GAAX,CAAd;;AACA,UAAIG,KAAJ,EAAW;AAET,aAAKC,WAAL,CAAiBJ,GAAjB;AACA,aAAKK,WAAL,CAAiBL,GAAjB;AACD;;AACD,aAAOG,KAAP;AACD;;;WAED,aAAWH,GAAX,EAAwBG,KAAxB,EAAoC;AAClC,UAAI,CAAC,KAAKD,KAAL,CAAWF,GAAX,CAAL,EAAsB;AAEpB,YAAIM,MAAM,CAACC,IAAP,CAAY,KAAKL,KAAjB,EAAwBM,MAAxB,KAAmC,KAAKb,KAA5C,EAAmD;AACjD,eAAKM,MAAL,CAAY,KAAKJ,KAAL,CAAW,CAAX,CAAZ;AACD;;AAED,aAAKK,KAAL,CAAWF,GAAX,IAAkBG,KAAlB;AACA,aAAKE,WAAL,CAAiBL,GAAjB;AACD,OARD,MAQO;AAEL,aAAKC,MAAL,CAAYD,GAAZ;AAEA,aAAKE,KAAL,CAAWF,GAAX,IAAkBG,KAAlB;AACA,aAAKE,WAAL,CAAiBL,GAAjB;AACD;AACF;;;WAED,iBAAcA,GAAd,EAA2B;AACzB,UAAMG,KAAK,GAAG,KAAKD,KAAL,CAAWF,GAAX,CAAd;;AACA,UAAIG,KAAJ,EAAW;AACT,aAAKM,WAAL,CAAiBT,GAAjB;AACA,aAAKI,WAAL,CAAiBJ,GAAjB;AACA,aAAKJ,OAAL,CAAaO,KAAb,EAAoBH,GAApB;AACD;AACF;;;WAED,qBAAmBA,GAAnB,EAAgC;AAC9B,aAAO,KAAKE,KAAL,CAAWF,GAAX,CAAP;AACD;;;WAED,qBAAmBA,GAAnB,EAAgC;AAC9B,UAAMU,KAAK,GAAG,KAAKb,KAAL,CAAWc,SAAX,CAAqB,UAACC,CAAD;AAAA,eAAOA,CAAC,KAAKZ,GAAb;AAAA,OAArB,CAAd;;AACA,UAAIU,KAAK,IAAI,CAAb,EAAgB;AACd,aAAKb,KAAL,CAAWgB,MAAX,CAAkBH,KAAlB,EAAyB,CAAzB;AACD;AACF;;;WAED,qBAAmBV,GAAnB,EAAgC;AAC9B,WAAKH,KAAL,CAAWiB,IAAX,CAAgBd,GAAhB;AACD","sourcesContent":["/**\n * LRU Cache class with limit\n *\n * Update order for each get/set operation\n * Delete oldest when reach given limit\n */\n\nexport default class LRUCache {\n public limit: number;\n public order: any[];\n public cache: any;\n public destroy: any;\n constructor(limit = 50, destroy = () => '') {\n this.limit = limit;\n this.destroy = destroy;\n this.order = [];\n this.clear();\n }\n\n public clear() {\n this.order.forEach((key: any) => {\n this.delete(key);\n });\n this.cache = {};\n // access/update order, first item is oldest, last item is newest\n this.order = [];\n }\n\n public get(key: string) {\n const value = this.cache[key];\n if (value) {\n // update order\n this.deleteOrder(key);\n this.appendOrder(key);\n }\n return value;\n }\n\n public set(key: string, value: any) {\n if (!this.cache[key]) {\n // if reach limit, delete the oldest\n if (Object.keys(this.cache).length === this.limit) {\n this.delete(this.order[0]);\n }\n\n this.cache[key] = value;\n this.appendOrder(key);\n } else {\n // if found in cache, delete the old one, insert new one to the first of list\n this.delete(key);\n\n this.cache[key] = value;\n this.appendOrder(key);\n }\n }\n\n public delete(key: string) {\n const value = this.cache[key];\n if (value) {\n this.deleteCache(key);\n this.deleteOrder(key);\n this.destroy(value, key);\n }\n }\n\n public deleteCache(key: string) {\n delete this.cache[key];\n }\n\n public deleteOrder(key: string) {\n const index = this.order.findIndex((o) => o === key);\n if (index >= 0) {\n this.order.splice(index, 1);\n }\n }\n\n public appendOrder(key: string) {\n this.order.push(key);\n }\n}\n"],"file":"lruCache.js"}
|
|
@@ -0,0 +1,58 @@
|
|
|
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 _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
+
|
|
14
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
+
|
|
16
|
+
var _lruCache = _interopRequireDefault(require("./lruCache"));
|
|
17
|
+
|
|
18
|
+
var TileCache = function () {
|
|
19
|
+
function TileCache() {
|
|
20
|
+
var limit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 50;
|
|
21
|
+
var tileDestroy = arguments.length > 1 ? arguments[1] : undefined;
|
|
22
|
+
(0, _classCallCheck2.default)(this, TileCache);
|
|
23
|
+
(0, _defineProperty2.default)(this, "cache", void 0);
|
|
24
|
+
this.cache = new _lruCache.default(limit, tileDestroy);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
(0, _createClass2.default)(TileCache, [{
|
|
28
|
+
key: "getTile",
|
|
29
|
+
value: function getTile(key) {
|
|
30
|
+
return this.cache.get(key);
|
|
31
|
+
}
|
|
32
|
+
}, {
|
|
33
|
+
key: "setTile",
|
|
34
|
+
value: function setTile(tile, key) {
|
|
35
|
+
this.cache.set(key, tile);
|
|
36
|
+
}
|
|
37
|
+
}, {
|
|
38
|
+
key: "destory",
|
|
39
|
+
value: function destory() {
|
|
40
|
+
this.cache.clear();
|
|
41
|
+
}
|
|
42
|
+
}, {
|
|
43
|
+
key: "setNeedUpdate",
|
|
44
|
+
value: function setNeedUpdate() {
|
|
45
|
+
var _this = this;
|
|
46
|
+
|
|
47
|
+
this.cache.order.forEach(function (key) {
|
|
48
|
+
var tile = _this.cache.get(key);
|
|
49
|
+
|
|
50
|
+
tile.needUpdate = true;
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}]);
|
|
54
|
+
return TileCache;
|
|
55
|
+
}();
|
|
56
|
+
|
|
57
|
+
exports.default = TileCache;
|
|
58
|
+
//# sourceMappingURL=tileCache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/imagetile/utils/tileCache.ts"],"names":["TileCache","limit","tileDestroy","cache","LRUCache","key","get","tile","set","clear","order","forEach","needUpdate"],"mappings":";;;;;;;;;;;;;;;AAAA;;IACqBA,S;AAEnB,uBAA0C;AAAA,QAA9BC,KAA8B,uEAAtB,EAAsB;AAAA,QAAlBC,WAAkB;AAAA;AAAA;AACxC,SAAKC,KAAL,GAAa,IAAIC,iBAAJ,CAAaH,KAAb,EAAoBC,WAApB,CAAb;AACD;;;;WAED,iBAAeG,GAAf,EAA4B;AAC1B,aAAO,KAAKF,KAAL,CAAWG,GAAX,CAAeD,GAAf,CAAP;AACD;;;WAED,iBAAeE,IAAf,EAA0BF,GAA1B,EAAuC;AACrC,WAAKF,KAAL,CAAWK,GAAX,CAAeH,GAAf,EAAoBE,IAApB;AACD;;;WACD,mBAAiB;AACf,WAAKJ,KAAL,CAAWM,KAAX;AACD;;;WACD,yBAAuB;AAAA;;AACrB,WAAKN,KAAL,CAAWO,KAAX,CAAiBC,OAAjB,CAAyB,UAACN,GAAD,EAAiB;AACxC,YAAME,IAAI,GAAG,KAAI,CAACJ,KAAL,CAAWG,GAAX,CAAeD,GAAf,CAAb;;AACAE,QAAAA,IAAI,CAACK,UAAL,GAAkB,IAAlB;AACD,OAHD;AAID","sourcesContent":["import LRUCache from './lruCache';\nexport default class TileCache {\n public cache: any;\n constructor(limit = 50, tileDestroy: any) {\n this.cache = new LRUCache(limit, tileDestroy);\n }\n\n public getTile(key: string) {\n return this.cache.get(key);\n }\n\n public setTile(tile: any, key: string) {\n this.cache.set(key, tile);\n }\n public destory() {\n this.cache.clear();\n }\n public setNeedUpdate() {\n this.cache.order.forEach((key: string) => {\n const tile = this.cache.get(key);\n tile.needUpdate = true;\n });\n }\n}\n"],"file":"tileCache.js"}
|
package/lib/index.js
CHANGED
|
@@ -5,16 +5,22 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
+
Object.defineProperty(exports, "BaseLayer", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function get() {
|
|
11
|
+
return _BaseLayer.default;
|
|
12
|
+
}
|
|
13
|
+
});
|
|
8
14
|
Object.defineProperty(exports, "CityBuildingLayer", {
|
|
9
15
|
enumerable: true,
|
|
10
16
|
get: function get() {
|
|
11
17
|
return _building.default;
|
|
12
18
|
}
|
|
13
19
|
});
|
|
14
|
-
Object.defineProperty(exports, "
|
|
20
|
+
Object.defineProperty(exports, "EarthLayer", {
|
|
15
21
|
enumerable: true,
|
|
16
22
|
get: function get() {
|
|
17
|
-
return
|
|
23
|
+
return _earth.default;
|
|
18
24
|
}
|
|
19
25
|
});
|
|
20
26
|
Object.defineProperty(exports, "HeatmapLayer", {
|
|
@@ -29,6 +35,12 @@ Object.defineProperty(exports, "ImageLayer", {
|
|
|
29
35
|
return _image.default;
|
|
30
36
|
}
|
|
31
37
|
});
|
|
38
|
+
Object.defineProperty(exports, "ImageTileLayer", {
|
|
39
|
+
enumerable: true,
|
|
40
|
+
get: function get() {
|
|
41
|
+
return _imagetile.default;
|
|
42
|
+
}
|
|
43
|
+
});
|
|
32
44
|
Object.defineProperty(exports, "LineLayer", {
|
|
33
45
|
enumerable: true,
|
|
34
46
|
get: function get() {
|
|
@@ -53,12 +65,6 @@ Object.defineProperty(exports, "RasterLayer", {
|
|
|
53
65
|
return _raster.default;
|
|
54
66
|
}
|
|
55
67
|
});
|
|
56
|
-
Object.defineProperty(exports, "EarthLayer", {
|
|
57
|
-
enumerable: true,
|
|
58
|
-
get: function get() {
|
|
59
|
-
return _earth.default;
|
|
60
|
-
}
|
|
61
|
-
});
|
|
62
68
|
|
|
63
69
|
var _l7Core = require("@antv/l7-core");
|
|
64
70
|
|
|
@@ -72,6 +78,8 @@ var _heatmap = _interopRequireDefault(require("./heatmap"));
|
|
|
72
78
|
|
|
73
79
|
var _image = _interopRequireDefault(require("./image"));
|
|
74
80
|
|
|
81
|
+
var _imagetile = _interopRequireDefault(require("./imagetile"));
|
|
82
|
+
|
|
75
83
|
var _index = _interopRequireDefault(require("./line/index"));
|
|
76
84
|
|
|
77
85
|
var _point = _interopRequireDefault(require("./point"));
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":["container","bind","TYPES","ILayerPlugin","to","DataSourcePlugin","inRequestScope","RegisterStyleAttributePlugin","FeatureScalePlugin","DataMappingPlugin","LayerStylePlugin","UpdateStyleAttributePlugin","UpdateModelPlugin","MultiPassRendererPlugin","ShaderUniformPlugin","LayerAnimateStylePlugin","LightingPlugin","PixelPickingPlugin","LayerModelPlugin"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":["container","bind","TYPES","ILayerPlugin","to","DataSourcePlugin","inRequestScope","RegisterStyleAttributePlugin","FeatureScalePlugin","DataMappingPlugin","LayerStylePlugin","UpdateStyleAttributePlugin","UpdateModelPlugin","MultiPassRendererPlugin","ShaderUniformPlugin","LayerAnimateStylePlugin","LightingPlugin","PixelPickingPlugin","LayerModelPlugin"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AAGA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAaAA,kBACGC,IADH,CACsBC,cAAMC,YAD5B,EAEGC,EAFH,CAEMC,yBAFN,EAGGC,cAHH;;AAOAN,kBACGC,IADH,CACsBC,cAAMC,YAD5B,EAEGC,EAFH,CAEMG,qCAFN,EAGGD,cAHH;;AAOAN,kBACGC,IADH,CACsBC,cAAMC,YAD5B,EAEGC,EAFH,CAEMI,2BAFN,EAGGF,cAHH;;AAOAN,kBACGC,IADH,CACsBC,cAAMC,YAD5B,EAEGC,EAFH,CAEMK,0BAFN,EAGGH,cAHH;;AAQAN,kBACGC,IADH,CACsBC,cAAMC,YAD5B,EAEGC,EAFH,CAEMM,yBAFN,EAGGJ,cAHH;;AAQAN,kBACGC,IADH,CACsBC,cAAMC,YAD5B,EAEGC,EAFH,CAEMO,mCAFN,EAGGL,cAHH;;AAQAN,kBACGC,IADH,CACsBC,cAAMC,YAD5B,EAEGC,EAFH,CAEMQ,0BAFN,EAGGN,cAHH;;AAQAN,kBACGC,IADH,CACsBC,cAAMC,YAD5B,EAEGC,EAFH,CAEMS,gCAFN,EAGGP,cAHH;;AAOAN,kBACGC,IADH,CACsBC,cAAMC,YAD5B,EAEGC,EAFH,CAEMU,4BAFN,EAGGR,cAHH;;AAQAN,kBACGC,IADH,CACsBC,cAAMC,YAD5B,EAEGC,EAFH,CAEMW,gCAFN,EAGGT,cAHH;;AAOAN,kBACGC,IADH,CACsBC,cAAMC,YAD5B,EAEGC,EAFH,CAEMY,uBAFN,EAGGV,cAHH;;AAOAN,kBACGC,IADH,CACsBC,cAAMC,YAD5B,EAEGC,EAFH,CAEMa,2BAFN,EAGGX,cAHH;;AAOAN,kBACGC,IADH,CACsBC,cAAMC,YAD5B,EAEGC,EAFH,CAEMc,yBAFN,EAGGZ,cAHH","sourcesContent":["import { container, ILayerPlugin, TYPES } from '@antv/l7-core';\nimport CityBuildingLayer from './citybuliding/building';\nimport BaseLayer from './core/BaseLayer';\nimport './glsl.d';\nimport HeatmapLayer from './heatmap';\nimport ImageLayer from './image';\nimport ImageTileLayer from './imagetile';\nimport LineLayer from './line/index';\nimport PointLayer from './point';\nimport PolygonLayer from './polygon';\nimport RasterLayer from './raster';\n\nimport EarthLayer from './earth';\n\n// import ConfigSchemaValidationPlugin from './plugins/ConfigSchemaValidationPlugin';\nimport DataMappingPlugin from './plugins/DataMappingPlugin';\nimport DataSourcePlugin from './plugins/DataSourcePlugin';\nimport FeatureScalePlugin from './plugins/FeatureScalePlugin';\nimport LayerAnimateStylePlugin from './plugins/LayerAnimateStylePlugin';\nimport LayerModelPlugin from './plugins/LayerModelPlugin';\nimport LayerStylePlugin from './plugins/LayerStylePlugin';\nimport LightingPlugin from './plugins/LightingPlugin';\nimport MultiPassRendererPlugin from './plugins/MultiPassRendererPlugin';\nimport PixelPickingPlugin from './plugins/PixelPickingPlugin';\nimport RegisterStyleAttributePlugin from './plugins/RegisterStyleAttributePlugin';\nimport ShaderUniformPlugin from './plugins/ShaderUniformPlugin';\nimport UpdateModelPlugin from './plugins/UpdateModelPlugin';\nimport UpdateStyleAttributePlugin from './plugins/UpdateStyleAttributePlugin';\n\n/**\n * 校验传入参数配置项的正确性\n * @see /dev-docs/ConfigSchemaValidation.md\n */\n// container\n// .bind<ILayerPlugin>(TYPES.ILayerPlugin)\n// .to(ConfigSchemaValidationPlugin)\n// .inRequestScope();\n/**\n * 获取 Source\n */\ncontainer\n .bind<ILayerPlugin>(TYPES.ILayerPlugin)\n .to(DataSourcePlugin)\n .inRequestScope();\n/**\n * 根据 StyleAttribute 创建 VertexAttribute\n */\ncontainer\n .bind<ILayerPlugin>(TYPES.ILayerPlugin)\n .to(RegisterStyleAttributePlugin)\n .inRequestScope();\n/**\n * 根据 Source 创建 Scale\n */\ncontainer\n .bind<ILayerPlugin>(TYPES.ILayerPlugin)\n .to(FeatureScalePlugin)\n .inRequestScope();\n/**\n * 使用 Scale 进行数据映射\n */\ncontainer\n .bind<ILayerPlugin>(TYPES.ILayerPlugin)\n .to(DataMappingPlugin)\n .inRequestScope();\n\n/**\n * 更新地图样式配置项 如active, show, hide\n */\ncontainer\n .bind<ILayerPlugin>(TYPES.ILayerPlugin)\n .to(LayerStylePlugin)\n .inRequestScope();\n\n/**\n * 负责属性更新\n */\ncontainer\n .bind<ILayerPlugin>(TYPES.ILayerPlugin)\n .to(UpdateStyleAttributePlugin)\n .inRequestScope();\n\n/**\n * 负责Model更新\n */\ncontainer\n .bind<ILayerPlugin>(TYPES.ILayerPlugin)\n .to(UpdateModelPlugin)\n .inRequestScope();\n\n/**\n * Multi Pass 自定义渲染管线\n */\ncontainer\n .bind<ILayerPlugin>(TYPES.ILayerPlugin)\n .to(MultiPassRendererPlugin)\n .inRequestScope();\n/**\n * 传入相机坐标系参数\n */\ncontainer\n .bind<ILayerPlugin>(TYPES.ILayerPlugin)\n .to(ShaderUniformPlugin)\n .inRequestScope();\n\n/**\n * 传入动画参数\n */\ncontainer\n .bind<ILayerPlugin>(TYPES.ILayerPlugin)\n .to(LayerAnimateStylePlugin)\n .inRequestScope();\n/**\n * 传入光照相关参数\n */\ncontainer\n .bind<ILayerPlugin>(TYPES.ILayerPlugin)\n .to(LightingPlugin)\n .inRequestScope();\n/**\n * 负责拾取过程中 Encode 以及 Highlight 阶段及结束后恢复\n */\ncontainer\n .bind<ILayerPlugin>(TYPES.ILayerPlugin)\n .to(PixelPickingPlugin)\n .inRequestScope();\n/**\n * 初始化Model\n */\ncontainer\n .bind<ILayerPlugin>(TYPES.ILayerPlugin)\n .to(LayerModelPlugin)\n .inRequestScope();\n\nexport {\n BaseLayer,\n PointLayer,\n PolygonLayer,\n LineLayer,\n CityBuildingLayer,\n ImageLayer,\n ImageTileLayer,\n RasterLayer,\n HeatmapLayer,\n EarthLayer,\n};\n"],"file":"index.js"}
|