@loaders.gl/mvt 4.0.0-beta.1 → 4.0.0-beta.3

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.
Files changed (141) hide show
  1. package/dist/{dist.min.js → dist.dev.js} +2353 -1734
  2. package/dist/helpers/binary-util-functions.js.map +1 -0
  3. package/dist/helpers/mapbox-util-functions.js.map +1 -0
  4. package/dist/index.cjs +1800 -0
  5. package/dist/index.d.ts +1 -0
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +5 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/{esm/lib → lib}/binary-vector-tile/vector-tile-feature.js +12 -13
  10. package/dist/lib/binary-vector-tile/vector-tile-feature.js.map +1 -0
  11. package/dist/{esm/lib → lib}/binary-vector-tile/vector-tile-layer.js +9 -10
  12. package/dist/lib/binary-vector-tile/vector-tile-layer.js.map +1 -0
  13. package/dist/{esm/lib/mapbox-vector-tile → lib/binary-vector-tile}/vector-tile.js +2 -3
  14. package/dist/lib/binary-vector-tile/vector-tile.js.map +1 -0
  15. package/dist/{esm/lib → lib}/geojson-tiler/clip.js +4 -5
  16. package/dist/lib/geojson-tiler/clip.js.map +1 -0
  17. package/dist/{esm/lib → lib}/geojson-tiler/convert.js +2 -2
  18. package/dist/lib/geojson-tiler/convert.js.map +1 -0
  19. package/dist/lib/geojson-tiler/feature.js.map +1 -0
  20. package/dist/{esm/lib → lib}/geojson-tiler/geojson-tiler.js +11 -12
  21. package/dist/lib/geojson-tiler/geojson-tiler.js.map +1 -0
  22. package/dist/lib/geojson-tiler/simplify.js.map +1 -0
  23. package/dist/lib/geojson-tiler/tile.js.map +1 -0
  24. package/dist/lib/geojson-tiler/transform.js.map +1 -0
  25. package/dist/{esm/lib → lib}/geojson-tiler/wrap.js +5 -6
  26. package/dist/lib/geojson-tiler/wrap.js.map +1 -0
  27. package/dist/{esm/lib → lib}/mapbox-vector-tile/vector-tile-feature.js +12 -13
  28. package/dist/lib/mapbox-vector-tile/vector-tile-feature.js.map +1 -0
  29. package/dist/{esm/lib → lib}/mapbox-vector-tile/vector-tile-layer.js +9 -10
  30. package/dist/lib/mapbox-vector-tile/vector-tile-layer.js.map +1 -0
  31. package/dist/{esm/lib/binary-vector-tile → lib/mapbox-vector-tile}/vector-tile.js +2 -3
  32. package/dist/lib/mapbox-vector-tile/vector-tile.js.map +1 -0
  33. package/dist/{esm/lib → lib}/parse-mvt.js +2 -2
  34. package/dist/lib/parse-mvt.js.map +1 -0
  35. package/dist/lib/parse-tilejson.js.map +1 -0
  36. package/dist/lib/types.js.map +1 -0
  37. package/dist/{esm/mvt-loader.js → mvt-loader.js} +2 -2
  38. package/dist/mvt-loader.js.map +1 -0
  39. package/dist/mvt-source.d.ts +28 -0
  40. package/dist/mvt-source.d.ts.map +1 -0
  41. package/dist/mvt-source.js +100 -0
  42. package/dist/mvt-source.js.map +1 -0
  43. package/dist/mvt-worker.js +267 -103
  44. package/dist/{esm/tilejson-loader.js → tilejson-loader.js} +2 -2
  45. package/dist/tilejson-loader.js.map +1 -0
  46. package/dist/{esm/workers → workers}/mvt-worker.js +1 -1
  47. package/dist/workers/mvt-worker.js.map +1 -0
  48. package/package.json +19 -10
  49. package/src/index.ts +2 -0
  50. package/src/mvt-source.ts +110 -0
  51. package/dist/bundle.d.ts +0 -2
  52. package/dist/bundle.d.ts.map +0 -1
  53. package/dist/es5/bundle.js +0 -6
  54. package/dist/es5/bundle.js.map +0 -1
  55. package/dist/es5/helpers/binary-util-functions.js +0 -82
  56. package/dist/es5/helpers/binary-util-functions.js.map +0 -1
  57. package/dist/es5/helpers/mapbox-util-functions.js +0 -50
  58. package/dist/es5/helpers/mapbox-util-functions.js.map +0 -1
  59. package/dist/es5/index.js +0 -33
  60. package/dist/es5/index.js.map +0 -1
  61. package/dist/es5/lib/binary-vector-tile/vector-tile-feature.js +0 -168
  62. package/dist/es5/lib/binary-vector-tile/vector-tile-feature.js.map +0 -1
  63. package/dist/es5/lib/binary-vector-tile/vector-tile-layer.js +0 -62
  64. package/dist/es5/lib/binary-vector-tile/vector-tile-layer.js.map +0 -1
  65. package/dist/es5/lib/binary-vector-tile/vector-tile.js +0 -28
  66. package/dist/es5/lib/binary-vector-tile/vector-tile.js.map +0 -1
  67. package/dist/es5/lib/geojson-tiler/clip.js +0 -237
  68. package/dist/es5/lib/geojson-tiler/clip.js.map +0 -1
  69. package/dist/es5/lib/geojson-tiler/convert.js +0 -161
  70. package/dist/es5/lib/geojson-tiler/convert.js.map +0 -1
  71. package/dist/es5/lib/geojson-tiler/feature.js +0 -62
  72. package/dist/es5/lib/geojson-tiler/feature.js.map +0 -1
  73. package/dist/es5/lib/geojson-tiler/geojson-tiler.js +0 -186
  74. package/dist/es5/lib/geojson-tiler/geojson-tiler.js.map +0 -1
  75. package/dist/es5/lib/geojson-tiler/simplify.js +0 -52
  76. package/dist/es5/lib/geojson-tiler/simplify.js.map +0 -1
  77. package/dist/es5/lib/geojson-tiler/tile.js +0 -121
  78. package/dist/es5/lib/geojson-tiler/tile.js.map +0 -1
  79. package/dist/es5/lib/geojson-tiler/transform.js +0 -50
  80. package/dist/es5/lib/geojson-tiler/transform.js.map +0 -1
  81. package/dist/es5/lib/geojson-tiler/wrap.js +0 -122
  82. package/dist/es5/lib/geojson-tiler/wrap.js.map +0 -1
  83. package/dist/es5/lib/mapbox-vector-tile/vector-tile-feature.js +0 -184
  84. package/dist/es5/lib/mapbox-vector-tile/vector-tile-feature.js.map +0 -1
  85. package/dist/es5/lib/mapbox-vector-tile/vector-tile-layer.js +0 -62
  86. package/dist/es5/lib/mapbox-vector-tile/vector-tile-layer.js.map +0 -1
  87. package/dist/es5/lib/mapbox-vector-tile/vector-tile.js +0 -28
  88. package/dist/es5/lib/mapbox-vector-tile/vector-tile.js.map +0 -1
  89. package/dist/es5/lib/parse-mvt.js +0 -144
  90. package/dist/es5/lib/parse-mvt.js.map +0 -1
  91. package/dist/es5/lib/parse-tilejson.js +0 -186
  92. package/dist/es5/lib/parse-tilejson.js.map +0 -1
  93. package/dist/es5/lib/types.js +0 -2
  94. package/dist/es5/lib/types.js.map +0 -1
  95. package/dist/es5/mvt-loader.js +0 -57
  96. package/dist/es5/mvt-loader.js.map +0 -1
  97. package/dist/es5/tilejson-loader.js +0 -50
  98. package/dist/es5/tilejson-loader.js.map +0 -1
  99. package/dist/es5/workers/mvt-worker.js +0 -6
  100. package/dist/es5/workers/mvt-worker.js.map +0 -1
  101. package/dist/esm/bundle.js +0 -4
  102. package/dist/esm/bundle.js.map +0 -1
  103. package/dist/esm/helpers/binary-util-functions.js.map +0 -1
  104. package/dist/esm/helpers/mapbox-util-functions.js.map +0 -1
  105. package/dist/esm/index.js +0 -4
  106. package/dist/esm/index.js.map +0 -1
  107. package/dist/esm/lib/binary-vector-tile/LICENSE.txt +0 -31
  108. package/dist/esm/lib/binary-vector-tile/vector-tile-feature.js.map +0 -1
  109. package/dist/esm/lib/binary-vector-tile/vector-tile-layer.js.map +0 -1
  110. package/dist/esm/lib/binary-vector-tile/vector-tile.js.map +0 -1
  111. package/dist/esm/lib/geojson-tiler/LICENSE +0 -19
  112. package/dist/esm/lib/geojson-tiler/clip.js.map +0 -1
  113. package/dist/esm/lib/geojson-tiler/convert.js.map +0 -1
  114. package/dist/esm/lib/geojson-tiler/feature.js.map +0 -1
  115. package/dist/esm/lib/geojson-tiler/geojson-tiler.js.map +0 -1
  116. package/dist/esm/lib/geojson-tiler/simplify.js.map +0 -1
  117. package/dist/esm/lib/geojson-tiler/tile.js.map +0 -1
  118. package/dist/esm/lib/geojson-tiler/transform.js.map +0 -1
  119. package/dist/esm/lib/geojson-tiler/wrap.js.map +0 -1
  120. package/dist/esm/lib/mapbox-vector-tile/LICENSE.txt +0 -31
  121. package/dist/esm/lib/mapbox-vector-tile/vector-tile-feature.js.map +0 -1
  122. package/dist/esm/lib/mapbox-vector-tile/vector-tile-layer.js.map +0 -1
  123. package/dist/esm/lib/mapbox-vector-tile/vector-tile.js.map +0 -1
  124. package/dist/esm/lib/parse-mvt.js.map +0 -1
  125. package/dist/esm/lib/parse-tilejson.js.map +0 -1
  126. package/dist/esm/lib/types.js.map +0 -1
  127. package/dist/esm/mvt-loader.js.map +0 -1
  128. package/dist/esm/tilejson-loader.js.map +0 -1
  129. package/dist/esm/workers/mvt-worker.js.map +0 -1
  130. package/src/bundle.ts +0 -4
  131. /package/dist/{esm/helpers → helpers}/binary-util-functions.js +0 -0
  132. /package/dist/{esm/helpers → helpers}/mapbox-util-functions.js +0 -0
  133. /package/dist/{es5/lib → lib}/binary-vector-tile/LICENSE.txt +0 -0
  134. /package/dist/{es5/lib → lib}/geojson-tiler/LICENSE +0 -0
  135. /package/dist/{esm/lib → lib}/geojson-tiler/feature.js +0 -0
  136. /package/dist/{esm/lib → lib}/geojson-tiler/simplify.js +0 -0
  137. /package/dist/{esm/lib → lib}/geojson-tiler/tile.js +0 -0
  138. /package/dist/{esm/lib → lib}/geojson-tiler/transform.js +0 -0
  139. /package/dist/{es5/lib → lib}/mapbox-vector-tile/LICENSE.txt +0 -0
  140. /package/dist/{esm/lib → lib}/parse-tilejson.js +0 -0
  141. /package/dist/{esm/lib → lib}/types.js +0 -0
