@loaders.gl/kml 4.0.0-alpha.4 → 4.0.0-alpha.6
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/dist/bundle.d.ts +2 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/bundle.js +2 -2
- package/dist/dist.min.js +1926 -0
- package/dist/es5/bundle.js +6 -0
- package/dist/es5/bundle.js.map +1 -0
- package/dist/es5/gpx-loader.js +81 -0
- package/dist/es5/gpx-loader.js.map +1 -0
- package/dist/es5/index.js +27 -0
- package/dist/es5/index.js.map +1 -0
- package/dist/es5/kml-loader.js +81 -0
- package/dist/es5/kml-loader.js.map +1 -0
- package/dist/es5/tcx-loader.js +81 -0
- package/dist/es5/tcx-loader.js.map +1 -0
- package/dist/esm/bundle.js +4 -0
- package/dist/esm/bundle.js.map +1 -0
- package/dist/esm/gpx-loader.js +54 -0
- package/dist/esm/gpx-loader.js.map +1 -0
- package/dist/esm/index.js +4 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/kml-loader.js +54 -0
- package/dist/esm/kml-loader.js.map +1 -0
- package/dist/esm/tcx-loader.js +54 -0
- package/dist/esm/tcx-loader.js.map +1 -0
- package/dist/gpx-loader.d.ts +36 -0
- package/dist/gpx-loader.d.ts.map +1 -0
- package/dist/gpx-loader.js +57 -49
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -4
- package/dist/kml-loader.d.ts +36 -0
- package/dist/kml-loader.d.ts.map +1 -0
- package/dist/kml-loader.js +58 -49
- package/dist/tcx-loader.d.ts +36 -0
- package/dist/tcx-loader.d.ts.map +1 -0
- package/dist/tcx-loader.js +59 -50
- package/package.json +9 -12
- package/src/gpx-loader.ts +34 -14
- package/src/kml-loader.ts +33 -13
- package/src/tcx-loader.ts +33 -12
- package/dist/bundle.js.map +0 -1
- package/dist/gpx-loader.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/kml-loader.js.map +0 -1
- package/dist/tcx-loader.js.map +0 -1
package/src/kml-loader.ts
CHANGED
|
@@ -1,13 +1,22 @@
|
|
|
1
1
|
import type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';
|
|
2
2
|
import {geojsonToBinary} from '@loaders.gl/gis';
|
|
3
3
|
import {kml} from '@tmcw/togeojson';
|
|
4
|
+
import {GeoJSONRowTable, FeatureCollection, ObjectRowTable} from '@loaders.gl/schema';
|
|
4
5
|
|
|
5
6
|
// __VERSION__ is injected by babel-plugin-version-inline
|
|
6
7
|
// @ts-ignore TS2304: Cannot find name '__VERSION__'.
|
|
7
8
|
const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';
|
|
8
9
|
|
|
9
10
|
export type KMLLoaderOptions = LoaderOptions & {
|
|
10
|
-
kml?: {
|
|
11
|
+
kml?: {
|
|
12
|
+
shape?: 'object-row-table' | 'geojson-row-table' | 'geojson' | 'binary' | 'raw';
|
|
13
|
+
/** @deprecated. Use options.kml.shape */
|
|
14
|
+
type?: 'object-row-table' | 'geojson-row-table' | 'geojson' | 'binary' | 'raw';
|
|
15
|
+
};
|
|
16
|
+
gis?: {
|
|
17
|
+
/** @deprecated. Use options.kml.shape */
|
|
18
|
+
format?: 'object-row-table' | 'geojson-row-table' | 'geojson' | 'binary' | 'raw';
|
|
19
|
+
};
|
|
11
20
|
};
|
|
12
21
|
|
|
13
22
|
const KML_HEADER = `\
|
|
@@ -26,26 +35,36 @@ export const KMLLoader = {
|
|
|
26
35
|
mimeTypes: ['application/vnd.google-earth.kml+xml'],
|
|
27
36
|
text: true,
|
|
28
37
|
tests: [KML_HEADER],
|
|
29
|
-
parse: async (arrayBuffer, options) =>
|
|
38
|
+
parse: async (arrayBuffer, options?: KMLLoaderOptions) =>
|
|
30
39
|
parseTextSync(new TextDecoder().decode(arrayBuffer), options),
|
|
31
40
|
parseTextSync,
|
|
32
41
|
options: {
|
|
33
42
|
kml: {},
|
|
34
|
-
gis: {
|
|
43
|
+
gis: {}
|
|
35
44
|
}
|
|
36
45
|
};
|
|
37
46
|
|
|
38
|
-
function parseTextSync(text: string, options
|
|
47
|
+
function parseTextSync(text: string, options?: KMLLoaderOptions) {
|
|
39
48
|
const doc = new DOMParser().parseFromString(text, 'text/xml');
|
|
40
|
-
const geojson = kml(doc);
|
|
49
|
+
const geojson: FeatureCollection = kml(doc);
|
|
41
50
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
51
|
+
// backwards compatibility
|
|
52
|
+
const shape = options?.gis?.format || options?.kml?.type || options?.kml?.shape;
|
|
53
|
+
switch (shape) {
|
|
54
|
+
case 'object-row-table': {
|
|
55
|
+
const table: ObjectRowTable = {
|
|
56
|
+
shape: 'object-row-table',
|
|
57
|
+
data: geojson.features
|
|
58
|
+
};
|
|
59
|
+
return table;
|
|
60
|
+
}
|
|
61
|
+
case 'geojson-row-table': {
|
|
62
|
+
const table: GeoJSONRowTable = {
|
|
63
|
+
shape: 'geojson-row-table',
|
|
64
|
+
data: geojson.features
|
|
65
|
+
};
|
|
66
|
+
return table;
|
|
67
|
+
}
|
|
49
68
|
case 'geojson':
|
|
50
69
|
return geojson;
|
|
51
70
|
case 'binary':
|
|
@@ -53,7 +72,8 @@ function parseTextSync(text: string, options: any) {
|
|
|
53
72
|
case 'raw':
|
|
54
73
|
return doc;
|
|
55
74
|
default:
|
|
56
|
-
|
|
75
|
+
// Default to geojson for backwards compatibility
|
|
76
|
+
return geojson;
|
|
57
77
|
}
|
|
58
78
|
}
|
|
59
79
|
|
package/src/tcx-loader.ts
CHANGED
|
@@ -1,13 +1,22 @@
|
|
|
1
1
|
import type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';
|
|
2
2
|
import {geojsonToBinary} from '@loaders.gl/gis';
|
|
3
3
|
import {tcx} from '@tmcw/togeojson';
|
|
4
|
+
import type {GeoJSONRowTable, FeatureCollection, ObjectRowTable} from '@loaders.gl/schema';
|
|
4
5
|
|
|
5
6
|
// __VERSION__ is injected by babel-plugin-version-inline
|
|
6
7
|
// @ts-ignore TS2304: Cannot find name '__VERSION__'.
|
|
7
8
|
const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';
|
|
8
9
|
|
|
9
10
|
export type TCXLoaderOptions = LoaderOptions & {
|
|
10
|
-
tcx?: {
|
|
11
|
+
tcx?: {
|
|
12
|
+
shape?: 'object-row-table' | 'geojson-row-table' | 'geojson' | 'binary' | 'raw';
|
|
13
|
+
/** @deprecated. Use options.tcx.shape */
|
|
14
|
+
type?: 'object-row-table' | 'geojson-row-table' | 'geojson' | 'binary' | 'raw';
|
|
15
|
+
};
|
|
16
|
+
gis?: {
|
|
17
|
+
/** @deprecated. Use options.tcx.shape */
|
|
18
|
+
format?: 'object-row-table' | 'geojson-row-table' | 'geojson' | 'binary' | 'raw';
|
|
19
|
+
};
|
|
11
20
|
};
|
|
12
21
|
|
|
13
22
|
const TCX_HEADER = `\
|
|
@@ -26,26 +35,37 @@ export const TCXLoader = {
|
|
|
26
35
|
mimeTypes: ['application/vnd.garmin.tcx+xml'],
|
|
27
36
|
text: true,
|
|
28
37
|
tests: [TCX_HEADER],
|
|
29
|
-
parse: async (arrayBuffer, options) =>
|
|
38
|
+
parse: async (arrayBuffer, options?: TCXLoaderOptions) =>
|
|
30
39
|
parseTextSync(new TextDecoder().decode(arrayBuffer), options),
|
|
31
40
|
parseTextSync,
|
|
32
41
|
options: {
|
|
33
42
|
tcx: {},
|
|
34
|
-
gis: {
|
|
43
|
+
gis: {}
|
|
35
44
|
}
|
|
36
45
|
};
|
|
37
46
|
|
|
38
|
-
function parseTextSync(text: string, options
|
|
47
|
+
function parseTextSync(text: string, options?: TCXLoaderOptions) {
|
|
39
48
|
const doc = new DOMParser().parseFromString(text, 'text/xml');
|
|
40
|
-
const geojson = tcx(doc);
|
|
49
|
+
const geojson: FeatureCollection = tcx(doc);
|
|
41
50
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
return geojson.features;
|
|
45
|
-
default:
|
|
46
|
-
}
|
|
51
|
+
// backwards compatibility
|
|
52
|
+
const shape = options?.gis?.format || options?.tcx?.type || options?.tcx?.shape;
|
|
47
53
|
|
|
48
|
-
switch (
|
|
54
|
+
switch (shape) {
|
|
55
|
+
case 'object-row-table': {
|
|
56
|
+
const table: ObjectRowTable = {
|
|
57
|
+
shape: 'object-row-table',
|
|
58
|
+
data: geojson.features
|
|
59
|
+
};
|
|
60
|
+
return table;
|
|
61
|
+
}
|
|
62
|
+
case 'geojson-row-table': {
|
|
63
|
+
const table: GeoJSONRowTable = {
|
|
64
|
+
shape: 'geojson-row-table',
|
|
65
|
+
data: geojson.features
|
|
66
|
+
};
|
|
67
|
+
return table;
|
|
68
|
+
}
|
|
49
69
|
case 'geojson':
|
|
50
70
|
return geojson;
|
|
51
71
|
case 'binary':
|
|
@@ -53,7 +73,8 @@ function parseTextSync(text: string, options: any = {}) {
|
|
|
53
73
|
case 'raw':
|
|
54
74
|
return doc;
|
|
55
75
|
default:
|
|
56
|
-
|
|
76
|
+
// Default to geojson for backwards compatibility
|
|
77
|
+
return geojson;
|
|
57
78
|
}
|
|
58
79
|
}
|
|
59
80
|
|
package/dist/bundle.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/bundle.ts"],"names":["moduleExports","require","globalThis","loaders","module","exports","Object","assign"],"mappings":"AACA,MAAMA,aAAa,GAAGC,OAAO,CAAC,SAAD,CAA7B;;AACAC,UAAU,CAACC,OAAX,GAAqBD,UAAU,CAACC,OAAX,IAAsB,EAA3C;AACAC,MAAM,CAACC,OAAP,GAAiBC,MAAM,CAACC,MAAP,CAAcL,UAAU,CAACC,OAAzB,EAAkCH,aAAlC,CAAjB","sourcesContent":["// @ts-nocheck\nconst moduleExports = require('./index');\nglobalThis.loaders = globalThis.loaders || {};\nmodule.exports = Object.assign(globalThis.loaders, moduleExports);\n"],"file":"bundle.js"}
|
package/dist/gpx-loader.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/gpx-loader.ts"],"names":["geojsonToBinary","gpx","VERSION","GPX_HEADER","GPXLoader","name","id","module","version","extensions","mimeTypes","text","tests","parse","arrayBuffer","options","parseTextSync","TextDecoder","decode","gis","format","doc","DOMParser","parseFromString","geojson","type","features","Error","_typecheckGPXLoader"],"mappings":"AACA,SAAQA,eAAR,QAA8B,iBAA9B;AACA,SAAQC,GAAR,QAAkB,iBAAlB;AAIA,MAAMC,OAAO,GAAG,2BAAuB,WAAvB,qBAAmD,QAAnE;AAMA,MAAMC,UAAU,qDAAhB;AAOA,OAAO,MAAMC,SAAS,GAAG;AACvBC,EAAAA,IAAI,EAAE,2BADiB;AAEvBC,EAAAA,EAAE,EAAE,KAFmB;AAGvBC,EAAAA,MAAM,EAAE,KAHe;AAIvBC,EAAAA,OAAO,EAAEN,OAJc;AAKvBO,EAAAA,UAAU,EAAE,CAAC,KAAD,CALW;AAMvBC,EAAAA,SAAS,EAAE,CAAC,qBAAD,CANY;AAOvBC,EAAAA,IAAI,EAAE,IAPiB;AAQvBC,EAAAA,KAAK,EAAE,CAACT,UAAD,CARgB;AASvBU,EAAAA,KAAK,EAAE,OAAOC,WAAP,EAAoBC,OAApB,KACLC,aAAa,CAAC,IAAIC,WAAJ,GAAkBC,MAAlB,CAAyBJ,WAAzB,CAAD,EAAwCC,OAAxC,CAVQ;AAWvBC,EAAAA,aAXuB;AAYvBD,EAAAA,OAAO,EAAE;AACPd,IAAAA,GAAG,EAAE,EADE;AAEPkB,IAAAA,GAAG,EAAE;AAACC,MAAAA,MAAM,EAAE;AAAT;AAFE;AAZc,CAAlB;;AAkBP,SAASJ,aAAT,CAAuBL,IAAvB,EAAqCI,OAArC,EAAmD;AAAA;;AACjD,QAAMM,GAAG,GAAG,IAAIC,SAAJ,GAAgBC,eAAhB,CAAgCZ,IAAhC,EAAsC,UAAtC,CAAZ;AACA,QAAMa,OAAO,GAAGvB,GAAG,CAACoB,GAAD,CAAnB;;AAEA,UAAQN,OAAR,aAAQA,OAAR,uCAAQA,OAAO,CAAEd,GAAjB,iDAAQ,aAAcwB,IAAtB;AACE,SAAK,kBAAL;AACE,aAAOD,OAAO,CAACE,QAAf;;AACF;AAHF;;AAMA,UAAQX,OAAR,aAAQA,OAAR,uCAAQA,OAAO,CAAEI,GAAjB,iDAAQ,aAAcC,MAAtB;AACE,SAAK,SAAL;AACE,aAAOI,OAAP;;AACF,SAAK,QAAL;AACE,aAAOxB,eAAe,CAACwB,OAAO,CAACE,QAAT,CAAtB;;AACF,SAAK,KAAL;AACE,aAAOL,GAAP;;AACF;AACE,YAAM,IAAIM,KAAJ,EAAN;AARJ;AAUD;;AAED,OAAO,MAAMC,mBAAmB,GAAGxB,SAA5B","sourcesContent":["import type {LoaderOptions} from '@loaders.gl/loader-utils';\nimport {geojsonToBinary} from '@loaders.gl/gis';\nimport {gpx} from '@tmcw/togeojson';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type GPXLoaderOptions = LoaderOptions & {\n gpx?: {};\n};\n\nconst GPX_HEADER = `\\\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<gpx`;\n\n/**\n * Loader for GPX (GPS exchange format)\n */\nexport const GPXLoader = {\n name: 'GPX (GPS exchange format)',\n id: 'gpx',\n module: 'kml',\n version: VERSION,\n extensions: ['gpx'],\n mimeTypes: ['application/gpx+xml'],\n text: true,\n tests: [GPX_HEADER],\n parse: async (arrayBuffer, options) =>\n parseTextSync(new TextDecoder().decode(arrayBuffer), options),\n parseTextSync,\n options: {\n gpx: {},\n gis: {format: 'geojson'}\n }\n};\n\nfunction parseTextSync(text: string, options: any) {\n const doc = new DOMParser().parseFromString(text, 'text/xml');\n const geojson = gpx(doc);\n\n switch (options?.gpx?.type) {\n case 'object-row-table':\n return geojson.features;\n default:\n }\n\n switch (options?.gis?.format) {\n case 'geojson':\n return geojson;\n case 'binary':\n return geojsonToBinary(geojson.features);\n case 'raw':\n return doc;\n default:\n throw new Error();\n }\n}\n\nexport const _typecheckGPXLoader = GPXLoader;\n"],"file":"gpx-loader.js"}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":["GPXLoader","KMLLoader","TCXLoader"],"mappings":"AACA,SAAQA,SAAR,QAAwB,cAAxB;AAGA,SAAQC,SAAR,QAAwB,cAAxB;AAGA,SAAQC,SAAR,QAAwB,cAAxB","sourcesContent":["export type {GPXLoaderOptions} from './gpx-loader';\nexport {GPXLoader} from './gpx-loader';\n\nexport type {KMLLoaderOptions} from './kml-loader';\nexport {KMLLoader} from './kml-loader';\n\nexport type {TCXLoaderOptions} from './tcx-loader';\nexport {TCXLoader} from './tcx-loader';\n"],"file":"index.js"}
|
package/dist/kml-loader.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/kml-loader.ts"],"names":["geojsonToBinary","kml","VERSION","KML_HEADER","KMLLoader","name","id","module","version","extensions","mimeTypes","text","tests","parse","arrayBuffer","options","parseTextSync","TextDecoder","decode","gis","format","doc","DOMParser","parseFromString","geojson","type","features","Error","_typecheckKMLLoader"],"mappings":"AACA,SAAQA,eAAR,QAA8B,iBAA9B;AACA,SAAQC,GAAR,QAAkB,iBAAlB;AAIA,MAAMC,OAAO,GAAG,2BAAuB,WAAvB,qBAAmD,QAAnE;AAMA,MAAMC,UAAU,+FAAhB;AAOA,OAAO,MAAMC,SAAS,GAAG;AACvBC,EAAAA,IAAI,EAAE,+BADiB;AAEvBC,EAAAA,EAAE,EAAE,KAFmB;AAGvBC,EAAAA,MAAM,EAAE,KAHe;AAIvBC,EAAAA,OAAO,EAAEN,OAJc;AAKvBO,EAAAA,UAAU,EAAE,CAAC,KAAD,CALW;AAMvBC,EAAAA,SAAS,EAAE,CAAC,sCAAD,CANY;AAOvBC,EAAAA,IAAI,EAAE,IAPiB;AAQvBC,EAAAA,KAAK,EAAE,CAACT,UAAD,CARgB;AASvBU,EAAAA,KAAK,EAAE,OAAOC,WAAP,EAAoBC,OAApB,KACLC,aAAa,CAAC,IAAIC,WAAJ,GAAkBC,MAAlB,CAAyBJ,WAAzB,CAAD,EAAwCC,OAAxC,CAVQ;AAWvBC,EAAAA,aAXuB;AAYvBD,EAAAA,OAAO,EAAE;AACPd,IAAAA,GAAG,EAAE,EADE;AAEPkB,IAAAA,GAAG,EAAE;AAACC,MAAAA,MAAM,EAAE;AAAT;AAFE;AAZc,CAAlB;;AAkBP,SAASJ,aAAT,CAAuBL,IAAvB,EAAqCI,OAArC,EAAmD;AAAA;;AACjD,QAAMM,GAAG,GAAG,IAAIC,SAAJ,GAAgBC,eAAhB,CAAgCZ,IAAhC,EAAsC,UAAtC,CAAZ;AACA,QAAMa,OAAO,GAAGvB,GAAG,CAACoB,GAAD,CAAnB;;AAEA,UAAQN,OAAR,aAAQA,OAAR,uCAAQA,OAAO,CAAEd,GAAjB,iDAAQ,aAAcwB,IAAtB;AACE,SAAK,kBAAL;AACE,aAAOD,OAAO,CAACE,QAAf;;AACF;AAHF;;AAMA,UAAQX,OAAR,aAAQA,OAAR,uCAAQA,OAAO,CAAEI,GAAjB,iDAAQ,aAAcC,MAAtB;AACE,SAAK,SAAL;AACE,aAAOI,OAAP;;AACF,SAAK,QAAL;AACE,aAAOxB,eAAe,CAACwB,OAAO,CAACE,QAAT,CAAtB;;AACF,SAAK,KAAL;AACE,aAAOL,GAAP;;AACF;AACE,YAAM,IAAIM,KAAJ,EAAN;AARJ;AAUD;;AAED,OAAO,MAAMC,mBAAqC,GAAGxB,SAA9C","sourcesContent":["import type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {geojsonToBinary} from '@loaders.gl/gis';\nimport {kml} from '@tmcw/togeojson';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type KMLLoaderOptions = LoaderOptions & {\n kml?: {};\n};\n\nconst KML_HEADER = `\\\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<kml xmlns=\"http://www.opengis.net/kml/2.2\">`;\n\n/**\n * Loader for KML (Keyhole Markup Language)\n */\nexport const KMLLoader = {\n name: 'KML (Keyhole Markup Language)',\n id: 'kml',\n module: 'kml',\n version: VERSION,\n extensions: ['kml'],\n mimeTypes: ['application/vnd.google-earth.kml+xml'],\n text: true,\n tests: [KML_HEADER],\n parse: async (arrayBuffer, options) =>\n parseTextSync(new TextDecoder().decode(arrayBuffer), options),\n parseTextSync,\n options: {\n kml: {},\n gis: {format: 'geojson'}\n }\n};\n\nfunction parseTextSync(text: string, options: any) {\n const doc = new DOMParser().parseFromString(text, 'text/xml');\n const geojson = kml(doc);\n\n switch (options?.kml?.type) {\n case 'object-row-table':\n return geojson.features;\n default:\n }\n\n switch (options?.gis?.format) {\n case 'geojson':\n return geojson;\n case 'binary':\n return geojsonToBinary(geojson.features);\n case 'raw':\n return doc;\n default:\n throw new Error();\n }\n}\n\nexport const _typecheckKMLLoader: LoaderWithParser = KMLLoader;\n"],"file":"kml-loader.js"}
|
package/dist/tcx-loader.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/tcx-loader.ts"],"names":["geojsonToBinary","tcx","VERSION","TCX_HEADER","TCXLoader","name","id","module","version","extensions","mimeTypes","text","tests","parse","arrayBuffer","options","parseTextSync","TextDecoder","decode","gis","format","doc","DOMParser","parseFromString","geojson","type","features","Error","_typecheckTCXLoader"],"mappings":"AACA,SAAQA,eAAR,QAA8B,iBAA9B;AACA,SAAQC,GAAR,QAAkB,iBAAlB;AAIA,MAAMC,OAAO,GAAG,2BAAuB,WAAvB,qBAAmD,QAAnE;AAMA,MAAMC,UAAU,wEAAhB;AAOA,OAAO,MAAMC,SAAS,GAAG;AACvBC,EAAAA,IAAI,EAAE,2BADiB;AAEvBC,EAAAA,EAAE,EAAE,KAFmB;AAGvBC,EAAAA,MAAM,EAAE,KAHe;AAIvBC,EAAAA,OAAO,EAAEN,OAJc;AAKvBO,EAAAA,UAAU,EAAE,CAAC,KAAD,CALW;AAMvBC,EAAAA,SAAS,EAAE,CAAC,gCAAD,CANY;AAOvBC,EAAAA,IAAI,EAAE,IAPiB;AAQvBC,EAAAA,KAAK,EAAE,CAACT,UAAD,CARgB;AASvBU,EAAAA,KAAK,EAAE,OAAOC,WAAP,EAAoBC,OAApB,KACLC,aAAa,CAAC,IAAIC,WAAJ,GAAkBC,MAAlB,CAAyBJ,WAAzB,CAAD,EAAwCC,OAAxC,CAVQ;AAWvBC,EAAAA,aAXuB;AAYvBD,EAAAA,OAAO,EAAE;AACPd,IAAAA,GAAG,EAAE,EADE;AAEPkB,IAAAA,GAAG,EAAE;AAACC,MAAAA,MAAM,EAAE;AAAT;AAFE;AAZc,CAAlB;;AAkBP,SAASJ,aAAT,CAAuBL,IAAvB,EAAqCI,OAAY,GAAG,EAApD,EAAwD;AAAA;;AACtD,QAAMM,GAAG,GAAG,IAAIC,SAAJ,GAAgBC,eAAhB,CAAgCZ,IAAhC,EAAsC,UAAtC,CAAZ;AACA,QAAMa,OAAO,GAAGvB,GAAG,CAACoB,GAAD,CAAnB;;AAEA,UAAQN,OAAR,aAAQA,OAAR,uCAAQA,OAAO,CAAEd,GAAjB,iDAAQ,aAAcwB,IAAtB;AACE,SAAK,kBAAL;AACE,aAAOD,OAAO,CAACE,QAAf;;AACF;AAHF;;AAMA,UAAQX,OAAR,aAAQA,OAAR,uCAAQA,OAAO,CAAEI,GAAjB,iDAAQ,aAAcC,MAAtB;AACE,SAAK,SAAL;AACE,aAAOI,OAAP;;AACF,SAAK,QAAL;AACE,aAAOxB,eAAe,CAACwB,OAAO,CAACE,QAAT,CAAtB;;AACF,SAAK,KAAL;AACE,aAAOL,GAAP;;AACF;AACE,YAAM,IAAIM,KAAJ,EAAN;AARJ;AAUD;;AAED,OAAO,MAAMC,mBAAqC,GAAGxB,SAA9C","sourcesContent":["import type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {geojsonToBinary} from '@loaders.gl/gis';\nimport {tcx} from '@tmcw/togeojson';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type TCXLoaderOptions = LoaderOptions & {\n tcx?: {};\n};\n\nconst TCX_HEADER = `\\\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<TrainingCenterDatabase`;\n\n/**\n * Loader for TCX (Training Center XML) - Garmin GPS track format\n */\nexport const TCXLoader = {\n name: 'TCX (Training Center XML)',\n id: 'tcx',\n module: 'kml',\n version: VERSION,\n extensions: ['tcx'],\n mimeTypes: ['application/vnd.garmin.tcx+xml'],\n text: true,\n tests: [TCX_HEADER],\n parse: async (arrayBuffer, options) =>\n parseTextSync(new TextDecoder().decode(arrayBuffer), options),\n parseTextSync,\n options: {\n tcx: {},\n gis: {format: 'geojson'}\n }\n};\n\nfunction parseTextSync(text: string, options: any = {}) {\n const doc = new DOMParser().parseFromString(text, 'text/xml');\n const geojson = tcx(doc);\n\n switch (options?.tcx?.type) {\n case 'object-row-table':\n return geojson.features;\n default:\n }\n\n switch (options?.gis?.format) {\n case 'geojson':\n return geojson;\n case 'binary':\n return geojsonToBinary(geojson.features);\n case 'raw':\n return doc;\n default:\n throw new Error();\n }\n}\n\nexport const _typecheckTCXLoader: LoaderWithParser = TCXLoader;\n"],"file":"tcx-loader.js"}
|