Skip to content

Commit b92211b

Browse files
authored
TileLayer support options.altitude (#1987)
* TileLayer support options.altitude * cache altitudeToPoint cal result
1 parent 491aeae commit b92211b

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

src/renderer/layer/ImageGLRenderable.js

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { IS_NODE, extend, isInteger, log2, isNil } from '../../core/util';
1+
import { IS_NODE, extend, isInteger, log2, isNil, isNumber } from '../../core/util';
22
import { createGLContext, createProgram, enableVertexAttrib } from '../../core/util/gl';
33
import Browser from '../../core/Browser';
44
import * as mat4 from '../../core/util/mat4';
@@ -86,6 +86,25 @@ const ImageGLRenderable = Base => {
8686
}
8787
v3[0] = x || 0;
8888
v3[1] = y || 0;
89+
v3[2] = 0;
90+
const layer = this.layer;
91+
if (layer) {
92+
const { altitude } = layer.options;
93+
const altIsNumber = isNumber(altitude);
94+
if (!altIsNumber) {
95+
this._layerAlt = 0;
96+
}
97+
//update _layerAlt cache
98+
if (this._layerAltitude !== altitude && altIsNumber) {
99+
const map = layer.getMap();
100+
if (map) {
101+
const z = map.altitudeToPoint(altitude, map.getGLRes());
102+
this._layerAltitude = altitude;
103+
this._layerAlt = z;
104+
}
105+
}
106+
}
107+
v3[2] = this._layerAlt || 0;
89108
const uMatrix = mat4.identity(arr16);
90109
mat4.translate(uMatrix, uMatrix, v3);
91110
mat4.scale(uMatrix, uMatrix, [scale, scale, 1]);

0 commit comments

Comments
 (0)