@@ -1,5 +1,5 @@
1
- import { parseTileJSON } from './lib/parse-tilejson';
2
- const VERSION = typeof "4.0.0-beta.1" !== 'undefined' ? "4.0.0-beta.1" : 'latest';
1
+ import { parseTileJSON } from "./lib/parse-tilejson.js";
2
+ const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';
3
3
  export const TileJSONLoader = {
4
4
  name: 'TileJSON',
5
5
  id: 'tilejson',
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tilejson-loader.js","names":["parseTileJSON","VERSION","__VERSION__","TileJSONLoader","name","id","module","version","worker","extensions","mimeTypes","text","options","tilejson","parse","arrayBuffer","jsonString","TextDecoder","decode","json","JSON","parseTextSync"],"sources":["../src/tilejson-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport type {TileJSON} from './lib/parse-tilejson';\nimport {parseTileJSON} from './lib/parse-tilejson';\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 TileJSONLoaderOptions = LoaderOptions & {\n tilejson?: {};\n};\n\n/**\n * Loader for TileJSON metadata\n */\nexport const TileJSONLoader: LoaderWithParser<TileJSON, never, TileJSONLoaderOptions> = {\n name: 'TileJSON',\n id: 'tilejson',\n module: 'pmtiles',\n version: VERSION,\n worker: true,\n extensions: ['json'],\n mimeTypes: ['application/json'],\n text: true,\n options: {\n tilejson: {}\n },\n parse: async (arrayBuffer, options) => {\n const jsonString = new TextDecoder().decode(arrayBuffer);\n const json = JSON.parse(jsonString);\n return parseTileJSON(json) as TileJSON;\n },\n parseTextSync: (text, options) => {\n const json = JSON.parse(text);\n return parseTileJSON(json) as TileJSON;\n }\n};\n"],"mappings":"SAIQA,aAAa;AAIrB,MAAMC,OAAO,GAAG,OAAOC,WAAW,KAAK,WAAW,GAAGA,WAAW,GAAG,QAAQ;AAS3E,OAAO,MAAMC,cAAwE,GAAG;EACtFC,IAAI,EAAE,UAAU;EAChBC,EAAE,EAAE,UAAU;EACdC,MAAM,EAAE,SAAS;EACjBC,OAAO,EAAEN,OAAO;EAChBO,MAAM,EAAE,IAAI;EACZC,UAAU,EAAE,CAAC,MAAM,CAAC;EACpBC,SAAS,EAAE,CAAC,kBAAkB,CAAC;EAC/BC,IAAI,EAAE,IAAI;EACVC,OAAO,EAAE;IACPC,QAAQ,EAAE,CAAC;EACb,CAAC;EACDC,KAAK,EAAE,MAAAA,CAAOC,WAAW,EAAEH,OAAO,KAAK;IACrC,MAAMI,UAAU,GAAG,IAAIC,WAAW,CAAC,CAAC,CAACC,MAAM,CAACH,WAAW,CAAC;IACxD,MAAMI,IAAI,GAAGC,IAAI,CAACN,KAAK,CAACE,UAAU,CAAC;IACnC,OAAOhB,aAAa,CAACmB,IAAI,CAAC;EAC5B,CAAC;EACDE,aAAa,EAAEA,CAACV,IAAI,EAAEC,OAAO,KAAK;IAChC,MAAMO,IAAI,GAAGC,IAAI,CAACN,KAAK,CAACH,IAAI,CAAC;IAC7B,OAAOX,aAAa,CAACmB,IAAI,CAAC;EAC5B;AACF,CAAC"}
@@ -1,4 +1,4 @@
1
- import { MVTLoader } from '../mvt-loader';
1
+ import { MVTLoader } from "../mvt-loader.js";
2
2
  import { createLoaderWorker } from '@loaders.gl/loader-utils';
3
3
  createLoaderWorker(MVTLoader);
4
4
  //# sourceMappingURL=mvt-worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mvt-worker.js","names":["MVTLoader","createLoaderWorker"],"sources":["../../src/workers/mvt-worker.ts"],"sourcesContent":["import {MVTLoader} from '../mvt-loader';\nimport {createLoaderWorker} from '@loaders.gl/loader-utils';\n\ncreateLoaderWorker(MVTLoader);\n"],"mappings":"SAAQA,SAAS;AACjB,SAAQC,kBAAkB,QAAO,0BAA0B;AAE3DA,kBAAkB,CAACD,SAAS,CAAC"}
package/package.json CHANGED
@@ -1,8 +1,9 @@
1
1
  {
2
2
  "name": "@loaders.gl/mvt",
3
3
  "description": "Loader for Mapbox Vector Tiles",
4
- "version": "4.0.0-beta.1",
4
+ "version": "4.0.0-beta.3",
5
5
  "license": "MIT",
6
+ "type": "module",
6
7
  "publishConfig": {
7
8
  "access": "public"
8
9
  },
@@ -18,8 +19,15 @@
18
19
  "Mapbox Vector Tiles"
19
20
  ],
20
21
  "types": "dist/index.d.ts",
21
- "main": "dist/es5/index.js",
22
- "module": "dist/esm/index.js",
22
+ "main": "dist/index.cjs",
23
+ "module": "dist/index.js",
24
+ "exports": {
25
+ ".": {
26
+ "import": "./dist/index.js",
27
+ "require": "./dist/index.cjs",
28
+ "types": "./dist/index.d.ts"
29
+ }
30
+ },
23
31
  "sideEffects": false,
24
32
  "files": [
25
33
  "src",
@@ -27,19 +35,20 @@
27
35
  "README.md"
28
36
  ],
29
37
  "scripts": {
30
- "pre-build": "npm run build-worker && npm run build-worker --env.dev && npm run build-bundle",
31
- "build-bundle": "esbuild src/bundle.ts --bundle --outfile=dist/dist.min.js",
38
+ "pre-build": "npm run build-worker && npm run build-worker --env.dev && npm run build-bundle && npm run build-bundle -- --env=dev",
39
+ "build-bundle": "ocular-bundle ./src/index.ts",
32
40
  "build-worker": "esbuild src/workers/mvt-worker.ts --bundle --outfile=dist/mvt-worker.js --define:__VERSION__=\\\"$npm_package_version\\\""
33
41
  },
34
42
  "dependencies": {
35
- "@loaders.gl/gis": "4.0.0-beta.1",
36
- "@loaders.gl/loader-utils": "4.0.0-beta.1",
37
- "@loaders.gl/schema": "4.0.0-beta.1",
38
- "@math.gl/polygon": "^3.5.1",
43
+ "@loaders.gl/gis": "4.0.0-beta.3",
44
+ "@loaders.gl/images": "4.0.0-beta.3",
45
+ "@loaders.gl/loader-utils": "4.0.0-beta.3",
46
+ "@loaders.gl/schema": "4.0.0-beta.3",
47
+ "@math.gl/polygon": "^4.0.0",
39
48
  "pbf": "^3.2.1"
40
49
  },
41
50
  "devDependencies": {
42
51
  "@types/pbf": "^3.0.2"
43
52
  },
44
- "gitHead": "35c625e67132b0784e597d9ddabae8aefea29ff2"
53
+ "gitHead": "7ba9621cc51c7a26c407086ac86171f35b8712af"
45
54
  }
