geojs 1.10.1 → 1.10.4
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/CHANGELOG.md +18 -0
- package/geo.js +124 -9
- package/geo.lean.js +124 -9
- package/geo.lean.min.js +2 -2
- package/geo.min.js +6 -6
- package/package.json +3 -3
- package/src/canvas/quadFeature.js +9 -0
- package/src/canvas/tileLayer.js +3 -0
- package/src/map.js +3 -0
- package/src/pixelmapLayer.js +1 -0
- package/src/quadFeature.js +24 -0
- package/src/tileLayer.js +30 -0
- package/src/webgl/pixelmapFeature.js +5 -6
- package/src/webgl/quadFeature.js +25 -0
- package/src/webgl/tileLayer.js +3 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# GeoJS Change Log
|
|
2
2
|
|
|
3
|
+
## Version 1.10.3
|
|
4
|
+
|
|
5
|
+
### Performance improvements
|
|
6
|
+
|
|
7
|
+
- Reduce the time it takes to switch texture interpolation ([#1230](../../pull/1230))
|
|
8
|
+
|
|
9
|
+
## Version 1.10.2
|
|
10
|
+
|
|
11
|
+
### Improvements
|
|
12
|
+
|
|
13
|
+
- Directly support nearest pixel or bicubic on quad interpolation ([#1229](../../pull/1229))
|
|
14
|
+
|
|
15
|
+
## Version 1.10.1
|
|
16
|
+
|
|
17
|
+
### Improvements
|
|
18
|
+
|
|
19
|
+
- Make clamping at the end of a map transition optional ([#1226](../../pull/1226))
|
|
20
|
+
|
|
3
21
|
## Version 1.10.0
|
|
4
22
|
|
|
5
23
|
### Features
|
package/geo.js
CHANGED
|
@@ -8017,6 +8017,17 @@ var canvas_quadFeature = function canvas_quadFeature(arg) {
|
|
|
8017
8017
|
|
|
8018
8018
|
var oldAlpha = context2d.globalAlpha;
|
|
8019
8019
|
var opacity = oldAlpha;
|
|
8020
|
+
var nearestPixel = m_this.nearestPixel();
|
|
8021
|
+
|
|
8022
|
+
if (nearestPixel !== undefined) {
|
|
8023
|
+
if (nearestPixel !== true && util.isNonNullFinite(nearestPixel)) {
|
|
8024
|
+
var curZoom = m_this.layer().map().zoom();
|
|
8025
|
+
nearestPixel = curZoom >= nearestPixel;
|
|
8026
|
+
}
|
|
8027
|
+
|
|
8028
|
+
context2d.imageSmoothingEnabled = !nearestPixel;
|
|
8029
|
+
}
|
|
8030
|
+
|
|
8020
8031
|
$.each([m_quads.imgQuads, m_quads.vidQuads], function (listidx, quadlist) {
|
|
8021
8032
|
if (!quadlist) {
|
|
8022
8033
|
return;
|
|
@@ -8086,6 +8097,7 @@ var canvas_quadFeature = function canvas_quadFeature(arg) {
|
|
|
8086
8097
|
}
|
|
8087
8098
|
|
|
8088
8099
|
context2d.setTransform(1, 0, 0, 1, 0, 0);
|
|
8100
|
+
context2d.imageSmoothingEnabled = true;
|
|
8089
8101
|
};
|
|
8090
8102
|
/**
|
|
8091
8103
|
* If this returns true, the render will be skipped and tried again on the
|
|
@@ -8544,6 +8556,10 @@ var canvas_tileLayer = function canvas_tileLayer() {
|
|
|
8544
8556
|
this._update = function (request) {
|
|
8545
8557
|
s_update.call(m_this, request);
|
|
8546
8558
|
|
|
8559
|
+
if (m_quadFeature && m_quadFeature.nearestPixel) {
|
|
8560
|
+
m_quadFeature.nearestPixel(m_this.nearestPixel());
|
|
8561
|
+
}
|
|
8562
|
+
|
|
8547
8563
|
m_this._addBaseQuadToTiles(m_quadFeature, m_tiles);
|
|
8548
8564
|
|
|
8549
8565
|
return m_this;
|
|
@@ -18628,6 +18644,10 @@ var map = function map(arg) {
|
|
|
18628
18644
|
m_autoshareRenderer = arg === null ? undefined : arg;
|
|
18629
18645
|
return m_this;
|
|
18630
18646
|
};
|
|
18647
|
+
/* Report the current version on the map object. */
|
|
18648
|
+
|
|
18649
|
+
|
|
18650
|
+
this._version = __webpack_require__(2978);
|
|
18631
18651
|
/**
|
|
18632
18652
|
* Draw a layer image to a canvas context. The layer's opacity and transform
|
|
18633
18653
|
* are applied. This is used as part of making a screenshot.
|
|
@@ -18641,7 +18661,6 @@ var map = function map(arg) {
|
|
|
18641
18661
|
* @private
|
|
18642
18662
|
*/
|
|
18643
18663
|
|
|
18644
|
-
|
|
18645
18664
|
function drawLayerImageToContext(context, opacity, elem, img, mixBlendMode) {
|
|
18646
18665
|
context.globalAlpha = opacity;
|
|
18647
18666
|
|
|
@@ -24200,6 +24219,7 @@ var pixelmapLayer = function pixelmapLayer(arg) {
|
|
|
24200
24219
|
this._init = function () {
|
|
24201
24220
|
// Call super class init
|
|
24202
24221
|
s_init.apply(m_this, arguments);
|
|
24222
|
+
m_this.nearestPixel(true, true);
|
|
24203
24223
|
var pixelmapArgs = {
|
|
24204
24224
|
quadFeature: m_this.features()[0]
|
|
24205
24225
|
};
|
|
@@ -26010,6 +26030,10 @@ var feature = __webpack_require__(6837);
|
|
|
26010
26030
|
* call `cacheUpdate` on the data item or for all data.
|
|
26011
26031
|
* @property {geo.quadFeature.styleSpec} [style] Style object with default
|
|
26012
26032
|
* style options.
|
|
26033
|
+
* @property {boolean|number} [nearestPixel] If true, image quads are
|
|
26034
|
+
* rendered with near-neighbor sampling. If false, with interpolated
|
|
26035
|
+
* sampling. If a number, interpolate at that zoom level or below and
|
|
26036
|
+
* nearest neighbor at that zoom level or above.
|
|
26013
26037
|
*/
|
|
26014
26038
|
|
|
26015
26039
|
/**
|
|
@@ -26073,6 +26097,7 @@ var quadFeature = function quadFeature(arg) {
|
|
|
26073
26097
|
var m_this = this,
|
|
26074
26098
|
s_init = this._init,
|
|
26075
26099
|
m_cacheQuads,
|
|
26100
|
+
m_nearestPixel = arg.nearestPixel,
|
|
26076
26101
|
m_nextQuadId = 0,
|
|
26077
26102
|
m_images = [],
|
|
26078
26103
|
m_videos = [],
|
|
@@ -26755,6 +26780,27 @@ var quadFeature = function quadFeature(arg) {
|
|
|
26755
26780
|
|
|
26756
26781
|
return null;
|
|
26757
26782
|
};
|
|
26783
|
+
/**
|
|
26784
|
+
* Get/Set nearestPixel value.
|
|
26785
|
+
*
|
|
26786
|
+
* @param {boolean|number} [val] If not specified, return the current value.
|
|
26787
|
+
* If true, image quads are rendered with near-neighbor sampling. If
|
|
26788
|
+
* false, with interpolated sampling. If a number, interpolate at that
|
|
26789
|
+
* zoom level or below and nearest neighbor at that zoom level or above.
|
|
26790
|
+
* @returns {boolean|number|this}
|
|
26791
|
+
*/
|
|
26792
|
+
|
|
26793
|
+
|
|
26794
|
+
this.nearestPixel = function (val) {
|
|
26795
|
+
if (val === undefined) {
|
|
26796
|
+
return m_nearestPixel;
|
|
26797
|
+
} else {
|
|
26798
|
+
m_nearestPixel = val;
|
|
26799
|
+
m_this.modified();
|
|
26800
|
+
}
|
|
26801
|
+
|
|
26802
|
+
return m_this;
|
|
26803
|
+
};
|
|
26758
26804
|
/**
|
|
26759
26805
|
* Initialize.
|
|
26760
26806
|
*
|
|
@@ -27823,7 +27869,7 @@ module.exports = sceneObject;
|
|
|
27823
27869
|
* @constant
|
|
27824
27870
|
* @type {string}
|
|
27825
27871
|
*/
|
|
27826
|
-
module.exports = "
|
|
27872
|
+
module.exports = "3e924c64da3ad1b47324b2d5106e85db1bf1d809";
|
|
27827
27873
|
|
|
27828
27874
|
/***/ }),
|
|
27829
27875
|
|
|
@@ -30731,6 +30777,10 @@ var featureLayer = __webpack_require__(3715);
|
|
|
30731
30777
|
* any tile layers. If specified, this uses the quad defaults, so this is a
|
|
30732
30778
|
* ``geo.quadFeature.position`` object with, typically, an ``image`` property
|
|
30733
30779
|
* added to it. The quad positions are in the map gcs coordinates.
|
|
30780
|
+
* @property {boolean|number} [nearestPixel] If true, image quads are
|
|
30781
|
+
* rendered with near-neighbor sampling. If false, with interpolated
|
|
30782
|
+
* sampling. If a number, interpolate at that zoom level or below and
|
|
30783
|
+
* nearest neighbor at that zoom level or above.
|
|
30734
30784
|
*/
|
|
30735
30785
|
|
|
30736
30786
|
/**
|
|
@@ -30894,6 +30944,7 @@ var tileLayer = function tileLayer(arg) {
|
|
|
30894
30944
|
m_reference,
|
|
30895
30945
|
m_exited,
|
|
30896
30946
|
m_lastBaseQuad,
|
|
30947
|
+
m_nearestPixel = arg.nearestPixel,
|
|
30897
30948
|
m_this = this; // copy the options into a private variable
|
|
30898
30949
|
|
|
30899
30950
|
this._options = $.extend(true, {}, arg); // set the layer attribution text
|
|
@@ -32535,6 +32586,36 @@ var tileLayer = function tileLayer(arg) {
|
|
|
32535
32586
|
|
|
32536
32587
|
return m_this;
|
|
32537
32588
|
};
|
|
32589
|
+
/**
|
|
32590
|
+
* Get/Set nearestPixel value.
|
|
32591
|
+
*
|
|
32592
|
+
* @param {boolean|number} [val] If not specified, return the current value.
|
|
32593
|
+
* If true, image quads are rendered with near-neighbor sampling. If
|
|
32594
|
+
* false, with interpolated sampling. If a number, interpolate at that
|
|
32595
|
+
* zoom level or below and nearest neighbor at that zoom level or above.
|
|
32596
|
+
* @param {boolean} [skipUpdate] If specifying val and this value is truthy,
|
|
32597
|
+
* don't update the layer or mark it as modified.
|
|
32598
|
+
* @returns {boolean|number|this}
|
|
32599
|
+
*/
|
|
32600
|
+
|
|
32601
|
+
|
|
32602
|
+
this.nearestPixel = function (val, skipUpdate) {
|
|
32603
|
+
if (val === undefined) {
|
|
32604
|
+
return m_nearestPixel;
|
|
32605
|
+
}
|
|
32606
|
+
|
|
32607
|
+
if (m_nearestPixel !== val) {
|
|
32608
|
+
m_nearestPixel = val;
|
|
32609
|
+
|
|
32610
|
+
if (!skipUpdate) {
|
|
32611
|
+
m_this.modified();
|
|
32612
|
+
|
|
32613
|
+
m_this._update();
|
|
32614
|
+
}
|
|
32615
|
+
}
|
|
32616
|
+
|
|
32617
|
+
return m_this;
|
|
32618
|
+
};
|
|
32538
32619
|
/**
|
|
32539
32620
|
* Get/set the baseQuad.
|
|
32540
32621
|
*
|
|
@@ -40948,7 +41029,7 @@ module.exports = vectorFeature;
|
|
|
40948
41029
|
* @constant
|
|
40949
41030
|
* @type {string}
|
|
40950
41031
|
*/
|
|
40951
|
-
module.exports = "1.10.
|
|
41032
|
+
module.exports = "1.10.4";
|
|
40952
41033
|
|
|
40953
41034
|
/***/ }),
|
|
40954
41035
|
|
|
@@ -43942,7 +44023,8 @@ var webgl_pixelmapFeature = function webgl_pixelmapFeature(arg) {
|
|
|
43942
44023
|
m_quadFeature = m_this.layer().createFeature('quad', {
|
|
43943
44024
|
selectionAPI: false,
|
|
43944
44025
|
gcs: m_this.gcs(),
|
|
43945
|
-
visible: m_this.visible(undefined, true)
|
|
44026
|
+
visible: m_this.visible(undefined, true),
|
|
44027
|
+
nearestPixel: true
|
|
43946
44028
|
});
|
|
43947
44029
|
m_quadFeatureInit = false;
|
|
43948
44030
|
}
|
|
@@ -43964,11 +44046,6 @@ var webgl_pixelmapFeature = function webgl_pixelmapFeature(arg) {
|
|
|
43964
44046
|
};
|
|
43965
44047
|
|
|
43966
44048
|
m_quadFeature._hookRenderImageQuads = function (renderState, quads) {
|
|
43967
|
-
quads.forEach(function (quad) {
|
|
43968
|
-
if (quad.image && quad.texture && !quad.texture.nearestPixel()) {
|
|
43969
|
-
quad.texture.setNearestPixel(true);
|
|
43970
|
-
}
|
|
43971
|
-
});
|
|
43972
44049
|
m_lookupTable.bind(renderState, quads);
|
|
43973
44050
|
};
|
|
43974
44051
|
|
|
@@ -44002,6 +44079,10 @@ var webgl_pixelmapFeature = function webgl_pixelmapFeature(arg) {
|
|
|
44002
44079
|
|
|
44003
44080
|
if (arg.quadFeature) {
|
|
44004
44081
|
m_quadFeature = arg.quadFeature;
|
|
44082
|
+
|
|
44083
|
+
if (m_quadFeature.nearestPixel) {
|
|
44084
|
+
m_quadFeature.nearestPixel(true);
|
|
44085
|
+
}
|
|
44005
44086
|
}
|
|
44006
44087
|
|
|
44007
44088
|
this._init(arg);
|
|
@@ -45204,6 +45285,8 @@ var quadFeature = __webpack_require__(5017);
|
|
|
45204
45285
|
|
|
45205
45286
|
var timestamp = __webpack_require__(6618);
|
|
45206
45287
|
|
|
45288
|
+
var util = __webpack_require__(4634);
|
|
45289
|
+
|
|
45207
45290
|
var _memoryCheckLargestTested = 4096 * 4096;
|
|
45208
45291
|
/**
|
|
45209
45292
|
* Create a new instance of class quadFeature.
|
|
@@ -45608,6 +45691,34 @@ var webgl_quadFeature = function webgl_quadFeature(arg) {
|
|
|
45608
45691
|
h,
|
|
45609
45692
|
quadw,
|
|
45610
45693
|
quadh;
|
|
45694
|
+
var nearestPixel = m_this.nearestPixel();
|
|
45695
|
+
|
|
45696
|
+
if (nearestPixel !== undefined) {
|
|
45697
|
+
if (nearestPixel !== true && util.isNonNullFinite(nearestPixel)) {
|
|
45698
|
+
var curZoom = m_this.layer().map().zoom();
|
|
45699
|
+
nearestPixel = curZoom >= nearestPixel;
|
|
45700
|
+
}
|
|
45701
|
+
|
|
45702
|
+
m_quads.imgQuads.forEach(function (quad) {
|
|
45703
|
+
if (quad.image && quad.texture && quad.texture.nearestPixel() !== nearestPixel) {
|
|
45704
|
+
/* This could just be
|
|
45705
|
+
* quad.texture.setNearestPixel(nearestPixel);
|
|
45706
|
+
* but that needlessly redecodes the image. Instead, just change the
|
|
45707
|
+
* the interpolation flags, then change the nearestPixel value
|
|
45708
|
+
* without triggering a complete re-setup. */
|
|
45709
|
+
renderState.m_context.bindTexture(vgl.GL.TEXTURE_2D, quad.texture.textureHandle());
|
|
45710
|
+
renderState.m_context.texParameteri(vgl.GL.TEXTURE_2D, vgl.GL.TEXTURE_MIN_FILTER, nearestPixel ? vgl.GL.NEAREST : vgl.GL.LINEAR);
|
|
45711
|
+
renderState.m_context.texParameteri(vgl.GL.TEXTURE_2D, vgl.GL.TEXTURE_MAG_FILTER, nearestPixel ? vgl.GL.NEAREST : vgl.GL.LINEAR);
|
|
45712
|
+
renderState.m_context.bindTexture(vgl.GL.TEXTURE_2D, null);
|
|
45713
|
+
var oldmod = quad.texture.modified;
|
|
45714
|
+
|
|
45715
|
+
quad.texture.modified = function () {};
|
|
45716
|
+
|
|
45717
|
+
quad.texture.setNearestPixel(nearestPixel);
|
|
45718
|
+
quad.texture.modified = oldmod;
|
|
45719
|
+
}
|
|
45720
|
+
});
|
|
45721
|
+
}
|
|
45611
45722
|
|
|
45612
45723
|
if (m_this._hookRenderImageQuads) {
|
|
45613
45724
|
m_this._hookRenderImageQuads(renderState, m_quads.imgQuads);
|
|
@@ -46002,6 +46113,10 @@ var webgl_tileLayer = function webgl_tileLayer() {
|
|
|
46002
46113
|
this._update = function (request) {
|
|
46003
46114
|
s_update.call(m_this, request);
|
|
46004
46115
|
|
|
46116
|
+
if (m_quadFeature && m_quadFeature.nearestPixel) {
|
|
46117
|
+
m_quadFeature.nearestPixel(m_this.nearestPixel());
|
|
46118
|
+
}
|
|
46119
|
+
|
|
46005
46120
|
m_this._addBaseQuadToTiles(m_quadFeature, m_tiles);
|
|
46006
46121
|
|
|
46007
46122
|
return m_this;
|
package/geo.lean.js
CHANGED
|
@@ -8017,6 +8017,17 @@ var canvas_quadFeature = function canvas_quadFeature(arg) {
|
|
|
8017
8017
|
|
|
8018
8018
|
var oldAlpha = context2d.globalAlpha;
|
|
8019
8019
|
var opacity = oldAlpha;
|
|
8020
|
+
var nearestPixel = m_this.nearestPixel();
|
|
8021
|
+
|
|
8022
|
+
if (nearestPixel !== undefined) {
|
|
8023
|
+
if (nearestPixel !== true && util.isNonNullFinite(nearestPixel)) {
|
|
8024
|
+
var curZoom = m_this.layer().map().zoom();
|
|
8025
|
+
nearestPixel = curZoom >= nearestPixel;
|
|
8026
|
+
}
|
|
8027
|
+
|
|
8028
|
+
context2d.imageSmoothingEnabled = !nearestPixel;
|
|
8029
|
+
}
|
|
8030
|
+
|
|
8020
8031
|
$.each([m_quads.imgQuads, m_quads.vidQuads], function (listidx, quadlist) {
|
|
8021
8032
|
if (!quadlist) {
|
|
8022
8033
|
return;
|
|
@@ -8086,6 +8097,7 @@ var canvas_quadFeature = function canvas_quadFeature(arg) {
|
|
|
8086
8097
|
}
|
|
8087
8098
|
|
|
8088
8099
|
context2d.setTransform(1, 0, 0, 1, 0, 0);
|
|
8100
|
+
context2d.imageSmoothingEnabled = true;
|
|
8089
8101
|
};
|
|
8090
8102
|
/**
|
|
8091
8103
|
* If this returns true, the render will be skipped and tried again on the
|
|
@@ -8544,6 +8556,10 @@ var canvas_tileLayer = function canvas_tileLayer() {
|
|
|
8544
8556
|
this._update = function (request) {
|
|
8545
8557
|
s_update.call(m_this, request);
|
|
8546
8558
|
|
|
8559
|
+
if (m_quadFeature && m_quadFeature.nearestPixel) {
|
|
8560
|
+
m_quadFeature.nearestPixel(m_this.nearestPixel());
|
|
8561
|
+
}
|
|
8562
|
+
|
|
8547
8563
|
m_this._addBaseQuadToTiles(m_quadFeature, m_tiles);
|
|
8548
8564
|
|
|
8549
8565
|
return m_this;
|
|
@@ -18628,6 +18644,10 @@ var map = function map(arg) {
|
|
|
18628
18644
|
m_autoshareRenderer = arg === null ? undefined : arg;
|
|
18629
18645
|
return m_this;
|
|
18630
18646
|
};
|
|
18647
|
+
/* Report the current version on the map object. */
|
|
18648
|
+
|
|
18649
|
+
|
|
18650
|
+
this._version = __webpack_require__(2978);
|
|
18631
18651
|
/**
|
|
18632
18652
|
* Draw a layer image to a canvas context. The layer's opacity and transform
|
|
18633
18653
|
* are applied. This is used as part of making a screenshot.
|
|
@@ -18641,7 +18661,6 @@ var map = function map(arg) {
|
|
|
18641
18661
|
* @private
|
|
18642
18662
|
*/
|
|
18643
18663
|
|
|
18644
|
-
|
|
18645
18664
|
function drawLayerImageToContext(context, opacity, elem, img, mixBlendMode) {
|
|
18646
18665
|
context.globalAlpha = opacity;
|
|
18647
18666
|
|
|
@@ -24200,6 +24219,7 @@ var pixelmapLayer = function pixelmapLayer(arg) {
|
|
|
24200
24219
|
this._init = function () {
|
|
24201
24220
|
// Call super class init
|
|
24202
24221
|
s_init.apply(m_this, arguments);
|
|
24222
|
+
m_this.nearestPixel(true, true);
|
|
24203
24223
|
var pixelmapArgs = {
|
|
24204
24224
|
quadFeature: m_this.features()[0]
|
|
24205
24225
|
};
|
|
@@ -26010,6 +26030,10 @@ var feature = __webpack_require__(6837);
|
|
|
26010
26030
|
* call `cacheUpdate` on the data item or for all data.
|
|
26011
26031
|
* @property {geo.quadFeature.styleSpec} [style] Style object with default
|
|
26012
26032
|
* style options.
|
|
26033
|
+
* @property {boolean|number} [nearestPixel] If true, image quads are
|
|
26034
|
+
* rendered with near-neighbor sampling. If false, with interpolated
|
|
26035
|
+
* sampling. If a number, interpolate at that zoom level or below and
|
|
26036
|
+
* nearest neighbor at that zoom level or above.
|
|
26013
26037
|
*/
|
|
26014
26038
|
|
|
26015
26039
|
/**
|
|
@@ -26073,6 +26097,7 @@ var quadFeature = function quadFeature(arg) {
|
|
|
26073
26097
|
var m_this = this,
|
|
26074
26098
|
s_init = this._init,
|
|
26075
26099
|
m_cacheQuads,
|
|
26100
|
+
m_nearestPixel = arg.nearestPixel,
|
|
26076
26101
|
m_nextQuadId = 0,
|
|
26077
26102
|
m_images = [],
|
|
26078
26103
|
m_videos = [],
|
|
@@ -26755,6 +26780,27 @@ var quadFeature = function quadFeature(arg) {
|
|
|
26755
26780
|
|
|
26756
26781
|
return null;
|
|
26757
26782
|
};
|
|
26783
|
+
/**
|
|
26784
|
+
* Get/Set nearestPixel value.
|
|
26785
|
+
*
|
|
26786
|
+
* @param {boolean|number} [val] If not specified, return the current value.
|
|
26787
|
+
* If true, image quads are rendered with near-neighbor sampling. If
|
|
26788
|
+
* false, with interpolated sampling. If a number, interpolate at that
|
|
26789
|
+
* zoom level or below and nearest neighbor at that zoom level or above.
|
|
26790
|
+
* @returns {boolean|number|this}
|
|
26791
|
+
*/
|
|
26792
|
+
|
|
26793
|
+
|
|
26794
|
+
this.nearestPixel = function (val) {
|
|
26795
|
+
if (val === undefined) {
|
|
26796
|
+
return m_nearestPixel;
|
|
26797
|
+
} else {
|
|
26798
|
+
m_nearestPixel = val;
|
|
26799
|
+
m_this.modified();
|
|
26800
|
+
}
|
|
26801
|
+
|
|
26802
|
+
return m_this;
|
|
26803
|
+
};
|
|
26758
26804
|
/**
|
|
26759
26805
|
* Initialize.
|
|
26760
26806
|
*
|
|
@@ -27823,7 +27869,7 @@ module.exports = sceneObject;
|
|
|
27823
27869
|
* @constant
|
|
27824
27870
|
* @type {string}
|
|
27825
27871
|
*/
|
|
27826
|
-
module.exports = "
|
|
27872
|
+
module.exports = "3e924c64da3ad1b47324b2d5106e85db1bf1d809";
|
|
27827
27873
|
|
|
27828
27874
|
/***/ }),
|
|
27829
27875
|
|
|
@@ -30731,6 +30777,10 @@ var featureLayer = __webpack_require__(3715);
|
|
|
30731
30777
|
* any tile layers. If specified, this uses the quad defaults, so this is a
|
|
30732
30778
|
* ``geo.quadFeature.position`` object with, typically, an ``image`` property
|
|
30733
30779
|
* added to it. The quad positions are in the map gcs coordinates.
|
|
30780
|
+
* @property {boolean|number} [nearestPixel] If true, image quads are
|
|
30781
|
+
* rendered with near-neighbor sampling. If false, with interpolated
|
|
30782
|
+
* sampling. If a number, interpolate at that zoom level or below and
|
|
30783
|
+
* nearest neighbor at that zoom level or above.
|
|
30734
30784
|
*/
|
|
30735
30785
|
|
|
30736
30786
|
/**
|
|
@@ -30894,6 +30944,7 @@ var tileLayer = function tileLayer(arg) {
|
|
|
30894
30944
|
m_reference,
|
|
30895
30945
|
m_exited,
|
|
30896
30946
|
m_lastBaseQuad,
|
|
30947
|
+
m_nearestPixel = arg.nearestPixel,
|
|
30897
30948
|
m_this = this; // copy the options into a private variable
|
|
30898
30949
|
|
|
30899
30950
|
this._options = $.extend(true, {}, arg); // set the layer attribution text
|
|
@@ -32535,6 +32586,36 @@ var tileLayer = function tileLayer(arg) {
|
|
|
32535
32586
|
|
|
32536
32587
|
return m_this;
|
|
32537
32588
|
};
|
|
32589
|
+
/**
|
|
32590
|
+
* Get/Set nearestPixel value.
|
|
32591
|
+
*
|
|
32592
|
+
* @param {boolean|number} [val] If not specified, return the current value.
|
|
32593
|
+
* If true, image quads are rendered with near-neighbor sampling. If
|
|
32594
|
+
* false, with interpolated sampling. If a number, interpolate at that
|
|
32595
|
+
* zoom level or below and nearest neighbor at that zoom level or above.
|
|
32596
|
+
* @param {boolean} [skipUpdate] If specifying val and this value is truthy,
|
|
32597
|
+
* don't update the layer or mark it as modified.
|
|
32598
|
+
* @returns {boolean|number|this}
|
|
32599
|
+
*/
|
|
32600
|
+
|
|
32601
|
+
|
|
32602
|
+
this.nearestPixel = function (val, skipUpdate) {
|
|
32603
|
+
if (val === undefined) {
|
|
32604
|
+
return m_nearestPixel;
|
|
32605
|
+
}
|
|
32606
|
+
|
|
32607
|
+
if (m_nearestPixel !== val) {
|
|
32608
|
+
m_nearestPixel = val;
|
|
32609
|
+
|
|
32610
|
+
if (!skipUpdate) {
|
|
32611
|
+
m_this.modified();
|
|
32612
|
+
|
|
32613
|
+
m_this._update();
|
|
32614
|
+
}
|
|
32615
|
+
}
|
|
32616
|
+
|
|
32617
|
+
return m_this;
|
|
32618
|
+
};
|
|
32538
32619
|
/**
|
|
32539
32620
|
* Get/set the baseQuad.
|
|
32540
32621
|
*
|
|
@@ -40948,7 +41029,7 @@ module.exports = vectorFeature;
|
|
|
40948
41029
|
* @constant
|
|
40949
41030
|
* @type {string}
|
|
40950
41031
|
*/
|
|
40951
|
-
module.exports = "1.10.
|
|
41032
|
+
module.exports = "1.10.4";
|
|
40952
41033
|
|
|
40953
41034
|
/***/ }),
|
|
40954
41035
|
|
|
@@ -43942,7 +44023,8 @@ var webgl_pixelmapFeature = function webgl_pixelmapFeature(arg) {
|
|
|
43942
44023
|
m_quadFeature = m_this.layer().createFeature('quad', {
|
|
43943
44024
|
selectionAPI: false,
|
|
43944
44025
|
gcs: m_this.gcs(),
|
|
43945
|
-
visible: m_this.visible(undefined, true)
|
|
44026
|
+
visible: m_this.visible(undefined, true),
|
|
44027
|
+
nearestPixel: true
|
|
43946
44028
|
});
|
|
43947
44029
|
m_quadFeatureInit = false;
|
|
43948
44030
|
}
|
|
@@ -43964,11 +44046,6 @@ var webgl_pixelmapFeature = function webgl_pixelmapFeature(arg) {
|
|
|
43964
44046
|
};
|
|
43965
44047
|
|
|
43966
44048
|
m_quadFeature._hookRenderImageQuads = function (renderState, quads) {
|
|
43967
|
-
quads.forEach(function (quad) {
|
|
43968
|
-
if (quad.image && quad.texture && !quad.texture.nearestPixel()) {
|
|
43969
|
-
quad.texture.setNearestPixel(true);
|
|
43970
|
-
}
|
|
43971
|
-
});
|
|
43972
44049
|
m_lookupTable.bind(renderState, quads);
|
|
43973
44050
|
};
|
|
43974
44051
|
|
|
@@ -44002,6 +44079,10 @@ var webgl_pixelmapFeature = function webgl_pixelmapFeature(arg) {
|
|
|
44002
44079
|
|
|
44003
44080
|
if (arg.quadFeature) {
|
|
44004
44081
|
m_quadFeature = arg.quadFeature;
|
|
44082
|
+
|
|
44083
|
+
if (m_quadFeature.nearestPixel) {
|
|
44084
|
+
m_quadFeature.nearestPixel(true);
|
|
44085
|
+
}
|
|
44005
44086
|
}
|
|
44006
44087
|
|
|
44007
44088
|
this._init(arg);
|
|
@@ -45204,6 +45285,8 @@ var quadFeature = __webpack_require__(5017);
|
|
|
45204
45285
|
|
|
45205
45286
|
var timestamp = __webpack_require__(6618);
|
|
45206
45287
|
|
|
45288
|
+
var util = __webpack_require__(4634);
|
|
45289
|
+
|
|
45207
45290
|
var _memoryCheckLargestTested = 4096 * 4096;
|
|
45208
45291
|
/**
|
|
45209
45292
|
* Create a new instance of class quadFeature.
|
|
@@ -45608,6 +45691,34 @@ var webgl_quadFeature = function webgl_quadFeature(arg) {
|
|
|
45608
45691
|
h,
|
|
45609
45692
|
quadw,
|
|
45610
45693
|
quadh;
|
|
45694
|
+
var nearestPixel = m_this.nearestPixel();
|
|
45695
|
+
|
|
45696
|
+
if (nearestPixel !== undefined) {
|
|
45697
|
+
if (nearestPixel !== true && util.isNonNullFinite(nearestPixel)) {
|
|
45698
|
+
var curZoom = m_this.layer().map().zoom();
|
|
45699
|
+
nearestPixel = curZoom >= nearestPixel;
|
|
45700
|
+
}
|
|
45701
|
+
|
|
45702
|
+
m_quads.imgQuads.forEach(function (quad) {
|
|
45703
|
+
if (quad.image && quad.texture && quad.texture.nearestPixel() !== nearestPixel) {
|
|
45704
|
+
/* This could just be
|
|
45705
|
+
* quad.texture.setNearestPixel(nearestPixel);
|
|
45706
|
+
* but that needlessly redecodes the image. Instead, just change the
|
|
45707
|
+
* the interpolation flags, then change the nearestPixel value
|
|
45708
|
+
* without triggering a complete re-setup. */
|
|
45709
|
+
renderState.m_context.bindTexture(vgl.GL.TEXTURE_2D, quad.texture.textureHandle());
|
|
45710
|
+
renderState.m_context.texParameteri(vgl.GL.TEXTURE_2D, vgl.GL.TEXTURE_MIN_FILTER, nearestPixel ? vgl.GL.NEAREST : vgl.GL.LINEAR);
|
|
45711
|
+
renderState.m_context.texParameteri(vgl.GL.TEXTURE_2D, vgl.GL.TEXTURE_MAG_FILTER, nearestPixel ? vgl.GL.NEAREST : vgl.GL.LINEAR);
|
|
45712
|
+
renderState.m_context.bindTexture(vgl.GL.TEXTURE_2D, null);
|
|
45713
|
+
var oldmod = quad.texture.modified;
|
|
45714
|
+
|
|
45715
|
+
quad.texture.modified = function () {};
|
|
45716
|
+
|
|
45717
|
+
quad.texture.setNearestPixel(nearestPixel);
|
|
45718
|
+
quad.texture.modified = oldmod;
|
|
45719
|
+
}
|
|
45720
|
+
});
|
|
45721
|
+
}
|
|
45611
45722
|
|
|
45612
45723
|
if (m_this._hookRenderImageQuads) {
|
|
45613
45724
|
m_this._hookRenderImageQuads(renderState, m_quads.imgQuads);
|
|
@@ -46002,6 +46113,10 @@ var webgl_tileLayer = function webgl_tileLayer() {
|
|
|
46002
46113
|
this._update = function (request) {
|
|
46003
46114
|
s_update.call(m_this, request);
|
|
46004
46115
|
|
|
46116
|
+
if (m_quadFeature && m_quadFeature.nearestPixel) {
|
|
46117
|
+
m_quadFeature.nearestPixel(m_this.nearestPixel());
|
|
46118
|
+
}
|
|
46119
|
+
|
|
46005
46120
|
m_this._addBaseQuadToTiles(m_quadFeature, m_tiles);
|
|
46006
46121
|
|
|
46007
46122
|
return m_this;
|