Skip to content

Commit c8cd53b

Browse files
authored
Merge pull request #3545 from wagnerf42/master
gipy: new release (large file fixes)
2 parents 9a6bc59 + 5b66b7a commit c8cd53b

File tree

8 files changed

+47
-35
lines changed

8 files changed

+47
-35
lines changed

.eslintignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11

22
# Needs to be ignored because it uses ESM export/import
33
apps/gipy/pkg/gps.js
4+
apps/gipy/pkg/gps.d.ts
5+
apps/gipy/pkg/gps_bg.wasm.d.ts
46

57
# Needs to be ignored because it includes broken JS
68
apps/health/chart.min.js

apps/gipy/ChangeLog

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,5 +135,9 @@
135135
* Fix for files converted from maps2gpx : path was not reduced in size correctly
136136
* Experimental ski mode : have a ski slopes map
137137
* Fix for path projection display when lost and zoomed out
138+
138139
0.25: Minor code improvements
140+
139141
0.26: Add option to plot openstmap if installed
142+
143+
0.27: Support for large paths (grid sizes > 65k)

apps/gipy/app.js

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ function compute_eta(hour, minutes, approximate_speed, remaining_distance) {
9595
}
9696

9797
class TilesOffsets {
98-
constructor(filename, offset) {
98+
constructor(filename, offset, bytes_per_tile_index) {
9999
let header = E.toArrayBuffer(s.read(filename, offset, 4));
100100
let type_size = Uint8Array(header, 0, 1)[0];
101101
offset += 1;
@@ -105,26 +105,30 @@ class TilesOffsets {
105105
offset += 2;
106106

107107
let bytes = (type_size==24)?3:2;
108-
let buffer = E.toArrayBuffer(s.read(filename, offset, 2*non_empty_tiles_number+bytes*non_empty_tiles_number));
109-
this.non_empty_tiles = Uint16Array(buffer, 0, non_empty_tiles_number);
110-
offset += 2 * non_empty_tiles_number;
108+
let buffer = E.toArrayBuffer(s.read(filename, offset, bytes_per_tile_index*non_empty_tiles_number));
109+
if (bytes_per_tile_index == 2) {
110+
this.non_empty_tiles = Uint16Array(buffer, 0, non_empty_tiles_number);
111+
} else {
112+
this.non_empty_tiles = Uint24Array(buffer, 0, non_empty_tiles_number);
113+
}
114+
offset += bytes_per_tile_index * non_empty_tiles_number;
115+
let tile_buffer = E.toArrayBuffer(s.read(filename, offset, bytes*non_empty_tiles_number));
111116
if (type_size == 24) {
112117
this.non_empty_tiles_ends = Uint24Array(
113-
buffer,
114-
2*non_empty_tiles_number,
118+
tile_buffer,
119+
0,
115120
non_empty_tiles_number
116121
);
117-
offset += 3 * non_empty_tiles_number;
118122
} else if (type_size == 16) {
119123
this.non_empty_tiles_ends = Uint16Array(
120-
buffer,
121-
2*non_empty_tiles_number,
124+
tile_buffer,
125+
0,
122126
non_empty_tiles_number
123127
);
124-
offset += 2 * non_empty_tiles_number;
125128
} else {
126129
throw "unknown size";
127130
}
131+
offset += bytes * non_empty_tiles_number;
128132
return [this, offset];
129133
}
130134
tile_start_offset(tile_index) {
@@ -179,7 +183,8 @@ class Map {
179183
offset += 8;
180184

181185
// tiles offsets
182-
let res = new TilesOffsets(filename, offset);
186+
let bytes_per_tile_index = (this.grid_size[0] * this.grid_size[1] > 65536)?3:2;
187+
let res = new TilesOffsets(filename, offset, bytes_per_tile_index);
183188
this.tiles_offsets = res[0];
184189
offset = res[1];
185190

@@ -314,7 +319,8 @@ class Interests {
314319
this.side = side_array[0];
315320
offset += 8;
316321

317-
let res = new TilesOffsets(filename, offset);
322+
let bytes_per_tile_index = (this.grid_size[0] * this.grid_size[1] > 65536)?3:2;
323+
let res = new TilesOffsets(filename, offset, bytes_per_tile_index);
318324
offset = res[1];
319325
this.offsets = res[0];
320326
let end = this.offsets.end_offset();

apps/gipy/metadata.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"id": "gipy",
33
"name": "Gipy",
44
"shortName": "Gipy",
5-
"version": "0.26",
5+
"version": "0.27",
66
"description": "Follow gpx files using the gps. Don't get lost in your bike trips and hikes.",
77
"allow_emulator":false,
88
"icon": "gipy.png",

apps/gipy/pkg/gps.d.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/* tslint:disable */
2-
2+
/* eslint-disable */
33
/**
44
* @param {Gps} gps
55
*/
@@ -80,11 +80,11 @@ export interface InitOutput {
8080
readonly __wbindgen_malloc: (a: number) => number;
8181
readonly __wbindgen_realloc: (a: number, b: number, c: number) => number;
8282
readonly __wbindgen_export_2: WebAssembly.Table;
83-
readonly wasm_bindgen__convert__closures__invoke1_mut__hc18aa489d857d6a0: (a: number, b: number, c: number) => void;
83+
readonly wasm_bindgen__convert__closures__invoke1_mut__h175ee3b9ff4e5b4c: (a: number, b: number, c: number) => void;
8484
readonly __wbindgen_add_to_stack_pointer: (a: number) => number;
8585
readonly __wbindgen_free: (a: number, b: number) => void;
8686
readonly __wbindgen_exn_store: (a: number) => void;
87-
readonly wasm_bindgen__convert__closures__invoke2_mut__h41c3b5af183df3b2: (a: number, b: number, c: number, d: number) => void;
87+
readonly wasm_bindgen__convert__closures__invoke2_mut__h41622a4cb7018e76: (a: number, b: number, c: number, d: number) => void;
8888
}
8989

9090
export type SyncInitInput = BufferSource | WebAssembly.Module;

apps/gipy/pkg/gps.js

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,14 @@ function takeObject(idx) {
9898
return ret;
9999
}
100100

101+
const cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });
102+
103+
cachedTextDecoder.decode();
104+
105+
function getStringFromWasm0(ptr, len) {
106+
return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len));
107+
}
108+
101109
function addHeapObject(obj) {
102110
if (heap_next === heap.length) heap.push(heap.length + 1);
103111
const idx = heap_next;
@@ -107,14 +115,6 @@ function addHeapObject(obj) {
107115
return idx;
108116
}
109117

110-
const cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });
111-
112-
cachedTextDecoder.decode();
113-
114-
function getStringFromWasm0(ptr, len) {
115-
return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len));
116-
}
117-
118118
function debugString(val) {
119119
// primitive types
120120
const type = typeof val;
@@ -205,7 +205,7 @@ function makeMutClosure(arg0, arg1, dtor, f) {
205205
return real;
206206
}
207207
function __wbg_adapter_24(arg0, arg1, arg2) {
208-
wasm.wasm_bindgen__convert__closures__invoke1_mut__hc18aa489d857d6a0(arg0, arg1, addHeapObject(arg2));
208+
wasm.wasm_bindgen__convert__closures__invoke1_mut__h175ee3b9ff4e5b4c(arg0, arg1, addHeapObject(arg2));
209209
}
210210

211211
function _assertClass(instance, klass) {
@@ -389,7 +389,7 @@ function handleError(f, args) {
389389
}
390390
}
391391
function __wbg_adapter_86(arg0, arg1, arg2, arg3) {
392-
wasm.wasm_bindgen__convert__closures__invoke2_mut__h41c3b5af183df3b2(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));
392+
wasm.wasm_bindgen__convert__closures__invoke2_mut__h41622a4cb7018e76(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));
393393
}
394394