package/src/index.ts CHANGED
@@ -7,6 +7,8 @@ export type {TileJSON} from './lib/parse-tilejson';
7
7
  export type {TileJSONLoaderOptions} from './tilejson-loader';
8
8
  export {TileJSONLoader} from './tilejson-loader';
9
9
 
10
+ export {MVTSource} from './mvt-source';
11
+
10
12
  // GeoJSONTiler
11
13
 
12
14
  export type {GeoJSONTilerOptions} from './lib/geojson-tiler/geojson-tiler';
@@ -0,0 +1,110 @@
1
+ // loaders.gl, MIT license
2
+
3
+ import type {GetTileParameters, ImageType, DataSourceProps} from '@loaders.gl/loader-utils';
4
+ import type {ImageTileSource, VectorTileSource} from '@loaders.gl/loader-utils';
5
+ import {DataSource, resolvePath} from '@loaders.gl/loader-utils';
6
+ import {ImageLoader} from '@loaders.gl/images';
7
+ import {MVTLoader, MVTLoaderOptions, TileJSONLoader, TileJSON} from '@loaders.gl/mvt';
8
+
9
+ import {TileLoadParameters} from '@loaders.gl/loader-utils';
10
+
11
+ export type MVTSourceProps = DataSourceProps & {
12
+ url: string;
13
+ attributions?: string[];
14
+ };
15
+
16
+ /**
17
+ * A PMTiles data source
18
+ * @note Can be either a raster or vector tile source depending on the contents of the PMTiles file.
19
+ */
20
+ export class MVTSource extends DataSource implements ImageTileSource, VectorTileSource {
21
+ props: MVTSourceProps;
22
+ url: string;
23
+ schema: 'tms' | 'xyz' = 'tms';
24
+ metadata: Promise<TileJSON | null>;
25
+
26
+ constructor(props: MVTSourceProps) {
27
+ super(props);
28
+ this.props = props;
29
+ this.url = resolvePath(props.url);
30
+ this.getTileData = this.getTileData.bind(this);
31
+ this.metadata = this.getMetadata();
32
+ }
33
+
34
+ // @ts-ignore - Metadata type misalignment
35
+ async getMetadata(): Promise<TileJSON | null> {
36
+ const metadataUrl = this.getMetadataUrl();
37
+ const response = await this.fetch(metadataUrl);
38
+ if (!response.ok) {
39
+ return null;
40
+ }
41
+ const tileJSON = await response.text();
42
+ const metadata = TileJSONLoader.parseTextSync?.(JSON.stringify(tileJSON)) || null;
43
+ // metadata.attributions = [...this.props.attributions, ...(metadata.attributions || [])];
44
+ return metadata;
45
+ }
46
+
47
+ async getTile(tileParams: GetTileParameters): Promise<ArrayBuffer | null> {
48
+ const {x, y, zoom: z} = tileParams;
49
+ const tileUrl = this.getTileURL(x, y, z);
50
+ const response = await this.fetch(tileUrl);
51
+ if (!response.ok) {
52
+ return null;
53
+ }
54
+ const arrayBuffer = await response.arrayBuffer();
55
+ return arrayBuffer;
56
+ }
57
+
58
+ // Tile Source interface implementation: deck.gl compatible API
59
+ // TODO - currently only handles image tiles, not vector tiles
60
+
61
+ async getTileData(tileParams: TileLoadParameters): Promise<unknown | null> {
62
+ const {x, y, z} = tileParams.index;
63
+ const metadata = await this.metadata;
64
+ // @ts-expect-error
65
+ switch (metadata.mimeType || 'application/vnd.mapbox-vector-tile') {
66
+ case 'application/vnd.mapbox-vector-tile':
67
+ return await this.getVectorTile({x, y, zoom: z, layers: []});
68
+ default:
69
+ return await this.getImageTile({x, y, zoom: z, layers: []});
70
+ }
71
+ }
72
+
73
+ // ImageTileSource interface implementation
74
+
75
+ async getImageTile(tileParams: GetTileParameters): Promise<ImageType | null> {
76
+ const arrayBuffer = await this.getTile(tileParams);
77
+ return arrayBuffer ? await ImageLoader.parse(arrayBuffer, this.loadOptions) : null;
78
+ }
79
+
80
+ // VectorTileSource interface implementation
81
+
82
+ async getVectorTile(tileParams: GetTileParameters): Promise<unknown | null> {
83
+ const arrayBuffer = await this.getTile(tileParams);
84
+ const loadOptions: MVTLoaderOptions = {
85
+ shape: 'geojson-table',
86
+ mvt: {
87
+ coordinates: 'wgs84',
88
+ tileIndex: {x: tileParams.x, y: tileParams.y, z: tileParams.zoom},
89
+ ...(this.loadOptions as MVTLoaderOptions)?.mvt
90
+ },
91
+ ...this.loadOptions
92
+ };
93
+
94
+ return arrayBuffer ? await MVTLoader.parse(arrayBuffer, loadOptions) : null;
95
+ }
96
+
97
+ getMetadataUrl(): string {
98
+ return `${this.url}/tilejson.json`;
99
+ }
100
+
101
+ getTileURL(x: number, y: number, z: number) {
102
+ switch (this.schema) {
103
+ case 'xyz':
104
+ return `${this.url}/${x}/${y}/${z}`;
105
+ case 'tms':
106
+ default:
107
+ return `${this.url}/${z}/${x}/${y}`;
108
+ }
109
+ }
110
+ }
package/dist/bundle.d.ts DELETED
@@ -1,2 +0,0 @@
1
- declare const moduleExports: any;
2
- //# sourceMappingURL=bundle.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"AACA,QAAA,MAAM,aAAa,KAAqB,CAAC"}
@@ -1,6 +0,0 @@
1
- "use strict";
2
-
3
- var moduleExports = require('./index');
4
- globalThis.loaders = globalThis.loaders || {};
5
- module.exports = Object.assign(globalThis.loaders, moduleExports);
6
- //# sourceMappingURL=bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bundle.js","names":["moduleExports","require","globalThis","loaders","module","exports","Object","assign"],"sources":["../../src/bundle.ts"],"sourcesContent":["// @ts-nocheck\nconst moduleExports = require('./index');\nglobalThis.loaders = globalThis.loaders || {};\nmodule.exports = Object.assign(globalThis.loaders, moduleExports);\n"],"mappings":";;AACA,IAAMA,aAAa,GAAGC,OAAO,CAAC,SAAS,CAAC;AACxCC,UAAU,CAACC,OAAO,GAAGD,UAAU,CAACC,OAAO,IAAI,CAAC,CAAC;AAC7CC,MAAM,CAACC,OAAO,GAAGC,MAAM,CAACC,MAAM,CAACL,UAAU,CAACC,OAAO,EAAEH,aAAa,CAAC"}
@@ -1,82 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.classifyRings = classifyRings;
7
- exports.project = project;
8
- exports.readFeature = readFeature;
9
- exports.readTag = readTag;
10
- var _polygon = require("@math.gl/polygon");
11
- function classifyRings(geom) {
12
- var len = geom.indices.length;
13
- var type = 'Polygon';
14
- if (len <= 1) {
15
- return {
16
- type: type,
17
- data: geom.data,
18
- areas: [[(0, _polygon.getPolygonSignedArea)(geom.data)]],
19
- indices: [geom.indices]
20
- };
21
- }
22
- var areas = [];
23
- var polygons = [];
24
- var ringAreas = [];
25
- var polygon = [];
26
- var ccw;
27
- var offset = 0;
28
- for (var endIndex, i = 0, startIndex; i < len; i++) {
29
- startIndex = geom.indices[i] - offset;
30
- endIndex = geom.indices[i + 1] - offset || geom.data.length;
31
- var shape = geom.data.slice(startIndex, endIndex);
32
- var area = (0, _polygon.getPolygonSignedArea)(shape);
33
- if (area === 0) {
34
- var before = geom.data.slice(0, startIndex);
35
- var after = geom.data.slice(endIndex);
36
- geom.data = before.concat(after);
37
- offset += endIndex - startIndex;
38
- continue;
39
- }
40
- if (ccw === undefined) ccw = area < 0;
41
- if (ccw === area < 0) {
42
- if (polygon.length) {
43
- areas.push(ringAreas);
44
- polygons.push(polygon);
45
- }
46
- polygon = [startIndex];
47
- ringAreas = [area];
48
- } else {
49
- ringAreas.push(area);
50
- polygon.push(startIndex);
51
- }
52
- }
53
- if (ringAreas) areas.push(ringAreas);
54
- if (polygon.length) polygons.push(polygon);
55
- return {
56
- type: type,
57
- areas: areas,
58
- indices: polygons,
59
- data: geom.data
60
- };
61
- }
62
- function project(data, x0, y0, size) {
63
- for (var j = 0, jl = data.length; j < jl; j += 2) {
64
- data[j] = (data[j] + x0) * 360 / size - 180;
65
- var y2 = 180 - (data[j + 1] + y0) * 360 / size;
66
- data[j + 1] = 360 / Math.PI * Math.atan(Math.exp(y2 * Math.PI / 180)) - 90;
67
- }
68
- }
69
- function readFeature(tag, feature, pbf) {
70
- if (feature && pbf) {
71
- if (tag === 1) feature.id = pbf.readVarint();else if (tag === 2) readTag(pbf, feature);else if (tag === 3) feature.type = pbf.readVarint();else if (tag === 4) feature._geometry = pbf.pos;
72
- }
73
- }
74
- function readTag(pbf, feature) {
75
- var end = pbf.readVarint() + pbf.pos;
76
- while (pbf.pos < end) {
77
- var key = feature._keys[pbf.readVarint()];
78
- var value = feature._values[pbf.readVarint()];
79
- feature.properties[key] = value;
80
- }
81
- }
82
- //# sourceMappingURL=binary-util-functions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"binary-util-functions.js","names":["_polygon","require","classifyRings","geom","len","indices","length","type","data","areas","getPolygonSignedArea","polygons","ringAreas","polygon","ccw","offset","endIndex","i","startIndex","shape","slice","area","before","after","concat","undefined","push","project","x0","y0","size","j","jl","y2","Math","PI","atan","exp","readFeature","tag","feature","pbf","id","readVarint","readTag","_geometry","pos","end","key","_keys","value","_values","properties"],"sources":["../../../src/helpers/binary-util-functions.ts"],"sourcesContent":["import Protobuf from 'pbf';\nimport {getPolygonSignedArea} from '@math.gl/polygon';\nimport {FlatIndexedGeometry, FlatPolygon} from '@loaders.gl/schema';\nimport VectorTileFeature from '../lib/binary-vector-tile/vector-tile-feature';\n\n/**\n * Classifies an array of rings into polygons with outer rings and holes\n * The function also detects holes which have zero area and\n * removes them. In doing so it modifies the input\n * `geom.data` array to remove the unneeded data\n *\n * @param geometry\n * @returns object\n */\n// eslint-disable-next-line max-statements\nexport function classifyRings(geom: FlatIndexedGeometry): FlatPolygon {\n const len = geom.indices.length;\n const type = 'Polygon';\n\n if (len <= 1) {\n return {\n type,\n data: geom.data,\n areas: [[getPolygonSignedArea(geom.data)]],\n indices: [geom.indices]\n };\n }\n\n const areas: any[] = [];\n const polygons: any[] = [];\n let ringAreas: number[] = [];\n let polygon: number[] = [];\n let ccw: boolean | undefined;\n let offset = 0;\n\n for (let endIndex: number, i = 0, startIndex: number; i < len; i++) {\n startIndex = geom.indices[i] - offset;\n\n endIndex = geom.indices[i + 1] - offset || geom.data.length;\n const shape = geom.data.slice(startIndex, endIndex);\n const area = getPolygonSignedArea(shape);\n\n if (area === 0) {\n // This polygon has no area, so remove it from the shape\n // Remove the section from the data array\n const before = geom.data.slice(0, startIndex);\n const after = geom.data.slice(endIndex);\n geom.data = before.concat(after);\n\n // Need to offset any remaining indices as we have\n // modified the data buffer\n offset += endIndex - startIndex;\n\n // Do not add this index to the output and process next shape\n continue; // eslint-disable-line no-continue\n }\n\n if (ccw === undefined) ccw = area < 0;\n\n if (ccw === area < 0) {\n if (polygon.length) {\n areas.push(ringAreas);\n polygons.push(polygon);\n }\n polygon = [startIndex];\n ringAreas = [area];\n } else {\n ringAreas.push(area);\n polygon.push(startIndex);\n }\n }\n if (ringAreas) areas.push(ringAreas);\n if (polygon.length) polygons.push(polygon);\n\n return {type, areas, indices: polygons, data: geom.data};\n}\n\n/**\n *\n * @param data\n * @param x0\n * @param y0\n * @param size\n */\nexport function project(data: number[], x0: number, y0: number, size: number): void {\n for (let j = 0, jl = data.length; j < jl; j += 2) {\n data[j] = ((data[j] + x0) * 360) / size - 180;\n const y2 = 180 - ((data[j + 1] + y0) * 360) / size;\n data[j + 1] = (360 / Math.PI) * Math.atan(Math.exp((y2 * Math.PI) / 180)) - 90;\n }\n}\n\n/**\n * All code below is unchanged from the original Mapbox implemenation\n *\n * @param tag\n * @param feature\n * @param pbf\n */\nexport function readFeature(tag: number, feature?: VectorTileFeature, pbf?: Protobuf): void {\n if (feature && pbf) {\n if (tag === 1) feature.id = pbf.readVarint();\n else if (tag === 2) readTag(pbf, feature);\n else if (tag === 3) feature.type = pbf.readVarint();\n else if (tag === 4) feature._geometry = pbf.pos;\n }\n}\n\n/**\n * @param pbf\n * @param feature\n */\nexport function readTag(pbf: Protobuf, feature: VectorTileFeature): void {\n const end = pbf.readVarint() + pbf.pos;\n\n while (pbf.pos < end) {\n const key = feature._keys[pbf.readVarint()];\n const value = feature._values[pbf.readVarint()];\n feature.properties[key] = value;\n }\n}\n"],"mappings":"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"}
@@ -1,50 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.classifyRings = classifyRings;
7
- exports.readFeature = readFeature;
8
- exports.readTag = readTag;
9
- exports.signedArea = signedArea;
10
- function classifyRings(rings) {
11
- var len = rings.length;
12
- if (len <= 1) return [rings];
13
- var polygons = [];
14
- var polygon;
15
- var ccw;
16
- for (var i = 0; i < len; i++) {
17
- var area = signedArea(rings[i]);
18
- if (area === 0) continue;
19
- if (ccw === undefined) ccw = area < 0;
20
- if (ccw === area < 0) {
21
- if (polygon) polygons.push(polygon);
22
- polygon = [rings[i]];
23
- } else if (polygon) polygon.push(rings[i]);
24
- }
25
- if (polygon) polygons.push(polygon);
26
- return polygons;
27
- }
28
- function signedArea(ring) {
29
- var sum = 0;
30
- for (var i = 0, j = ring.length - 1, p1, p2; i < ring.length; j = i++) {
31
- p1 = ring[i];
32
- p2 = ring[j];
33
- sum += (p2[0] - p1[0]) * (p1[1] + p2[1]);
34
- }
35
- return sum;
36
- }
37
- function readFeature(tag, feature, pbf) {
38
- if (feature && pbf) {
39
- if (tag === 1) feature.id = pbf.readVarint();else if (tag === 2) readTag(pbf, feature);else if (tag === 3) feature.type = pbf.readVarint();else if (tag === 4) feature._geometry = pbf.pos;
40
- }
41
- }
42
- function readTag(pbf, feature) {
43
- var end = pbf.readVarint() + pbf.pos;
44
- while (pbf.pos < end) {
45
- var key = feature._keys[pbf.readVarint()];
46
- var value = feature._values[pbf.readVarint()];
47
- feature.properties[key] = value;
48
- }
49
- }
50
- //# sourceMappingURL=mapbox-util-functions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mapbox-util-functions.js","names":["classifyRings","rings","len","length","polygons","polygon","ccw","i","area","signedArea","undefined","push","ring","sum","j","p1","p2","readFeature","tag","feature","pbf","id","readVarint","readTag","type","_geometry","pos","end","key","_keys","value","_values","properties"],"sources":["../../../src/helpers/mapbox-util-functions.ts"],"sourcesContent":["import Protobuf from 'pbf';\nimport {MVTMapboxGeometry} from '../lib/types';\nimport VectorTileFeature from '../lib/mapbox-vector-tile/vector-tile-feature';\n\n/**\n * Classifies an array of rings into polygons with outer rings and holes\n * @param rings\n * @returns polygons\n */\nexport function classifyRings(rings: MVTMapboxGeometry) {\n const len = rings.length;\n\n if (len <= 1) return [rings];\n\n const polygons: number[][][] = [];\n let polygon: number[][] | undefined;\n let ccw: boolean | undefined;\n\n for (let i = 0; i < len; i++) {\n const area = signedArea(rings[i]);\n if (area === 0) continue; // eslint-disable-line no-continue\n\n if (ccw === undefined) ccw = area < 0;\n\n if (ccw === area < 0) {\n if (polygon) polygons.push(polygon);\n polygon = [rings[i]];\n } else if (polygon) polygon.push(rings[i]);\n }\n if (polygon) polygons.push(polygon);\n\n return polygons;\n}\n\n/**\n *\n * @param ring\n * @returns sum\n */\nexport function signedArea(ring: number[][]) {\n let sum = 0;\n for (let i = 0, j = ring.length - 1, p1: number[], p2: number[]; i < ring.length; j = i++) {\n p1 = ring[i];\n p2 = ring[j];\n sum += (p2[0] - p1[0]) * (p1[1] + p2[1]);\n }\n return sum;\n}\n\n/**\n *\n * @param tag\n * @param feature\n * @param pbf\n */\nexport function readFeature(tag: number, feature?: VectorTileFeature, pbf?: Protobuf): void {\n if (feature && pbf) {\n if (tag === 1) feature.id = pbf.readVarint();\n else if (tag === 2) readTag(pbf, feature);\n else if (tag === 3) feature.type = pbf.readVarint();\n else if (tag === 4) feature._geometry = pbf.pos;\n }\n}\n\n/**\n *\n * @param pbf\n * @param feature\n */\nexport function readTag(pbf: Protobuf, feature: VectorTileFeature): void {\n const end = pbf.readVarint() + pbf.pos;\n\n while (pbf.pos < end) {\n const key = feature._keys[pbf.readVarint()];\n const value = feature._values[pbf.readVarint()];\n feature.properties[key] = value;\n }\n}\n"],"mappings":";;;;;;;;;AASO,SAASA,aAAaA,CAACC,KAAwB,EAAE;EACtD,IAAMC,GAAG,GAAGD,KAAK,CAACE,MAAM;EAExB,IAAID,GAAG,IAAI,CAAC,EAAE,OAAO,CAACD,KAAK,CAAC;EAE5B,IAAMG,QAAsB,GAAG,EAAE;EACjC,IAAIC,OAA+B;EACnC,IAAIC,GAAwB;EAE5B,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,GAAG,EAAEK,CAAC,EAAE,EAAE;IAC5B,IAAMC,IAAI,GAAGC,UAAU,CAACR,KAAK,CAACM,CAAC,CAAC,CAAC;IACjC,IAAIC,IAAI,KAAK,CAAC,EAAE;IAEhB,IAAIF,GAAG,KAAKI,SAAS,EAAEJ,GAAG,GAAGE,IAAI,GAAG,CAAC;IAErC,IAAIF,GAAG,KAAKE,IAAI,GAAG,CAAC,EAAE;MACpB,IAAIH,OAAO,EAAED,QAAQ,CAACO,IAAI,CAACN,OAAO,CAAC;MACnCA,OAAO,GAAG,CAACJ,KAAK,CAACM,CAAC,CAAC,CAAC;IACtB,CAAC,MAAM,IAAIF,OAAO,EAAEA,OAAO,CAACM,IAAI,CAACV,KAAK,CAACM,CAAC,CAAC,CAAC;EAC5C;EACA,IAAIF,OAAO,EAAED,QAAQ,CAACO,IAAI,CAACN,OAAO,CAAC;EAEnC,OAAOD,QAAQ;AACjB;AAOO,SAASK,UAAUA,CAACG,IAAgB,EAAE;EAC3C,IAAIC,GAAG,GAAG,CAAC;EACX,KAAK,IAAIN,CAAC,GAAG,CAAC,EAAEO,CAAC,GAAGF,IAAI,CAACT,MAAM,GAAG,CAAC,EAAEY,EAAY,EAAEC,EAAY,EAAET,CAAC,GAAGK,IAAI,CAACT,MAAM,EAAEW,CAAC,GAAGP,CAAC,EAAE,EAAE;IACzFQ,EAAE,GAAGH,IAAI,CAACL,CAAC,CAAC;IACZS,EAAE,GAAGJ,IAAI,CAACE,CAAC,CAAC;IACZD,GAAG,IAAI,CAACG,EAAE,CAAC,CAAC,CAAC,GAAGD,EAAE,CAAC,CAAC,CAAC,KAAKA,EAAE,CAAC,CAAC,CAAC,GAAGC,EAAE,CAAC,CAAC,CAAC,CAAC;EAC1C;EACA,OAAOH,GAAG;AACZ;AAQO,SAASI,WAAWA,CAACC,GAAW,EAAEC,OAA2B,EAAEC,GAAc,EAAQ;EAC1F,IAAID,OAAO,IAAIC,GAAG,EAAE;IAClB,IAAIF,GAAG,KAAK,CAAC,EAAEC,OAAO,CAACE,EAAE,GAAGD,GAAG,CAACE,UAAU,CAAC,CAAC,CAAC,KACxC,IAAIJ,GAAG,KAAK,CAAC,EAAEK,OAAO,CAACH,GAAG,EAAED,OAAO,CAAC,CAAC,KACrC,IAAID,GAAG,KAAK,CAAC,EAAEC,OAAO,CAACK,IAAI,GAAGJ,GAAG,CAACE,UAAU,CAAC,CAAC,CAAC,KAC/C,IAAIJ,GAAG,KAAK,CAAC,EAAEC,OAAO,CAACM,SAAS,GAAGL,GAAG,CAACM,GAAG;EACjD;AACF;AAOO,SAASH,OAAOA,CAACH,GAAa,EAAED,OAA0B,EAAQ;EACvE,IAAMQ,GAAG,GAAGP,GAAG,CAACE,UAAU,CAAC,CAAC,GAAGF,GAAG,CAACM,GAAG;EAEtC,OAAON,GAAG,CAACM,GAAG,GAAGC,GAAG,EAAE;IACpB,IAAMC,GAAG,GAAGT,OAAO,CAACU,KAAK,CAACT,GAAG,CAACE,UAAU,CAAC,CAAC,CAAC;IAC3C,IAAMQ,KAAK,GAAGX,OAAO,CAACY,OAAO,CAACX,GAAG,CAACE,UAAU,CAAC,CAAC,CAAC;IAC/CH,OAAO,CAACa,UAAU,CAACJ,GAAG,CAAC,GAAGE,KAAK;EACjC;AACF"}
package/dist/es5/index.js DELETED
@@ -1,33 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "GeoJSONTiler", {
7
- enumerable: true,
8
- get: function get() {
9
- return _geojsonTiler.GeoJSONTiler;
10
- }
11
- });
12
- Object.defineProperty(exports, "MVTLoader", {
13
- enumerable: true,
14
- get: function get() {
15
- return _mvtLoader.MVTLoader;
16
- }
17
- });
18
- Object.defineProperty(exports, "MVTWorkerLoader", {
19
- enumerable: true,
20
- get: function get() {
21
- return _mvtLoader.MVTWorkerLoader;
22
- }
23
- });
24
- Object.defineProperty(exports, "TileJSONLoader", {
25
- enumerable: true,
26
- get: function get() {
27
- return _tilejsonLoader.TileJSONLoader;
28
- }
29
- });
30
- var _mvtLoader = require("./mvt-loader");
31
- var _tilejsonLoader = require("./tilejson-loader");
32
- var _geojsonTiler = require("./lib/geojson-tiler/geojson-tiler");
33
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["_mvtLoader","require","_tilejsonLoader","_geojsonTiler"],"sources":["../../src/index.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nexport type {MVTLoaderOptions} from './lib/types';\nexport {MVTLoader, MVTWorkerLoader} from './mvt-loader';\n\nexport type {TileJSON} from './lib/parse-tilejson';\nexport type {TileJSONLoaderOptions} from './tilejson-loader';\nexport {TileJSONLoader} from './tilejson-loader';\n\n// GeoJSONTiler\n\nexport type {GeoJSONTilerOptions} from './lib/geojson-tiler/geojson-tiler';\nexport {GeoJSONTiler} from './lib/geojson-tiler/geojson-tiler';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,IAAAA,UAAA,GAAAC,OAAA;AAIA,IAAAC,eAAA,GAAAD,OAAA;AAKA,IAAAE,aAAA,GAAAF,OAAA"}
@@ -1,168 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = exports.TEST_EXPORTS = void 0;
8
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
- var _binaryUtilFunctions = require("../../helpers/binary-util-functions");
12
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
13
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
14
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
15
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
16
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
17
- var endPos;
18
- var cmd;
19
- var cmdLen;
20
- var length;
21
- var x;
22
- var y;
23
- var i;
24
- var TEST_EXPORTS = {
25
- classifyRings: _binaryUtilFunctions.classifyRings
26
- };
27
- exports.TEST_EXPORTS = TEST_EXPORTS;
28
- var VectorTileFeature = function () {
29
- function VectorTileFeature(pbf, end, extent, keys, values, geometryInfo) {
30
- (0, _classCallCheck2.default)(this, VectorTileFeature);
31
- (0, _defineProperty2.default)(this, "properties", void 0);
32
- (0, _defineProperty2.default)(this, "extent", void 0);
33
- (0, _defineProperty2.default)(this, "type", void 0);
34
- (0, _defineProperty2.default)(this, "id", void 0);
35
- (0, _defineProperty2.default)(this, "_pbf", void 0);
36
- (0, _defineProperty2.default)(this, "_geometry", void 0);
37
- (0, _defineProperty2.default)(this, "_keys", void 0);
38
- (0, _defineProperty2.default)(this, "_values", void 0);
39
- (0, _defineProperty2.default)(this, "_geometryInfo", void 0);
40
- this.properties = {};
41
- this.extent = extent;
42
- this.type = 0;
43
- this.id = null;
44
- this._pbf = pbf;
45
- this._geometry = -1;
46
- this._keys = keys;
47
- this._values = values;
48
- this._geometryInfo = geometryInfo;
49
- pbf.readFields(_binaryUtilFunctions.readFeature, this, end);
50
- }
51
- (0, _createClass2.default)(VectorTileFeature, [{
52
- key: "loadGeometry",
53
- value: function loadGeometry() {
54
- var pbf = this._pbf;
55
- pbf.pos = this._geometry;
56
- endPos = pbf.readVarint() + pbf.pos;
57
- cmd = 1;
58
- length = 0;
59
- x = 0;
60
- y = 0;
61
- i = 0;
62
- var indices = [];
63
- var data = [];
64
- while (pbf.pos < endPos) {
65
- if (length <= 0) {
66
- cmdLen = pbf.readVarint();
67
- cmd = cmdLen & 0x7;
68
- length = cmdLen >> 3;
69
- }
70
- length--;
71
- if (cmd === 1 || cmd === 2) {
72
- x += pbf.readSVarint();
73
- y += pbf.readSVarint();
74
- if (cmd === 1) {
75
- indices.push(i);
76
- }
77
- data.push(x, y);
78
- i += 2;
79
- } else if (cmd === 7) {
80
- if (i > 0) {
81
- var start = indices[indices.length - 1];
82
- data.push(data[start], data[start + 1]);
83
- i += 2;
84
- }
85
- } else {
86
- throw new Error("unknown command ".concat(cmd));
87
- }
88
- }
89
- return {
90
- data: data,
91
- indices: indices
92
- };
93
- }
94
- }, {
95
- key: "_toBinaryCoordinates",
96
- value: function _toBinaryCoordinates(transform) {
97
- var geom = this.loadGeometry();
98
- var geometry;
99
- transform(geom.data, this);
100
- var coordLength = 2;
101
- switch (this.type) {
102
- case 1:
103
- this._geometryInfo.pointFeaturesCount++;
104
- this._geometryInfo.pointPositionsCount += geom.indices.length;
105
- geometry = _objectSpread({
106
- type: 'Point'
107
- }, geom);
108
- break;
109
- case 2:
110
- this._geometryInfo.lineFeaturesCount++;
111
- this._geometryInfo.linePathsCount += geom.indices.length;
112
- this._geometryInfo.linePositionsCount += geom.data.length / coordLength;
113
- geometry = _objectSpread({
114
- type: 'LineString'
115
- }, geom);
116
- break;
117
- case 3:
118
- geometry = (0, _binaryUtilFunctions.classifyRings)(geom);
119
- this._geometryInfo.polygonFeaturesCount++;
120
- this._geometryInfo.polygonObjectsCount += geometry.indices.length;
121
- var _iterator = _createForOfIteratorHelper(geometry.indices),
122
- _step;
123
- try {
124
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
125
- var indices = _step.value;
126
- this._geometryInfo.polygonRingsCount += indices.length;
127
- }
128
- } catch (err) {
129
- _iterator.e(err);
130
- } finally {
131
- _iterator.f();
132
- }
133
- this._geometryInfo.polygonPositionsCount += geometry.data.length / coordLength;
134
- break;
135
- default:
136
- throw new Error("Invalid geometry type: ".concat(this.type));
137
- }
138
- var result = {
139
- type: 'Feature',
140
- geometry: geometry,
141
- properties: this.properties
142
- };
143
- if (this.id !== null) {
144
- result.id = this.id;
145
- }
146
- return result;
147
- }
148
- }, {
149
- key: "toBinaryCoordinates",
150
- value: function toBinaryCoordinates(options) {
151
- if (typeof options === 'function') {
152
- return this._toBinaryCoordinates(options);
153
- }
154
- var x = options.x,
155
- y = options.y,
156
- z = options.z;
157
- var size = this.extent * Math.pow(2, z);
158
- var x0 = this.extent * x;
159
- var y0 = this.extent * y;
160
- return this._toBinaryCoordinates(function (data) {
161
- return (0, _binaryUtilFunctions.project)(data, x0, y0, size);
162
- });
163
- }
164
- }]);
165
- return VectorTileFeature;
166
- }();
167
- exports.default = VectorTileFeature;
168
- //# sourceMappingURL=vector-tile-feature.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vector-tile-feature.js","names":["_binaryUtilFunctions","require","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","arguments","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","endPos","cmd","cmdLen","x","y","TEST_EXPORTS","classifyRings","exports","VectorTileFeature","pbf","end","extent","values","geometryInfo","_classCallCheck2","properties","type","id","_pbf","_geometry","_keys","_values","_geometryInfo","readFields","readFeature","_createClass2","loadGeometry","pos","readVarint","indices","data","readSVarint","start","Error","concat","_toBinaryCoordinates","transform","geom","geometry","coordLength","pointFeaturesCount","pointPositionsCount","lineFeaturesCount","linePathsCount","linePositionsCount","polygonFeaturesCount","polygonObjectsCount","_iterator","_step","polygonRingsCount","polygonPositionsCount","result","toBinaryCoordinates","options","z","size","Math","pow","x0","y0","project"],"sources":["../../../../src/lib/binary-vector-tile/vector-tile-feature.ts"],"sourcesContent":["// This code is forked from https://github.com/mapbox/vector-tile-js under BSD 3-clause license.\n\nimport Protobuf from 'pbf';\nimport {FlatFeature, FlatIndexedGeometry, GeojsonGeometryInfo} from '@loaders.gl/schema';\nimport {classifyRings, project, readFeature} from '../../helpers/binary-util-functions';\n\n// Reduce GC by reusing variables\nlet endPos: number;\nlet cmd: number;\nlet cmdLen: number;\nlet length: number;\nlet x: number;\nlet y: number;\nlet i: number;\n\nexport const TEST_EXPORTS = {\n classifyRings\n};\n\nexport default class VectorTileFeature {\n properties: {[x: string]: string | number | boolean | null};\n extent: any;\n type: number;\n id: number | null;\n _pbf: Protobuf;\n _geometry: number;\n _keys: string[];\n _values: (string | number | boolean | null)[];\n _geometryInfo: GeojsonGeometryInfo;\n\n // eslint-disable-next-line max-params\n constructor(\n pbf: Protobuf,\n end: number,\n extent: any,\n keys: string[],\n values: (string | number | boolean | null)[],\n geometryInfo: GeojsonGeometryInfo\n ) {\n // Public\n this.properties = {};\n this.extent = extent;\n this.type = 0;\n this.id = null;\n\n // Private\n this._pbf = pbf;\n this._geometry = -1;\n this._keys = keys;\n this._values = values;\n this._geometryInfo = geometryInfo;\n\n pbf.readFields(readFeature, this, end);\n }\n\n // eslint-disable-next-line complexity, max-statements\n loadGeometry(): FlatIndexedGeometry {\n const pbf = this._pbf;\n pbf.pos = this._geometry;\n\n endPos = pbf.readVarint() + pbf.pos;\n cmd = 1;\n length = 0;\n x = 0;\n y = 0;\n i = 0;\n\n // Note: I attempted to replace the `data` array with a\n // Float32Array, but performance was worse, both using\n // `set()` and direct index access. Also, we cannot\n // know how large the buffer should be, so it would\n // increase memory usage\n const indices: number[] = []; // Indices where geometries start\n const data: number[] = []; // Flat array of coordinate data\n\n while (pbf.pos < endPos) {\n if (length <= 0) {\n cmdLen = pbf.readVarint();\n cmd = cmdLen & 0x7;\n length = cmdLen >> 3;\n }\n\n length--;\n\n if (cmd === 1 || cmd === 2) {\n x += pbf.readSVarint();\n y += pbf.readSVarint();\n\n if (cmd === 1) {\n // New line\n indices.push(i);\n }\n data.push(x, y);\n i += 2;\n } else if (cmd === 7) {\n // Workaround for https://github.com/mapbox/mapnik-vector-tile/issues/90\n if (i > 0) {\n const start = indices[indices.length - 1]; // start index of polygon\n data.push(data[start], data[start + 1]); // closePolygon\n i += 2;\n }\n } else {\n throw new Error(`unknown command ${cmd}`);\n }\n }\n\n return {data, indices};\n }\n\n /**\n *\n * @param transform\n * @returns result\n */\n _toBinaryCoordinates(transform) {\n // Expands the protobuf data to an intermediate Flat GeoJSON\n // data format, which maps closely to the binary data buffers.\n // It is similar to GeoJSON, but rather than storing the coordinates\n // in multidimensional arrays, we have a 1D `data` with all the\n // coordinates, and then index into this using the `indices`\n // parameter, e.g.\n //\n // geometry: {\n // type: 'Point', data: [1,2], indices: [0]\n // }\n // geometry: {\n // type: 'LineString', data: [1,2,3,4,...], indices: [0]\n // }\n // geometry: {\n // type: 'Polygon', data: [1,2,3,4,...], indices: [[0, 2]]\n // }\n // Thus the indices member lets us look up the relevant range\n // from the data array.\n // The Multi* versions of the above types share the same data\n // structure, just with multiple elements in the indices array\n const geom = this.loadGeometry();\n let geometry;\n\n // Apply the supplied transformation to data\n transform(geom.data, this);\n\n const coordLength = 2;\n\n // eslint-disable-next-line default-case\n switch (this.type) {\n case 1: // Point\n this._geometryInfo.pointFeaturesCount++;\n this._geometryInfo.pointPositionsCount += geom.indices.length;\n geometry = {type: 'Point', ...geom};\n break;\n\n case 2: // LineString\n this._geometryInfo.lineFeaturesCount++;\n this._geometryInfo.linePathsCount += geom.indices.length;\n this._geometryInfo.linePositionsCount += geom.data.length / coordLength;\n geometry = {type: 'LineString', ...geom};\n break;\n\n case 3: // Polygon\n geometry = classifyRings(geom);\n\n // Unlike Point & LineString geom.indices is a 2D array, thanks\n // to the classifyRings method\n this._geometryInfo.polygonFeaturesCount++;\n this._geometryInfo.polygonObjectsCount += geometry.indices.length;\n\n for (const indices of geometry.indices) {\n this._geometryInfo.polygonRingsCount += indices.length;\n }\n this._geometryInfo.polygonPositionsCount += geometry.data.length / coordLength;\n\n break;\n default:\n throw new Error(`Invalid geometry type: ${this.type}`);\n }\n\n const result: FlatFeature = {type: 'Feature', geometry, properties: this.properties};\n\n if (this.id !== null) {\n result.id = this.id;\n }\n\n return result;\n }\n\n toBinaryCoordinates(\n options: {x: number; y: number; z: number} | ((data: number[], feature: {extent: any}) => void)\n ): FlatFeature {\n if (typeof options === 'function') {\n return this._toBinaryCoordinates(options);\n }\n const {x, y, z} = options;\n const size = this.extent * Math.pow(2, z);\n const x0 = this.extent * x;\n const y0 = this.extent * y;\n\n return this._toBinaryCoordinates((data: number[]) => project(data, x0, y0, size));\n }\n}\n"],"mappings":"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"}