Merge pull request #3545 from wagnerf42/master

gipy: new release (large file fixes)
master
Rob Pilling 2024-08-27 08:35:54 +01:00 committed by GitHub
commit c8cd53b5d3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 47 additions and 35 deletions

View File

@ -1,6 +1,8 @@
# Needs to be ignored because it uses ESM export/import # Needs to be ignored because it uses ESM export/import
apps/gipy/pkg/gps.js apps/gipy/pkg/gps.js
apps/gipy/pkg/gps.d.ts
apps/gipy/pkg/gps_bg.wasm.d.ts
# Needs to be ignored because it includes broken JS # Needs to be ignored because it includes broken JS
apps/health/chart.min.js apps/health/chart.min.js

View File

@ -135,5 +135,9 @@
* Fix for files converted from maps2gpx : path was not reduced in size correctly * Fix for files converted from maps2gpx : path was not reduced in size correctly
* Experimental ski mode : have a ski slopes map * Experimental ski mode : have a ski slopes map
* Fix for path projection display when lost and zoomed out * Fix for path projection display when lost and zoomed out
0.25: Minor code improvements 0.25: Minor code improvements
0.26: Add option to plot openstmap if installed 0.26: Add option to plot openstmap if installed
0.27: Support for large paths (grid sizes > 65k)

View File