395395
/**
@@ -464,10 +464,6 @@ function getImports() {
464464
imports.wbg.__wbindgen_object_drop_ref = function(arg0) {
465465
takeObject(arg0);
466466
};
467-
imports.wbg.__wbindgen_object_clone_ref = function(arg0) {
468-
const ret = getObject(arg0);
469-
return addHeapObject(ret);
470-
};
471467
imports.wbg.__wbindgen_string_new = function(arg0, arg1) {
472468
const ret = getStringFromWasm0(arg0, arg1);
473469
return addHeapObject(ret);
@@ -476,6 +472,10 @@ function getImports() {
476472
const ret = fetch(getObject(arg0));
477473
return addHeapObject(ret);
478474
};
475+
imports.wbg.__wbindgen_object_clone_ref = function(arg0) {
476+
const ret = getObject(arg0);
477+
return addHeapObject(ret);
478+
};
479479
imports.wbg.__wbg_signal_31753ac644b25fbb = function(arg0) {
480480
const ret = getObject(arg0).signal;
481481
return addHeapObject(ret);
@@ -695,8 +695,8 @@ function getImports() {
695695
const ret = wasm.memory;
696696
return addHeapObject(ret);
697697
};
698-
imports.wbg.__wbindgen_closure_wrapper2356 = function(arg0, arg1, arg2) {
699-
const ret = makeMutClosure(arg0, arg1, 293, __wbg_adapter_24);
698+
imports.wbg.__wbindgen_closure_wrapper2375 = function(arg0, arg1, arg2) {
699+
const ret = makeMutClosure(arg0, arg1, 301, __wbg_adapter_24);
700700
return addHeapObject(ret);
701701
};
702702

apps/gipy/pkg/gps_bg.wasm

-4.93 KB
Binary file not shown.

apps/gipy/pkg/gps_bg.wasm.d.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/* tslint:disable */
2-
2+
/* eslint-disable */
33
export const memory: WebAssembly.Memory;
44
export function __wbg_gps_free(a: number): void;
55
export function disable_elevation(a: number): void;
@@ -14,8 +14,8 @@ export function gps_from_area(a: number, b: number, c: number, d: number, e: num
1414
export function __wbindgen_malloc(a: number): number;
1515
export function __wbindgen_realloc(a: number, b: number, c: number): number;
1616
export const __wbindgen_export_2: WebAssembly.Table;
17-
export function wasm_bindgen__convert__closures__invoke1_mut__hc18aa489d857d6a0(a: number, b: number, c: number): void;
17+
export function wasm_bindgen__convert__closures__invoke1_mut__h175ee3b9ff4e5b4c(a: number, b: number, c: number): void;
1818
export function __wbindgen_add_to_stack_pointer(a: number): number;
1919
export function __wbindgen_free(a: number, b: number): void;
2020
export function __wbindgen_exn_store(a: number): void;
21-
export function wasm_bindgen__convert__closures__invoke2_mut__h41c3b5af183df3b2(a: number, b: number, c: number, d: number): void;
21+
export function wasm_bindgen__convert__closures__invoke2_mut__h41622a4cb7018e76(a: number, b: number, c: number, d: number): void;

0 commit comments

Comments
 (0)