@antv/l7-layers 2.8.34 → 2.8.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/Geometry/index.d.ts +1 -1
- package/es/Geometry/index.js +4 -1
- package/es/Geometry/index.js.map +1 -1
- package/es/Geometry/models/billboard.d.ts +26 -0
- package/es/Geometry/models/billboard.js +213 -0
- package/es/Geometry/models/billboard.js.map +1 -0
- package/es/Geometry/models/index.d.ts +1 -1
- package/es/Geometry/models/index.js +3 -1
- package/es/Geometry/models/index.js.map +1 -1
- package/es/Geometry/models/sprite.js +2 -2
- package/es/core/BaseLayer.d.ts +2 -2
- package/es/core/BaseLayer.js.map +1 -1
- package/es/core/LayerGroup.d.ts +2 -1
- package/es/core/LayerGroup.js +5 -0
- package/es/core/LayerGroup.js.map +1 -1
- package/es/core/interface.d.ts +29 -2
- package/es/core/interface.js.map +1 -1
- package/es/image/models/image.js.map +1 -1
- package/es/index.d.ts +2 -2
- package/es/index.js +2 -2
- package/es/index.js.map +1 -1
- package/es/line/models/arc.js +4 -4
- package/es/line/models/arc.js.map +1 -1
- package/es/line/models/arc_3d.js +4 -5
- package/es/line/models/arc_3d.js.map +1 -1
- package/es/line/models/arcmini.js +5 -5
- package/es/line/models/arcmini.js.map +1 -1
- package/es/line/models/great_circle.js +3 -3
- package/es/line/models/great_circle.js.map +1 -1
- package/es/line/models/line.js +3 -3
- package/es/line/models/line.js.map +1 -1
- package/es/line/models/linearline.js +3 -3
- package/es/line/models/linearline.js.map +1 -1
- package/es/line/models/simpleLine.js +8 -8
- package/es/line/models/simpleLine.js.map +1 -1
- package/es/line/models/wall.js +5 -5
- package/es/line/models/wall.js.map +1 -1
- package/es/mask/index.d.ts +1 -4
- package/es/mask/index.js.map +1 -1
- package/es/mask/models/fill.js.map +1 -1
- package/es/plugins/DataMappingPlugin.d.ts +1 -0
- package/es/plugins/DataMappingPlugin.js +17 -9
- package/es/plugins/DataMappingPlugin.js.map +1 -1
- package/es/plugins/FeatureScalePlugin.d.ts +1 -2
- package/es/plugins/FeatureScalePlugin.js +42 -33
- package/es/plugins/FeatureScalePlugin.js.map +1 -1
- package/es/plugins/ShaderUniformPlugin.d.ts +1 -0
- package/es/plugins/ShaderUniformPlugin.js +12 -0
- package/es/plugins/ShaderUniformPlugin.js.map +1 -1
- package/es/point/models/extrude.js +3 -4
- package/es/point/models/extrude.js.map +1 -1
- package/es/point/models/fill.js +3 -4
- package/es/point/models/fill.js.map +1 -1
- package/es/point/models/fillmage.d.ts +1 -1
- package/es/point/models/fillmage.js +6 -21
- package/es/point/models/fillmage.js.map +1 -1
- package/es/point/models/icon-font.js +1 -1
- package/es/point/models/image.js +4 -4
- package/es/point/models/image.js.map +1 -1
- package/es/point/models/normal.js +1 -2
- package/es/point/models/normal.js.map +1 -1
- package/es/point/models/radar.js +5 -18
- package/es/point/models/radar.js.map +1 -1
- package/es/point/models/simplePoint.js +5 -6
- package/es/point/models/simplePoint.js.map +1 -1
- package/es/point/models/text.js +4 -4
- package/es/point/models/text.js.map +1 -1
- package/es/polygon/models/extrude.js +3 -4
- package/es/polygon/models/extrude.js.map +1 -1
- package/es/polygon/models/fill.d.ts +1 -0
- package/es/polygon/models/fill.js +37 -12
- package/es/polygon/models/fill.js.map +1 -1
- package/es/polygon/models/ocean.js +3 -4
- package/es/polygon/models/ocean.js.map +1 -1
- package/es/polygon/models/water.js +3 -4
- package/es/polygon/models/water.js.map +1 -1
- package/es/raster/index.d.ts +3 -3
- package/es/raster/index.js +16 -6
- package/es/raster/index.js.map +1 -1
- package/es/raster/models/index.d.ts +1 -1
- package/es/raster/models/index.js +3 -1
- package/es/raster/models/index.js.map +1 -1
- package/es/raster/models/raste-tile.d.ts +23 -0
- package/es/raster/models/raste-tile.js +285 -0
- package/es/raster/models/raste-tile.js.map +1 -0
- package/es/raster/models/raster.js +2 -0
- package/es/raster/models/raster.js.map +1 -1
- package/es/wind/index.d.ts +1 -17
- package/es/wind/index.js.map +1 -1
- package/es/wind/models/utils.d.ts +12 -12
- package/es/wind/models/utils.js +6 -5
- package/es/wind/models/utils.js.map +1 -1
- package/es/wind/models/wind.js.map +1 -1
- package/es/wind/models/windRender.js.map +1 -1
- package/lib/Geometry/index.js +4 -1
- package/lib/Geometry/index.js.map +1 -1
- package/lib/Geometry/models/billboard.js +227 -0
- package/lib/Geometry/models/billboard.js.map +1 -0
- package/lib/Geometry/models/index.js +4 -1
- package/lib/Geometry/models/index.js.map +1 -1
- package/lib/Geometry/models/sprite.js +2 -2
- package/lib/core/BaseLayer.js.map +1 -1
- package/lib/core/LayerGroup.js +5 -0
- package/lib/core/LayerGroup.js.map +1 -1
- package/lib/core/interface.js.map +1 -1
- package/lib/image/models/image.js.map +1 -1
- package/lib/index.js +29 -8
- package/lib/index.js.map +1 -1
- package/lib/line/models/arc.js +4 -5
- package/lib/line/models/arc.js.map +1 -1
- package/lib/line/models/arc_3d.js +4 -6
- package/lib/line/models/arc_3d.js.map +1 -1
- package/lib/line/models/arcmini.js +5 -6
- package/lib/line/models/arcmini.js.map +1 -1
- package/lib/line/models/great_circle.js +3 -4
- package/lib/line/models/great_circle.js.map +1 -1
- package/lib/line/models/line.js +3 -4
- package/lib/line/models/line.js.map +1 -1
- package/lib/line/models/linearline.js +3 -4
- package/lib/line/models/linearline.js.map +1 -1
- package/lib/line/models/simpleLine.js +8 -9
- package/lib/line/models/simpleLine.js.map +1 -1
- package/lib/line/models/wall.js +5 -6
- package/lib/line/models/wall.js.map +1 -1
- package/lib/mask/index.js.map +1 -1
- package/lib/mask/models/fill.js.map +1 -1
- package/lib/plugins/DataMappingPlugin.js +17 -9
- package/lib/plugins/DataMappingPlugin.js.map +1 -1
- package/lib/plugins/FeatureScalePlugin.js +43 -33
- package/lib/plugins/FeatureScalePlugin.js.map +1 -1
- package/lib/plugins/ShaderUniformPlugin.js +12 -0
- package/lib/plugins/ShaderUniformPlugin.js.map +1 -1
- package/lib/point/models/extrude.js +3 -5
- package/lib/point/models/extrude.js.map +1 -1
- package/lib/point/models/fill.js +3 -5
- package/lib/point/models/fill.js.map +1 -1
- package/lib/point/models/fillmage.js +7 -23
- package/lib/point/models/fillmage.js.map +1 -1
- package/lib/point/models/icon-font.js +1 -1
- package/lib/point/models/image.js +4 -5
- package/lib/point/models/image.js.map +1 -1
- package/lib/point/models/normal.js +1 -3
- package/lib/point/models/normal.js.map +1 -1
- package/lib/point/models/radar.js +5 -19
- package/lib/point/models/radar.js.map +1 -1
- package/lib/point/models/simplePoint.js +5 -7
- package/lib/point/models/simplePoint.js.map +1 -1
- package/lib/point/models/text.js +4 -5
- package/lib/point/models/text.js.map +1 -1
- package/lib/polygon/models/extrude.js +3 -5
- package/lib/polygon/models/extrude.js.map +1 -1
- package/lib/polygon/models/fill.js +37 -13
- package/lib/polygon/models/fill.js.map +1 -1
- package/lib/polygon/models/ocean.js +3 -5
- package/lib/polygon/models/ocean.js.map +1 -1
- package/lib/polygon/models/water.js +3 -5
- package/lib/polygon/models/water.js.map +1 -1
- package/lib/raster/index.js +16 -6
- package/lib/raster/index.js.map +1 -1
- package/lib/raster/models/index.js +4 -1
- package/lib/raster/models/index.js.map +1 -1
- package/lib/raster/models/raste-tile.js +294 -0
- package/lib/raster/models/raste-tile.js.map +1 -0
- package/lib/raster/models/raster.js +2 -0
- package/lib/raster/models/raster.js.map +1 -1
- package/lib/wind/index.js.map +1 -1
- package/lib/wind/models/utils.js +6 -5
- package/lib/wind/models/utils.js.map +1 -1
- package/lib/wind/models/wind.js.map +1 -1
- package/lib/wind/models/windRender.js.map +1 -1
- package/package.json +7 -6
- package/es/imagetile/index.d.ts +0 -22
- package/es/imagetile/index.js +0 -82
- package/es/imagetile/index.js.map +0 -1
- package/es/imagetile/models/imagetile.d.ts +0 -12
- package/es/imagetile/models/imagetile.js +0 -133
- package/es/imagetile/models/imagetile.js.map +0 -1
- package/es/imagetile/models/index.d.ts +0 -5
- package/es/imagetile/models/index.js +0 -6
- package/es/imagetile/models/index.js.map +0 -1
- package/es/imagetile/utils/ImageTile.d.ts +0 -20
- package/es/imagetile/utils/ImageTile.js +0 -92
- package/es/imagetile/utils/ImageTile.js.map +0 -1
- package/es/imagetile/utils/Tile.d.ts +0 -27
- package/es/imagetile/utils/Tile.js +0 -313
- package/es/imagetile/utils/Tile.js.map +0 -1
- package/es/imagetile/utils/lruCache.d.ts +0 -20
- package/es/imagetile/utils/lruCache.js +0 -105
- package/es/imagetile/utils/lruCache.js.map +0 -1
- package/es/imagetile/utils/tileCache.d.ts +0 -8
- package/es/imagetile/utils/tileCache.js +0 -50
- package/es/imagetile/utils/tileCache.js.map +0 -1
- package/lib/imagetile/index.js +0 -95
- package/lib/imagetile/index.js.map +0 -1
- package/lib/imagetile/models/imagetile.js +0 -146
- package/lib/imagetile/models/imagetile.js.map +0 -1
- package/lib/imagetile/models/index.js +0 -17
- package/lib/imagetile/models/index.js.map +0 -1
- package/lib/imagetile/utils/ImageTile.js +0 -101
- package/lib/imagetile/utils/ImageTile.js.map +0 -1
- package/lib/imagetile/utils/Tile.js +0 -316
- package/lib/imagetile/utils/Tile.js.map +0 -1
- package/lib/imagetile/utils/lruCache.js +0 -109
- package/lib/imagetile/utils/lruCache.js.map +0 -1
- package/lib/imagetile/utils/tileCache.js +0 -58
- package/lib/imagetile/utils/tileCache.js.map +0 -1
|
@@ -1,313 +0,0 @@
|
|
|
1
|
-
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
|
-
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
3
|
-
import _createClass from "@babel/runtime/helpers/createClass";
|
|
4
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
5
|
-
import { Bounds, GeoCoordinates, Point, toLngLat } from '@antv/geo-coord';
|
|
6
|
-
import { createLayerContainer } from '@antv/l7-core';
|
|
7
|
-
import ImageTile from './ImageTile';
|
|
8
|
-
import TileCache from './tileCache';
|
|
9
|
-
var CacheLimit = 30;
|
|
10
|
-
|
|
11
|
-
var Tile = function () {
|
|
12
|
-
function Tile(props) {
|
|
13
|
-
_classCallCheck(this, Tile);
|
|
14
|
-
|
|
15
|
-
_defineProperty(this, "tileList", {});
|
|
16
|
-
|
|
17
|
-
_defineProperty(this, "tileCache", void 0);
|
|
18
|
-
|
|
19
|
-
_defineProperty(this, "updateTileList", void 0);
|
|
20
|
-
|
|
21
|
-
_defineProperty(this, "tileZoom", void 0);
|
|
22
|
-
|
|
23
|
-
_defineProperty(this, "noPruneRange", void 0);
|
|
24
|
-
|
|
25
|
-
_defineProperty(this, "url", void 0);
|
|
26
|
-
|
|
27
|
-
_defineProperty(this, "resolution", void 0);
|
|
28
|
-
|
|
29
|
-
_defineProperty(this, "maxSourceZoom", void 0);
|
|
30
|
-
|
|
31
|
-
_defineProperty(this, "crstype", void 0);
|
|
32
|
-
|
|
33
|
-
_defineProperty(this, "currentCrs", void 0);
|
|
34
|
-
|
|
35
|
-
_defineProperty(this, "layerService", void 0);
|
|
36
|
-
|
|
37
|
-
_defineProperty(this, "layer", void 0);
|
|
38
|
-
|
|
39
|
-
this.layerService = props.layerService;
|
|
40
|
-
this.layer = props.layer;
|
|
41
|
-
this.url = props.url;
|
|
42
|
-
this.resolution = props.resolution === 'low' ? -1 : 0;
|
|
43
|
-
this.maxSourceZoom = props.maxSourceZoom;
|
|
44
|
-
this.crstype = props.crstype;
|
|
45
|
-
this.currentCrs = new GeoCoordinates.default({
|
|
46
|
-
start: {
|
|
47
|
-
x: 0,
|
|
48
|
-
y: 0
|
|
49
|
-
},
|
|
50
|
-
end: {
|
|
51
|
-
x: 0,
|
|
52
|
-
y: 0
|
|
53
|
-
},
|
|
54
|
-
projection: this.crstype
|
|
55
|
-
}).crs;
|
|
56
|
-
this.destroyTile = this.destroyTile.bind(this);
|
|
57
|
-
this.tileCache = new TileCache(CacheLimit, this.destroyTile);
|
|
58
|
-
this.updateTileList = [];
|
|
59
|
-
this.removeTiles = this.removeTiles.bind(this);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
_createClass(Tile, [{
|
|
63
|
-
key: "calCurrentTiles",
|
|
64
|
-
value: function calCurrentTiles(oprions) {
|
|
65
|
-
var _this = this;
|
|
66
|
-
|
|
67
|
-
var NE = oprions.NE,
|
|
68
|
-
SW = oprions.SW,
|
|
69
|
-
tileCenter = oprions.tileCenter,
|
|
70
|
-
currentZoom = oprions.currentZoom,
|
|
71
|
-
minSourceZoom = oprions.minSourceZoom,
|
|
72
|
-
minZoom = oprions.minZoom,
|
|
73
|
-
maxZoom = oprions.maxZoom;
|
|
74
|
-
|
|
75
|
-
if (currentZoom >= this.maxSourceZoom) {
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
var zoom = Math.floor(currentZoom) + this.resolution;
|
|
80
|
-
this.tileZoom = zoom > this.maxSourceZoom ? this.maxSourceZoom : zoom;
|
|
81
|
-
|
|
82
|
-
if (currentZoom < minZoom || currentZoom >= maxZoom || currentZoom < minSourceZoom) {
|
|
83
|
-
this.removeTiles();
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
this.updateTileList = [];
|
|
88
|
-
var centerPoint = this.currentCrs.lngLatToPoint(toLngLat(tileCenter.lng, tileCenter.lat), this.tileZoom);
|
|
89
|
-
var centerXY = centerPoint.divideBy(256).floor();
|
|
90
|
-
var pixelBounds = this.getPixelBounds(NE, SW, tileCenter, this.tileZoom, this.currentCrs);
|
|
91
|
-
var tileRange = this.pxBoundsToTileRange(pixelBounds);
|
|
92
|
-
var margin = 4;
|
|
93
|
-
this.noPruneRange = new Bounds(tileRange.getBottomLeft().subtract([margin, -margin]), tileRange.getTopRight().add([margin, -margin]));
|
|
94
|
-
|
|
95
|
-
if (!(isFinite(tileRange.min.x) && isFinite(tileRange.min.y) && isFinite(tileRange.max.x) && isFinite(tileRange.max.y))) {
|
|
96
|
-
throw new Error('Attempted to load an infinite number of tiles');
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
for (var j = tileRange.min.y; j <= tileRange.max.y; j++) {
|
|
100
|
-
for (var i = tileRange.min.x; i <= tileRange.max.x; i++) {
|
|
101
|
-
var coords = [i, j, this.tileZoom];
|
|
102
|
-
var tile = this.tileList[coords.join('_')];
|
|
103
|
-
|
|
104
|
-
if (tile) {
|
|
105
|
-
tile.current = true;
|
|
106
|
-
} else {
|
|
107
|
-
this.tileList[coords.join('_')] = {
|
|
108
|
-
current: true,
|
|
109
|
-
coords: coords
|
|
110
|
-
};
|
|
111
|
-
this.updateTileList.push(coords);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
this.updateTileList.sort(function (a, b) {
|
|
117
|
-
var tile1 = a;
|
|
118
|
-
var tile2 = b;
|
|
119
|
-
var d1 = Math.pow(tile1[0] * 1 - centerXY.x, 2) + Math.pow(tile1[1] * 1 - centerXY.y, 2);
|
|
120
|
-
var d2 = Math.pow(tile2[0] * 1 - centerXY.x, 2) + Math.pow(tile2[1] * 1 - centerXY.y, 2);
|
|
121
|
-
return d1 - d2;
|
|
122
|
-
});
|
|
123
|
-
this.pruneTiles();
|
|
124
|
-
this.updateTileList.forEach(function (coords) {
|
|
125
|
-
var key = coords.join('_');
|
|
126
|
-
|
|
127
|
-
if (_this.tileList[key].current) {
|
|
128
|
-
_this.requestTile(key);
|
|
129
|
-
}
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
}, {
|
|
133
|
-
key: "pxBoundsToTileRange",
|
|
134
|
-
value: function pxBoundsToTileRange(pixelBounds) {
|
|
135
|
-
return new Bounds(pixelBounds.min.divideBy(256).floor(), pixelBounds.max.divideBy(256).ceil().subtract([1, 1]));
|
|
136
|
-
}
|
|
137
|
-
}, {
|
|
138
|
-
key: "getPixelBounds",
|
|
139
|
-
value: function getPixelBounds(NE, SW, tileCenter, tileZoom, crs) {
|
|
140
|
-
var zoom = tileZoom;
|
|
141
|
-
var NEPoint = crs.lngLatToPoint(toLngLat(NE.lng, NE.lat), zoom);
|
|
142
|
-
var SWPoint = crs.lngLatToPoint(toLngLat(SW.lng, SW.lat), zoom);
|
|
143
|
-
var centerPoint = crs.lngLatToPoint(toLngLat(tileCenter.lng, tileCenter.lat), zoom);
|
|
144
|
-
var topHeight = centerPoint.y - NEPoint.y;
|
|
145
|
-
var bottomHeight = SWPoint.y - centerPoint.y;
|
|
146
|
-
var leftWidth;
|
|
147
|
-
var rightWidth;
|
|
148
|
-
|
|
149
|
-
if (tileCenter.lng - NE.lng > 0 || tileCenter.lng - SW.lng < 0) {
|
|
150
|
-
var width = Math.pow(2, zoom) * 256 / 360 * (180 - NE.lng) + Math.pow(2, zoom) * 256 / 360 * (SW.lng + 180);
|
|
151
|
-
|
|
152
|
-
if (tileCenter.lng - NE.lng > 0) {
|
|
153
|
-
leftWidth = Math.pow(2, zoom) * 256 / 360 * (tileCenter.lng - NE.lng);
|
|
154
|
-
rightWidth = width - leftWidth;
|
|
155
|
-
} else {
|
|
156
|
-
rightWidth = Math.pow(2, zoom) * 256 / 360 * (SW.lng - tileCenter.lng);
|
|
157
|
-
leftWidth = width - rightWidth;
|
|
158
|
-
}
|
|
159
|
-
} else {
|
|
160
|
-
leftWidth = Math.pow(2, zoom) * 256 / 360 * (tileCenter.lng - SW.lng);
|
|
161
|
-
rightWidth = Math.pow(2, zoom) * 256 / 360 * (NE.lng - tileCenter.lng);
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
var pixelBounds = new Bounds(centerPoint.subtract(leftWidth, topHeight), centerPoint.add(rightWidth, bottomHeight));
|
|
165
|
-
return pixelBounds;
|
|
166
|
-
}
|
|
167
|
-
}, {
|
|
168
|
-
key: "pruneTiles",
|
|
169
|
-
value: function pruneTiles() {
|
|
170
|
-
var _this2 = this;
|
|
171
|
-
|
|
172
|
-
Object.keys(this.tileList).map(function (key) {
|
|
173
|
-
var c = _this2.tileList[key].coords;
|
|
174
|
-
|
|
175
|
-
if (c[2] !== _this2.tileZoom || !_this2.noPruneRange.contains(new Point(c[0], c[1]))) {
|
|
176
|
-
_this2.tileList[key].current = false;
|
|
177
|
-
}
|
|
178
|
-
});
|
|
179
|
-
Object.keys(this.tileList).map(function (key) {
|
|
180
|
-
var tile = _this2.tileList[key];
|
|
181
|
-
tile.retain = tile.current;
|
|
182
|
-
});
|
|
183
|
-
Object.keys(this.tileList).map(function (key) {
|
|
184
|
-
var tile = _this2.tileList[key];
|
|
185
|
-
|
|
186
|
-
if (tile.current && !tile.active) {
|
|
187
|
-
var _key$split$map = key.split('_').map(function (v) {
|
|
188
|
-
return Number(v);
|
|
189
|
-
}),
|
|
190
|
-
_key$split$map2 = _slicedToArray(_key$split$map, 3),
|
|
191
|
-
x = _key$split$map2[0],
|
|
192
|
-
y = _key$split$map2[1],
|
|
193
|
-
z = _key$split$map2[2];
|
|
194
|
-
|
|
195
|
-
if (!_this2.retainParent(x, y, z, z - 5)) {
|
|
196
|
-
_this2.retainChildren(x, y, z, z + 2);
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
});
|
|
200
|
-
this.removeOutTiles();
|
|
201
|
-
}
|
|
202
|
-
}, {
|
|
203
|
-
key: "requestTile",
|
|
204
|
-
value: function requestTile(key) {
|
|
205
|
-
var t = this.tileList[key];
|
|
206
|
-
|
|
207
|
-
if (!t) {
|
|
208
|
-
return;
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
var tile = this.tileCache.getTile(key);
|
|
212
|
-
|
|
213
|
-
if (!tile) {
|
|
214
|
-
var container = createLayerContainer(this.layer.sceneContainer);
|
|
215
|
-
tile = new ImageTile(key, this.url, container, this.layer.sceneContainer);
|
|
216
|
-
tile.name = key;
|
|
217
|
-
t.current = true;
|
|
218
|
-
t.retain = true;
|
|
219
|
-
t.active = true;
|
|
220
|
-
this.layer.addChild(tile.imageLayer);
|
|
221
|
-
this.tileCache.setTile(tile, key);
|
|
222
|
-
this.pruneTiles();
|
|
223
|
-
this.layerService.updateLayerRenderList();
|
|
224
|
-
this.layerService.renderLayers();
|
|
225
|
-
} else {
|
|
226
|
-
tile.imageLayer.show();
|
|
227
|
-
t.current = true;
|
|
228
|
-
t.retain = true;
|
|
229
|
-
t.active = true;
|
|
230
|
-
this.pruneTiles();
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
}, {
|
|
234
|
-
key: "retainParent",
|
|
235
|
-
value: function retainParent(x, y, z, minZoom) {
|
|
236
|
-
var x2 = Math.floor(x / 2);
|
|
237
|
-
var y2 = Math.floor(y / 2);
|
|
238
|
-
var z2 = z - 1;
|
|
239
|
-
var tile = this.tileList[[x2, y2, z2].join('_')];
|
|
240
|
-
|
|
241
|
-
if (tile && tile.active) {
|
|
242
|
-
tile.retain = true;
|
|
243
|
-
return true;
|
|
244
|
-
} else if (tile && tile.loaded) {
|
|
245
|
-
tile.retain = true;
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
if (z2 > minZoom) {
|
|
249
|
-
return this.retainParent(x2, y2, z2, minZoom);
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
return false;
|
|
253
|
-
}
|
|
254
|
-
}, {
|
|
255
|
-
key: "retainChildren",
|
|
256
|
-
value: function retainChildren(x, y, z, maxZoom) {
|
|
257
|
-
for (var i = 2 * x; i < 2 * x + 2; i++) {
|
|
258
|
-
for (var j = 2 * y; j < 2 * y + 2; j++) {
|
|
259
|
-
var key = [i, j, z + 1].join('_');
|
|
260
|
-
var tile = this.tileList[key];
|
|
261
|
-
|
|
262
|
-
if (tile && tile.active) {
|
|
263
|
-
tile.retain = true;
|
|
264
|
-
continue;
|
|
265
|
-
} else if (tile && tile.loaded) {
|
|
266
|
-
tile.retain = true;
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
if (z + 1 < maxZoom) {
|
|
270
|
-
this.retainChildren(i, j, z + 1, maxZoom);
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
}, {
|
|
276
|
-
key: "destroyTile",
|
|
277
|
-
value: function destroyTile(tile) {
|
|
278
|
-
this.layer.removeChild(tile.imageLayer);
|
|
279
|
-
this.layerService.updateLayerRenderList();
|
|
280
|
-
this.layerService.renderLayers();
|
|
281
|
-
tile = null;
|
|
282
|
-
}
|
|
283
|
-
}, {
|
|
284
|
-
key: "removeOutTiles",
|
|
285
|
-
value: function removeOutTiles() {
|
|
286
|
-
for (var key in this.tileList) {
|
|
287
|
-
if (!this.tileList[key].retain) {
|
|
288
|
-
var tile = this.tileCache.getTile(key);
|
|
289
|
-
|
|
290
|
-
if (tile) {
|
|
291
|
-
tile.imageLayer.hide();
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
delete this.tileList[key];
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
}, {
|
|
299
|
-
key: "removeTiles",
|
|
300
|
-
value: function removeTiles() {
|
|
301
|
-
this.layer.clearChild();
|
|
302
|
-
this.layerService.updateLayerRenderList();
|
|
303
|
-
this.layerService.renderLayers();
|
|
304
|
-
this.tileList = {};
|
|
305
|
-
this.tileCache.destory();
|
|
306
|
-
}
|
|
307
|
-
}]);
|
|
308
|
-
|
|
309
|
-
return Tile;
|
|
310
|
-
}();
|
|
311
|
-
|
|
312
|
-
export { Tile as default };
|
|
313
|
-
//# sourceMappingURL=Tile.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/imagetile/utils/Tile.ts"],"names":["Bounds","GeoCoordinates","Point","toLngLat","createLayerContainer","ImageTile","TileCache","CacheLimit","Tile","props","layerService","layer","url","resolution","maxSourceZoom","crstype","currentCrs","default","start","x","y","end","projection","crs","destroyTile","bind","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","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","retain","active","split","v","Number","z","retainParent","retainChildren","removeOutTiles","t","getTile","container","sceneContainer","name","addChild","imageLayer","setTile","updateLayerRenderList","renderLayers","show","x2","y2","z2","loaded","removeChild","hide","clearChild","destory"],"mappings":"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","sourcesContent":["import { Bounds, GeoCoordinates, Point, toLngLat } from '@antv/geo-coord';\nimport {\n createLayerContainer,\n ILayer,\n ILayerGroup,\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: ILayerGroup;\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.addChild(tile.imageLayer);\n\n this.tileCache.setTile(tile, key);\n\n this.pruneTiles();\n this.layerService.updateLayerRenderList();\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 this.layer.removeChild(tile.imageLayer);\n this.layerService.updateLayerRenderList();\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.clearChild();\n this.layerService.updateLayerRenderList();\n this.layerService.renderLayers();\n this.tileList = {};\n this.tileCache.destory();\n }\n}\n"],"file":"Tile.js"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* LRU Cache class with limit
|
|
3
|
-
*
|
|
4
|
-
* Update order for each get/set operation
|
|
5
|
-
* Delete oldest when reach given limit
|
|
6
|
-
*/
|
|
7
|
-
export default class LRUCache {
|
|
8
|
-
limit: number;
|
|
9
|
-
order: any[];
|
|
10
|
-
cache: any;
|
|
11
|
-
destroy: any;
|
|
12
|
-
constructor(limit?: number, destroy?: () => string);
|
|
13
|
-
clear(): void;
|
|
14
|
-
get(key: string): any;
|
|
15
|
-
set(key: string, value: any): void;
|
|
16
|
-
delete(key: string): void;
|
|
17
|
-
deleteCache(key: string): void;
|
|
18
|
-
deleteOrder(key: string): void;
|
|
19
|
-
appendOrder(key: string): void;
|
|
20
|
-
}
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
2
|
-
import _createClass from "@babel/runtime/helpers/createClass";
|
|
3
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
4
|
-
|
|
5
|
-
var LRUCache = function () {
|
|
6
|
-
function LRUCache() {
|
|
7
|
-
var limit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 50;
|
|
8
|
-
var destroy = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {
|
|
9
|
-
return '';
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
_classCallCheck(this, LRUCache);
|
|
13
|
-
|
|
14
|
-
_defineProperty(this, "limit", void 0);
|
|
15
|
-
|
|
16
|
-
_defineProperty(this, "order", void 0);
|
|
17
|
-
|
|
18
|
-
_defineProperty(this, "cache", void 0);
|
|
19
|
-
|
|
20
|
-
_defineProperty(this, "destroy", void 0);
|
|
21
|
-
|
|
22
|
-
this.limit = limit;
|
|
23
|
-
this.destroy = destroy;
|
|
24
|
-
this.order = [];
|
|
25
|
-
this.clear();
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
_createClass(LRUCache, [{
|
|
29
|
-
key: "clear",
|
|
30
|
-
value: function clear() {
|
|
31
|
-
var _this = this;
|
|
32
|
-
|
|
33
|
-
this.order.forEach(function (key) {
|
|
34
|
-
_this.delete(key);
|
|
35
|
-
});
|
|
36
|
-
this.cache = {};
|
|
37
|
-
this.order = [];
|
|
38
|
-
}
|
|
39
|
-
}, {
|
|
40
|
-
key: "get",
|
|
41
|
-
value: function get(key) {
|
|
42
|
-
var value = this.cache[key];
|
|
43
|
-
|
|
44
|
-
if (value) {
|
|
45
|
-
this.deleteOrder(key);
|
|
46
|
-
this.appendOrder(key);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
return value;
|
|
50
|
-
}
|
|
51
|
-
}, {
|
|
52
|
-
key: "set",
|
|
53
|
-
value: function set(key, value) {
|
|
54
|
-
if (!this.cache[key]) {
|
|
55
|
-
if (Object.keys(this.cache).length === this.limit) {
|
|
56
|
-
this.delete(this.order[0]);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
this.cache[key] = value;
|
|
60
|
-
this.appendOrder(key);
|
|
61
|
-
} else {
|
|
62
|
-
this.delete(key);
|
|
63
|
-
this.cache[key] = value;
|
|
64
|
-
this.appendOrder(key);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}, {
|
|
68
|
-
key: "delete",
|
|
69
|
-
value: function _delete(key) {
|
|
70
|
-
var value = this.cache[key];
|
|
71
|
-
|
|
72
|
-
if (value) {
|
|
73
|
-
this.deleteCache(key);
|
|
74
|
-
this.deleteOrder(key);
|
|
75
|
-
this.destroy(value, key);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
}, {
|
|
79
|
-
key: "deleteCache",
|
|
80
|
-
value: function deleteCache(key) {
|
|
81
|
-
delete this.cache[key];
|
|
82
|
-
}
|
|
83
|
-
}, {
|
|
84
|
-
key: "deleteOrder",
|
|
85
|
-
value: function deleteOrder(key) {
|
|
86
|
-
var index = this.order.findIndex(function (o) {
|
|
87
|
-
return o === key;
|
|
88
|
-
});
|
|
89
|
-
|
|
90
|
-
if (index >= 0) {
|
|
91
|
-
this.order.splice(index, 1);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}, {
|
|
95
|
-
key: "appendOrder",
|
|
96
|
-
value: function appendOrder(key) {
|
|
97
|
-
this.order.push(key);
|
|
98
|
-
}
|
|
99
|
-
}]);
|
|
100
|
-
|
|
101
|
-
return LRUCache;
|
|
102
|
-
}();
|
|
103
|
-
|
|
104
|
-
export { LRUCache as default };
|
|
105
|
-
//# sourceMappingURL=lruCache.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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;;;;;;SAvEkBN,Q","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"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
2
|
-
import _createClass from "@babel/runtime/helpers/createClass";
|
|
3
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
4
|
-
import LRUCache from './lruCache';
|
|
5
|
-
|
|
6
|
-
var TileCache = function () {
|
|
7
|
-
function TileCache() {
|
|
8
|
-
var limit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 50;
|
|
9
|
-
var tileDestroy = arguments.length > 1 ? arguments[1] : undefined;
|
|
10
|
-
|
|
11
|
-
_classCallCheck(this, TileCache);
|
|
12
|
-
|
|
13
|
-
_defineProperty(this, "cache", void 0);
|
|
14
|
-
|
|
15
|
-
this.cache = new LRUCache(limit, tileDestroy);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
_createClass(TileCache, [{
|
|
19
|
-
key: "getTile",
|
|
20
|
-
value: function getTile(key) {
|
|
21
|
-
return this.cache.get(key);
|
|
22
|
-
}
|
|
23
|
-
}, {
|
|
24
|
-
key: "setTile",
|
|
25
|
-
value: function setTile(tile, key) {
|
|
26
|
-
this.cache.set(key, tile);
|
|
27
|
-
}
|
|
28
|
-
}, {
|
|
29
|
-
key: "destory",
|
|
30
|
-
value: function destory() {
|
|
31
|
-
this.cache.clear();
|
|
32
|
-
}
|
|
33
|
-
}, {
|
|
34
|
-
key: "setNeedUpdate",
|
|
35
|
-
value: function setNeedUpdate() {
|
|
36
|
-
var _this = this;
|
|
37
|
-
|
|
38
|
-
this.cache.order.forEach(function (key) {
|
|
39
|
-
var tile = _this.cache.get(key);
|
|
40
|
-
|
|
41
|
-
tile.needUpdate = true;
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
}]);
|
|
45
|
-
|
|
46
|
-
return TileCache;
|
|
47
|
-
}();
|
|
48
|
-
|
|
49
|
-
export { TileCache as default };
|
|
50
|
-
//# sourceMappingURL=tileCache.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/imagetile/utils/tileCache.ts"],"names":["LRUCache","TileCache","limit","tileDestroy","cache","key","get","tile","set","clear","order","forEach","needUpdate"],"mappings":";;;AAAA,OAAOA,QAAP,MAAqB,YAArB;;IACqBC,S;AAEnB,uBAA0C;AAAA,QAA9BC,KAA8B,uEAAtB,EAAsB;AAAA,QAAlBC,WAAkB;;AAAA;;AAAA;;AACxC,SAAKC,KAAL,GAAa,IAAIJ,QAAJ,CAAaE,KAAb,EAAoBC,WAApB,CAAb;AACD;;;;WAED,iBAAeE,GAAf,EAA4B;AAC1B,aAAO,KAAKD,KAAL,CAAWE,GAAX,CAAeD,GAAf,CAAP;AACD;;;WAED,iBAAeE,IAAf,EAA0BF,GAA1B,EAAuC;AACrC,WAAKD,KAAL,CAAWI,GAAX,CAAeH,GAAf,EAAoBE,IAApB;AACD;;;WACD,mBAAiB;AACf,WAAKH,KAAL,CAAWK,KAAX;AACD;;;WACD,yBAAuB;AAAA;;AACrB,WAAKL,KAAL,CAAWM,KAAX,CAAiBC,OAAjB,CAAyB,UAACN,GAAD,EAAiB;AACxC,YAAME,IAAI,GAAG,KAAI,CAACH,KAAL,CAAWE,GAAX,CAAeD,GAAf,CAAb;;AACAE,QAAAA,IAAI,CAACK,UAAL,GAAkB,IAAlB;AACD,OAHD;AAID;;;;;;SArBkBX,S","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/imagetile/index.js
DELETED
|
@@ -1,95 +0,0 @@
|
|
|
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 _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
15
|
-
|
|
16
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
-
|
|
18
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
-
|
|
20
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
|
-
|
|
22
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
23
|
-
|
|
24
|
-
var _LayerGroup2 = _interopRequireDefault(require("../core/LayerGroup"));
|
|
25
|
-
|
|
26
|
-
var _index = _interopRequireDefault(require("./models/index"));
|
|
27
|
-
|
|
28
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
29
|
-
|
|
30
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
31
|
-
|
|
32
|
-
var ImageTileLayer = function (_LayerGroup) {
|
|
33
|
-
(0, _inherits2.default)(ImageTileLayer, _LayerGroup);
|
|
34
|
-
|
|
35
|
-
var _super = _createSuper(ImageTileLayer);
|
|
36
|
-
|
|
37
|
-
function ImageTileLayer() {
|
|
38
|
-
var _this;
|
|
39
|
-
|
|
40
|
-
(0, _classCallCheck2.default)(this, ImageTileLayer);
|
|
41
|
-
|
|
42
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
43
|
-
args[_key] = arguments[_key];
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
_this = _super.call.apply(_super, [this].concat(args));
|
|
47
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "type", 'ImageTileLayer');
|
|
48
|
-
return _this;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
(0, _createClass2.default)(ImageTileLayer, [{
|
|
52
|
-
key: "buildModels",
|
|
53
|
-
value: function buildModels() {
|
|
54
|
-
var modelType = this.getModelType();
|
|
55
|
-
this.layerModel = new _index.default[modelType](this);
|
|
56
|
-
this.models = this.layerModel.initModels();
|
|
57
|
-
}
|
|
58
|
-
}, {
|
|
59
|
-
key: "rebuildModels",
|
|
60
|
-
value: function rebuildModels() {
|
|
61
|
-
this.models = this.layerModel.buildModels();
|
|
62
|
-
}
|
|
63
|
-
}, {
|
|
64
|
-
key: "getConfigSchema",
|
|
65
|
-
value: function getConfigSchema() {
|
|
66
|
-
return {
|
|
67
|
-
properties: {
|
|
68
|
-
opacity: {
|
|
69
|
-
type: 'number',
|
|
70
|
-
minimum: 0,
|
|
71
|
-
maximum: 1
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
}, {
|
|
77
|
-
key: "getDefaultConfig",
|
|
78
|
-
value: function getDefaultConfig() {
|
|
79
|
-
var type = this.getModelType();
|
|
80
|
-
var defaultConfig = {
|
|
81
|
-
imageTile: {}
|
|
82
|
-
};
|
|
83
|
-
return defaultConfig[type];
|
|
84
|
-
}
|
|
85
|
-
}, {
|
|
86
|
-
key: "getModelType",
|
|
87
|
-
value: function getModelType() {
|
|
88
|
-
return 'imageTile';
|
|
89
|
-
}
|
|
90
|
-
}]);
|
|
91
|
-
return ImageTileLayer;
|
|
92
|
-
}(_LayerGroup2.default);
|
|
93
|
-
|
|
94
|
-
exports.default = ImageTileLayer;
|
|
95
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/imagetile/index.ts"],"names":["ImageTileLayer","modelType","getModelType","layerModel","ImageTileModels","models","initModels","buildModels","properties","opacity","type","minimum","maximum","defaultConfig","imageTile","LayerGroup"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;IAIqBA,c;;;;;;;;;;;;;;;uFAGG,gB;;;;;;WACtB,uBAAqB;AACnB,UAAMC,SAAS,GAAG,KAAKC,YAAL,EAAlB;AACA,WAAKC,UAAL,GAAkB,IAAIC,eAAgBH,SAAhB,CAAJ,CAA+B,IAA/B,CAAlB;AACA,WAAKI,MAAL,GAAc,KAAKF,UAAL,CAAgBG,UAAhB,EAAd;AACD;;;WACD,yBAAuB;AACrB,WAAKD,MAAL,GAAc,KAAKF,UAAL,CAAgBI,WAAhB,EAAd;AACD;;;WACD,2BAA4B;AAC1B,aAAO;AACLC,QAAAA,UAAU,EAAE;AACVC,UAAAA,OAAO,EAAE;AACPC,YAAAA,IAAI,EAAE,QADC;AAEPC,YAAAA,OAAO,EAAE,CAFF;AAGPC,YAAAA,OAAO,EAAE;AAHF;AADC;AADP,OAAP;AASD;;;WACD,4BAA6B;AAC3B,UAAMF,IAAI,GAAG,KAAKR,YAAL,EAAb;AACA,UAAMW,aAAa,GAAG;AACpBC,QAAAA,SAAS,EAAE;AADS,OAAtB;AAGA,aAAOD,aAAa,CAACH,IAAD,CAApB;AACD;;;WAED,wBAA6C;AAC3C,aAAO,WAAP;AACD;;;EAjCyCK,oB","sourcesContent":["import LayerGroup from '../core/LayerGroup';\nimport ImageTileModels, { ImageTileModelType } from './models/index';\ninterface IImageLayerStyleOptions {\n opacity: number;\n}\nexport default class ImageTileLayer extends LayerGroup<\n IImageLayerStyleOptions\n> {\n public type: string = 'ImageTileLayer';\n public buildModels() {\n const modelType = this.getModelType();\n this.layerModel = new ImageTileModels[modelType](this);\n this.models = this.layerModel.initModels();\n }\n public rebuildModels() {\n this.models = this.layerModel.buildModels();\n }\n protected getConfigSchema() {\n return {\n properties: {\n opacity: {\n type: 'number',\n minimum: 0,\n maximum: 1,\n },\n },\n };\n }\n protected getDefaultConfig() {\n const type = this.getModelType();\n const defaultConfig = {\n imageTile: {},\n };\n return defaultConfig[type];\n }\n\n protected getModelType(): ImageTileModelType {\n return 'imageTile';\n }\n}\n"],"file":"index.js"}
|