Skip to content

Commit f7003e8

Browse files
committed
improved(display): Enhanced balance between performance and view distance by optimizing grid size at very high pitch
Signed-off-by: Tim Deubler <tim.deubler@here.com>
1 parent 0628a2b commit f7003e8

File tree

5 files changed

+22
-22
lines changed

5 files changed

+22
-22
lines changed

packages/display/src/displays/webgl/Display.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@ import {Color as Colors} from '@here/xyz-maps-common';
4747

4848
const {toRGB} = Colors;
4949

50-
export const MAX_PITCH_GRID = 68 / 180 * Math.PI;
50+
// determined through experimentation to find the best balance between performance and view distance.
51+
export const MAX_PITCH_GRID = 66.33 / 180 * Math.PI;
5152

5253
const PREVIEW_LOOK_AHEAD_LEVELS: [number, number] = [3, 9];
5354

packages/display/src/displays/webgl/GLRender.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ const mat4 = {
8686

8787
const PI2 = 2 * Math.PI;
8888
const DEG_2_RAD = Math.PI / 180;
89-
const FIELD_OF_VIEW = 38 * DEG_2_RAD;
89+
const FIELD_OF_VIEW = 40 * DEG_2_RAD;
9090
// Calculates the critical pitch angle where the view frustum reaches its limit.
9191
// Beyond this angle, the calculation for zFar becomes unstable or negative.
9292
const CRITICAL_PITCH = Math.PI / 2 - Math.atan(Math.tan(FIELD_OF_VIEW / 2));

packages/tests/specs/display/general/pan_map_spec.ts

+2-4
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ describe('pan the map', () => {
2929
let display;
3030

3131
before(async () => {
32-
chai.use(chaiAlmost(1e-8));
32+
chai.use(chaiAlmost(1e-7));
3333
let preparedData = await prepare(dataset);
3434
display = new Map(document.getElementById('map'), {
3535
center: {longitude: 77.99026323, latitude: 12.13576713},
@@ -50,11 +50,9 @@ describe('pan the map', () => {
5050
await waitForViewportReady(display, () => {
5151
display.pan(100, 100, 0, 0);
5252
});
53-
54-
expect(display.getCenter()).to.deep.almost({latitude: 12.13629159, longitude: 77.98972678});
53+
expect(display.getCenter()).to.deep.almost({latitude: 12.13629159, longitude: 77.9897267});
5554
expect(display.getHeight()).to.equal(600);
5655
expect(display.getWidth()).to.equal(800);
57-
5856
expect(display.getViewBounds()).to.deep.almost({
5957
maxLat: 12.13786494,
6058
maxLon: 77.99187255,

packages/tests/specs/editor/rangeselector/rangeselector_snap_overlap_spec.ts

+14-13
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,9 @@ describe('range selector: snapping and overlapping', () => {
3232
let mapContainer;
3333
let link;
3434

35+
3536
before(async function() {
36-
chai.use(chaiAlmost());
37+
chai.use(chaiAlmost(1e-7));
3738
preparedData = await prepare(dataset);
3839
display = new Map(document.getElementById('map'), {
3940
center: {longitude: -122.283766, latitude: 37.818477},
@@ -80,7 +81,7 @@ describe('range selector: snapping and overlapping', () => {
8081
expect(info[0].segments[0]).to.deep.include({
8182
from: 0.1,
8283
reversed: false,
83-
to: 0.752494502
84+
to: 0.752506506
8485
});
8586

8687
expect(info[1]).to.deep.include({
@@ -122,7 +123,7 @@ describe('range selector: snapping and overlapping', () => {
122123
expect(info[0].segments[0]).to.deep.include({
123124
from: 0.1,
124125
reversed: false,
125-
to: 0.752494502
126+
to: 0.752506506
126127
});
127128

128129
expect(info[1]).to.deep.include({
@@ -132,7 +133,7 @@ describe('range selector: snapping and overlapping', () => {
132133
});
133134

134135
expect(info[1].segments[0]).to.deep.include({
135-
from: 0.752494502,
136+
from: 0.752506506,
136137
reversed: false,
137138
to: 0.9
138139
});
@@ -164,7 +165,7 @@ describe('range selector: snapping and overlapping', () => {
164165
expect(info[0].segments[0]).to.deep.include({
165166
from: 0.1,
166167
reversed: false,
167-
to: 0.752494502
168+
to: 0.752506506
168169
});
169170

170171
expect(info[1]).to.deep.include({
@@ -206,7 +207,7 @@ describe('range selector: snapping and overlapping', () => {
206207
expect(info[0].segments[0]).to.deep.include({
207208
from: 0.1,
208209
reversed: false,
209-
to: 0.752494502
210+
to: 0.752506506
210211
});
211212

212213
expect(info[1]).to.deep.include({
@@ -216,7 +217,7 @@ describe('range selector: snapping and overlapping', () => {
216217
});
217218

218219
expect(info[1].segments[0]).to.deep.include({
219-
from: 0.752494502,
220+
from: 0.752506506,
220221
reversed: false,
221222
to: 0.9
222223
});
@@ -248,7 +249,7 @@ describe('range selector: snapping and overlapping', () => {
248249
expect(info[0].segments[0]).to.deep.include({
249250
from: 0.1,
250251
reversed: false,
251-
to: 0.752494502
252+
to: 0.752506506
252253
});
253254

254255
expect(info[1]).to.deep.include({
@@ -290,7 +291,7 @@ describe('range selector: snapping and overlapping', () => {
290291
expect(info[0].segments[0]).to.deep.include({
291292
from: 0.1,
292293
reversed: false,
293-
to: 0.752494502
294+
to: 0.752506506
294295
});
295296

296297
expect(info[1]).to.deep.include({
@@ -300,7 +301,7 @@ describe('range selector: snapping and overlapping', () => {
300301
});
301302

302303
expect(info[1].segments[0]).to.deep.include({
303-
from: 0.752494502,
304+
from: 0.752506506,
304305
reversed: false,
305306
to: 0.9
306307
});
@@ -333,7 +334,7 @@ describe('range selector: snapping and overlapping', () => {
333334
expect(info[0].segments[0]).to.deep.include({
334335
from: 0.1,
335336
reversed: false,
336-
to: 0.485828186
337+
to: 0.485838614
337338
});
338339

339340
expect(info[1]).to.deep.include({
@@ -375,7 +376,7 @@ describe('range selector: snapping and overlapping', () => {
375376
expect(info[0].segments[0]).to.deep.include({
376377
from: 0.1,
377378
reversed: false,
378-
to: 0.552494765
379+
to: 0.552505587
379380
});
380381

381382
expect(info[1]).to.deep.include({
@@ -385,7 +386,7 @@ describe('range selector: snapping and overlapping', () => {
385386
});
386387

387388
expect(info[1].segments[0]).to.deep.include({
388-
from: 0.552494765,
389+
from: 0.552505587,
389390
reversed: false,
390391
to: 0.9
391392
});

packages/tests/specs/editor/rangeselector/rangeselector_spec.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ describe('range selector drag', () => {
3838
let link3;
3939

4040
before(async () => {
41-
chai.use(chaiAlmost());
41+
chai.use(chaiAlmost(1e-8));
4242
preparedData = await prepare(dataset);
4343
display = new Map(document.getElementById('map'), {
4444
center: {longitude: -105.145534, latitude: 35.374829},
@@ -119,7 +119,7 @@ describe('range selector drag', () => {
119119
await drag(mapContainer, {x: 350, y: 217}, {x: 350, y: 250});
120120

121121
expect(draggedZone.segments[0]).to.deep.include({
122-
from: 0.44687746,
122+
from: 0.446889377,
123123
to: 0.721236961,
124124
reversed: false
125125
});
@@ -155,7 +155,7 @@ describe('range selector drag', () => {
155155
to: 0.8
156156
});
157157
expect(info[1].segments[0]).to.deep.include({
158-
from: 0.44687746,
158+
from: 0.446889377,
159159
to: 0.721236961,
160160
reversed: false
161161
});

0 commit comments

Comments
 (0)