@ -95,7 +95,7 @@ function compute_eta(hour, minutes, approximate_speed, remaining_distance) {
} }
class TilesOffsets { class TilesOffsets {
constructor(filename, offset) { constructor(filename, offset, bytes_per_tile_index) {
let header = E.toArrayBuffer(s.read(filename, offset, 4)); let header = E.toArrayBuffer(s.read(filename, offset, 4));
let type_size = Uint8Array(header, 0, 1)[0]; let type_size = Uint8Array(header, 0, 1)[0];
offset += 1; offset += 1;
@ -105,26 +105,30 @@ class TilesOffsets {
offset += 2; offset += 2;
let bytes = (type_size==24)?3:2; let bytes = (type_size==24)?3:2;
let buffer = E.toArrayBuffer(s.read(filename, offset, 2*non_empty_tiles_number+bytes*non_empty_tiles_number)); let buffer = E.toArrayBuffer(s.read(filename, offset, bytes_per_tile_index*non_empty_tiles_number));
this.non_empty_tiles = Uint16Array(buffer, 0, non_empty_tiles_number); if (bytes_per_tile_index == 2) {
offset += 2 * non_empty_tiles_number; this.non_empty_tiles = Uint16Array(buffer, 0, non_empty_tiles_number);
} else {
this.non_empty_tiles = Uint24Array(buffer, 0, non_empty_tiles_number);
}
offset += bytes_per_tile_index * non_empty_tiles_number;
let tile_buffer = E.toArrayBuffer(s.read(filename, offset, bytes*non_empty_tiles_number));
if (type_size == 24) { if (type_size == 24) {
this.non_empty_tiles_ends = Uint24Array( this.non_empty_tiles_ends = Uint24Array(
buffer, tile_buffer,
2*non_empty_tiles_number, 0,
non_empty_tiles_number non_empty_tiles_number
); );
offset += 3 * non_empty_tiles_number;
} else if (type_size == 16) { } else if (type_size == 16) {
this.non_empty_tiles_ends = Uint16Array( this.non_empty_tiles_ends = Uint16Array(
buffer, tile_buffer,
2*non_empty_tiles_number, 0,
non_empty_tiles_number non_empty_tiles_number
); );
offset += 2 * non_empty_tiles_number;
} else { } else {
throw "unknown size"; throw "unknown size";
} }
offset += bytes * non_empty_tiles_number;
return [this, offset]; return [this, offset];
} }
tile_start_offset(tile_index) { tile_start_offset(tile_index) {
@ -179,7 +183,8 @@ class Map {
offset += 8; offset += 8;
// tiles offsets // tiles offsets
let res = new TilesOffsets(filename, offset); let bytes_per_tile_index = (this.grid_size[0] * this.grid_size[1] > 65536)?3:2;
let res = new TilesOffsets(filename, offset, bytes_per_tile_index);
this.tiles_offsets = res[0]; this.tiles_offsets = res[0];
offset = res[1]; offset = res[1];
@ -314,7 +319,8 @@ class Interests {
this.side = side_array[0]; this.side = side_array[0];
offset += 8; offset += 8;
let res = new TilesOffsets(filename, offset); let bytes_per_tile_index = (this.grid_size[0] * this.grid_size[1] > 65536)?3:2;
let res = new TilesOffsets(filename, offset, bytes_per_tile_index);
offset = res[1]; offset = res[1];
this.offsets = res[0]; this.offsets = res[0];
let end = this.offsets.end_offset(); let end = this.offsets.end_offset();

View File

@ -2,7 +2,7 @@
"id": "gipy", "id": "gipy",
"name": "Gipy", "name": "Gipy",
"shortName": "Gipy", "shortName": "Gipy",
"version": "0.26", "version": "0.27",
"description": "Follow gpx files using the gps. Don't get lost in your bike trips and hikes.", "description": "Follow gpx files using the gps. Don't get lost in your bike trips and hikes.",
"allow_emulator":false, "allow_emulator":false,
"icon": "gipy.png", "icon": "gipy.png",

View File

@ -1,5 +1,5 @@
/* tslint:disable */ /* tslint:disable */
/* eslint-disable */
/** /**
* @param {Gps} gps * @param {Gps} gps
*/ */
@ -80,11 +80,11 @@ export interface InitOutput {
readonly __wbindgen_malloc: (a: number) => number; readonly __wbindgen_malloc: (a: number) => number;
readonly __wbindgen_realloc: (a: number, b: number, c: number) => number; readonly __wbindgen_realloc: (a: number, b: number, c: number) => number;
readonly __wbindgen_export_2: WebAssembly.Table; readonly __wbindgen_export_2: WebAssembly.Table;
readonly wasm_bindgen__convert__closures__invoke1_mut__hc18aa489d857d6a0: (a: number, b: number, c: number) => void; readonly wasm_bindgen__convert__closures__invoke1_mut__h175ee3b9ff4e5b4c: (a: number, b: number, c: number) => void;
readonly __wbindgen_add_to_stack_pointer: (a: number) => number; readonly __wbindgen_add_to_stack_pointer: (a: number) => number;
readonly __wbindgen_free: (a: number, b: number) => void; readonly __wbindgen_free: (a: number, b: number) => void;
readonly __wbindgen_exn_store: (a: number) => void; readonly __wbindgen_exn_store: (a: number) => void;
readonly wasm_bindgen__convert__closures__invoke2_mut__h41c3b5af183df3b2: (a: number, b: number, c: number, d: number) => void; readonly wasm_bindgen__convert__closures__invoke2_mut__h41622a4cb7018e76: (a: number, b: number, c: number, d: number) => void;
} }
export type SyncInitInput = BufferSource | WebAssembly.Module; export type SyncInitInput = BufferSource | WebAssembly.Module;

View File

@ -98,6 +98,14 @@ function takeObject(idx) {
return ret; return ret;
} }
const cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });
cachedTextDecoder.decode();
function getStringFromWasm0(ptr, len) {
return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len));
}
function addHeapObject(obj) { function addHeapObject(obj) {
if (heap_next === heap.length) heap.push(heap.length + 1); if (heap_next === heap.length) heap.push(heap.length + 1);
const idx = heap_next; const idx = heap_next;
@ -107,14 +115,6 @@ function addHeapObject(obj) {
return idx; return idx;
} }
const cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });
cachedTextDecoder.decode();
function getStringFromWasm0(ptr, len) {
return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len));
}
function debugString(val) { function debugString(val) {
// primitive types // primitive types
const type = typeof val; const type = typeof val;
@ -205,7 +205,7 @@ function makeMutClosure(arg0, arg1, dtor, f) {
return real; return real;
} }
function __wbg_adapter_24(arg0, arg1, arg2) { function __wbg_adapter_24(arg0, arg1, arg2) {
wasm.wasm_bindgen__convert__closures__invoke1_mut__hc18aa489d857d6a0(arg0, arg1, addHeapObject(arg2)); wasm.wasm_bindgen__convert__closures__invoke1_mut__h175ee3b9ff4e5b4c(arg0, arg1, addHeapObject(arg2));
} }
function _assertClass(instance, klass) { function _assertClass(instance, klass) {
@ -389,7 +389,7 @@ function handleError(f, args) {
} }
} }
function __wbg_adapter_86(arg0, arg1, arg2, arg3) { function __wbg_adapter_86(arg0, arg1, arg2, arg3) {
wasm.wasm_bindgen__convert__closures__invoke2_mut__h41c3b5af183df3b2(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3)); wasm.wasm_bindgen__convert__closures__invoke2_mut__h41622a4cb7018e76(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));
} }
/** /**
@ -464,10 +464,6 @@ function getImports() {
imports.wbg.__wbindgen_object_drop_ref = function(arg0) { imports.wbg.__wbindgen_object_drop_ref = function(arg0) {
takeObject(arg0); takeObject(arg0);
}; };
imports.wbg.__wbindgen_object_clone_ref = function(arg0) {
const ret = getObject(arg0);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_string_new = function(arg0, arg1) { imports.wbg.__wbindgen_string_new = function(arg0, arg1) {
const ret = getStringFromWasm0(arg0, arg1); const ret = getStringFromWasm0(arg0, arg1);
return addHeapObject(ret); return addHeapObject(ret);
@ -476,6 +472,10 @@ function getImports() {
const ret = fetch(getObject(arg0)); const ret = fetch(getObject(arg0));
return addHeapObject(ret); return addHeapObject(ret);
}; };
imports.wbg.__wbindgen_object_clone_ref = function(arg0) {
const ret = getObject(arg0);
return addHeapObject(ret);
};
imports.wbg.__wbg_signal_31753ac644b25fbb = function(arg0) { imports.wbg.__wbg_signal_31753ac644b25fbb = function(arg0) {
const ret = getObject(arg0).signal; const ret = getObject(arg0).signal;
return addHeapObject(ret); return addHeapObject(ret);
@ -695,8 +695,8 @@ function getImports() {
const ret = wasm.memory; const ret = wasm.memory;
return addHeapObject(ret); return addHeapObject(ret);
}; };
imports.wbg.__wbindgen_closure_wrapper2356 = function(arg0, arg1, arg2) { imports.wbg.__wbindgen_closure_wrapper2375 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 293, __wbg_adapter_24); const ret = makeMutClosure(arg0, arg1, 301, __wbg_adapter_24);
return addHeapObject(ret); return addHeapObject(ret);
}; };

Binary file not shown.

View File

@ -1,5 +1,5 @@
/* tslint:disable */ /* tslint:disable */
/* eslint-disable */
export const memory: WebAssembly.Memory; export const memory: WebAssembly.Memory;
export function __wbg_gps_free(a: number): void; export function __wbg_gps_free(a: number): void;
export function disable_elevation(a: number): void; 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
export function __wbindgen_malloc(a: number): number; export function __wbindgen_malloc(a: number): number;
export function __wbindgen_realloc(a: number, b: number, c: number): number; export function __wbindgen_realloc(a: number, b: number, c: number): number;
export const __wbindgen_export_2: WebAssembly.Table; export const __wbindgen_export_2: WebAssembly.Table;
export function wasm_bindgen__convert__closures__invoke1_mut__hc18aa489d857d6a0(a: number, b: number, c: number): void; export function wasm_bindgen__convert__closures__invoke1_mut__h175ee3b9ff4e5b4c(a: number, b: number, c: number): void;
export function __wbindgen_add_to_stack_pointer(a: number): number; export function __wbindgen_add_to_stack_pointer(a: number): number;
export function __wbindgen_free(a: number, b: number): void; export function __wbindgen_free(a: number, b: number): void;
export function __wbindgen_exn_store(a: number): void; export function __wbindgen_exn_store(a: number): void;
export function wasm_bindgen__convert__closures__invoke2_mut__h41c3b5af183df3b2(a: number, b: number, c: number, d: number): void; export function wasm_bindgen__convert__closures__invoke2_mut__h41622a4cb7018e76(a: number, b: number, c: number, d: number): void;