tileserver-gl-light 5.5.0-pre.2 → 5.5.0-pre.4
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/CHANGELOG.md +3 -1
- package/docs/config.rst +41 -1
- package/docs/usage.rst +5 -0
- package/package.json +5 -5
- package/public/resources/elevation-control.js +1 -1
- package/public/resources/maplibre-gl.js +4 -4
- package/public/resources/maplibre-gl.js.map +1 -1
- package/src/pmtiles_adapter.js +76 -41
- package/src/serve_data.js +2 -4
- package/src/serve_rendered.js +3 -0
- package/src/server.js +8 -0
- package/src/utils.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
# tileserver-gl changelog
|
|
2
2
|
|
|
3
|
-
## 5.5.0-pre.
|
|
3
|
+
## 5.5.0-pre.4
|
|
4
4
|
* Add S3 support for PMTiles with multiple AWS credential profiles (https://github.com/maptiler/tileserver-gl/pull/1779) by @acalcutt
|
|
5
5
|
* Create .aws directory passthrough folder in Dockerfile (https://github.com/maptiler/tileserver-gl/pull/1784) by @acalcutt
|
|
6
6
|
* Update eslint to v9 (https://github.com/maptiler/tileserver-gl/pull/1473) by @acalcutt
|
|
7
7
|
* Fix Renderer Crashes from Failed Fetches (https://github.com/maptiler/tileserver-gl/pull/1798) by @acalcutt
|
|
8
|
+
* Add Visual Regression Tests for Static Image Overlays (https://github.com/maptiler/tileserver-gl/pull/1792) by @acalcutt
|
|
9
|
+
* Fix S3 URL parsing for nested paths in AWS buckets (https://github.com/maptiler/tileserver-gl/pull/1819) by @acalcutt
|
|
8
10
|
|
|
9
11
|
## 5.4.0
|
|
10
12
|
* Fix the issue where the tile URL cannot be correctly parsed with the HTTPS protocol when using an nginx proxy service (https://github.com/maptiler/tileserver-gl/pull/1578) by @dakanggo
|
package/docs/config.rst
CHANGED
|
@@ -311,6 +311,23 @@ Here are the available options for each data source:
|
|
|
311
311
|
If not specified, uses ``AWS_REGION`` environment variable or defaults to ``us-east-1``.
|
|
312
312
|
Optional, only applicable to PMTiles sources using S3 URLs.
|
|
313
313
|
|
|
314
|
+
``s3UrlFormat`` (string)
|
|
315
|
+
Specifies how to interpret the S3 URL format.
|
|
316
|
+
|
|
317
|
+
Allowed values:
|
|
318
|
+
|
|
319
|
+
* ``aws`` - Interpret as AWS S3 (``s3://bucket/path/file.pmtiles``)
|
|
320
|
+
* ``custom`` - Interpret as custom S3 endpoint (``s3://endpoint/bucket/path/file.pmtiles``)
|
|
321
|
+
* Not specified (default) - Auto-detect based on URL pattern
|
|
322
|
+
|
|
323
|
+
Can be specified in the URL using ``?s3UrlFormat=aws`` or in the configuration.
|
|
324
|
+
If both are specified, the configuration value takes precedence.
|
|
325
|
+
|
|
326
|
+
Optional, only applicable to PMTiles sources using S3 URLs.
|
|
327
|
+
|
|
328
|
+
.. note::
|
|
329
|
+
By default, URLs with dots in the first segment (e.g., ``s3://storage.example.com/bucket/file.pmtiles``) are treated as custom endpoints, while URLs without dots are treated as AWS S3. Use ``s3UrlFormat: "aws"`` if your AWS bucket name contains dots.
|
|
330
|
+
|
|
314
331
|
.. note::
|
|
315
332
|
These configuration options will be overridden by metadata in the MBTiles or PMTiles file. if corresponding properties exist in the file's metadata, you do not need to specify them in the data configuration.
|
|
316
333
|
|
|
@@ -445,6 +462,17 @@ Precedence order (highest to lowest): Configuration property ``s3Region``, URL p
|
|
|
445
462
|
|
|
446
463
|
Precedence order (highest to lowest): Configuration property ``requestPayer``, URL parameter ``?requestPayer=true``, Default: ``false``.
|
|
447
464
|
|
|
465
|
+
*S3UrlFormat* - Specifies how to interpret S3 URLs::
|
|
466
|
+
|
|
467
|
+
# URL parameter
|
|
468
|
+
"pmtiles": "s3://my.bucket.name/tiles.pmtiles?s3UrlFormat=aws"
|
|
469
|
+
|
|
470
|
+
# Configuration property
|
|
471
|
+
"pmtiles": "s3://my.bucket.name/tiles.pmtiles",
|
|
472
|
+
"s3UrlFormat": "aws"
|
|
473
|
+
|
|
474
|
+
Precedence order (highest to lowest): Configuration property ``s3UrlFormat``, URL parameter ``?s3UrlFormat=...``, Auto-detection.
|
|
475
|
+
|
|
448
476
|
**Complete Configuration Examples:**
|
|
449
477
|
|
|
450
478
|
Using URL parameters::
|
|
@@ -453,6 +481,9 @@ Using URL parameters::
|
|
|
453
481
|
"us-west-tiles": {
|
|
454
482
|
"pmtiles": "s3://prod-bucket/tiles.pmtiles?profile=production®ion=us-west-2"
|
|
455
483
|
},
|
|
484
|
+
"dotted-bucket-name": {
|
|
485
|
+
"pmtiles": "s3://my.bucket.name/tiles.pmtiles?s3UrlFormat=aws®ion=us-east-1"
|
|
486
|
+
},
|
|
456
487
|
"eu-requester-pays": {
|
|
457
488
|
"pmtiles": "s3://bucket/tiles.pmtiles?profile=prod®ion=eu-central-1&requestPayer=true"
|
|
458
489
|
}
|
|
@@ -466,6 +497,11 @@ Using configuration properties (recommended)::
|
|
|
466
497
|
"s3Profile": "production",
|
|
467
498
|
"s3Region": "us-west-2"
|
|
468
499
|
},
|
|
500
|
+
"dotted-bucket-name": {
|
|
501
|
+
"pmtiles": "s3://my.bucket.name/tiles.pmtiles",
|
|
502
|
+
"s3UrlFormat": "aws",
|
|
503
|
+
"s3Region": "us-east-1"
|
|
504
|
+
},
|
|
469
505
|
"eu-requester-pays": {
|
|
470
506
|
"pmtiles": "s3://bucket/tiles.pmtiles",
|
|
471
507
|
"s3Profile": "production",
|
|
@@ -476,13 +512,17 @@ Using configuration properties (recommended)::
|
|
|
476
512
|
|
|
477
513
|
**Using S3 in Style JSON Sources:**
|
|
478
514
|
|
|
479
|
-
When referencing S3 sources from within a style JSON file, use the ``pmtiles://`` prefix with S3 URLs. You can
|
|
515
|
+
When referencing S3 sources from within a style JSON file, use the ``pmtiles://`` prefix with S3 URLs. You can specify profile, region, requestPayer, and s3UrlFormat using URL query parameters (configuration properties are not available in style JSON)::
|
|
480
516
|
|
|
481
517
|
"sources": {
|
|
482
518
|
"aws-tiles": {
|
|
483
519
|
"url": "pmtiles://s3://my-bucket/tiles.pmtiles?profile=production",
|
|
484
520
|
"type": "vector"
|
|
485
521
|
},
|
|
522
|
+
"dotted-bucket": {
|
|
523
|
+
"url": "pmtiles://s3://my.bucket.name/tiles.pmtiles?s3UrlFormat=aws",
|
|
524
|
+
"type": "vector"
|
|
525
|
+
},
|
|
486
526
|
"spaces-tiles": {
|
|
487
527
|
"url": "pmtiles://s3://example-storage.com/my-bucket/tiles.pmtiles?region=nyc3",
|
|
488
528
|
"type": "vector"
|
package/docs/usage.rst
CHANGED
|
@@ -64,6 +64,9 @@ The `--file` option supports multiple source types:
|
|
|
64
64
|
# Requester-pays bucket
|
|
65
65
|
tileserver-gl --file "s3://bucket/tiles.pmtiles?requestPayer=true"
|
|
66
66
|
|
|
67
|
+
# Bucket name with dots (force AWS S3 interpretation)
|
|
68
|
+
tileserver-gl --file "s3://my.bucket.name/tiles.pmtiles?s3UrlFormat=aws"
|
|
69
|
+
|
|
67
70
|
# All options combined
|
|
68
71
|
tileserver-gl --file "s3://bucket/tiles.pmtiles?profile=prod®ion=us-west-2&requestPayer=true"
|
|
69
72
|
|
|
@@ -82,6 +85,8 @@ You can also use `pmtiles://` or `mbtiles://` prefixes to explicitly specify the
|
|
|
82
85
|
.. note::
|
|
83
86
|
For S3 sources, AWS credentials must be configured via environment variables, AWS credentials file (`~/.aws/credentials` on Linux/macOS or `C:\Users\USERNAME\.aws\credentials` on Windows), or IAM roles.
|
|
84
87
|
|
|
88
|
+
The `s3UrlFormat` parameter can be set to `aws` or `custom` to override auto-detection when needed (e.g., for AWS bucket names containing dots).
|
|
89
|
+
|
|
85
90
|
**When using Docker**, the host credentials file can be mounted to the container's user home directory:
|
|
86
91
|
|
|
87
92
|
::
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tileserver-gl-light",
|
|
3
|
-
"version": "5.5.0-pre.
|
|
3
|
+
"version": "5.5.0-pre.4",
|
|
4
4
|
"description": "Map tile server for JSON GL styles - serving vector tiles",
|
|
5
5
|
"main": "src/main.js",
|
|
6
6
|
"bin": "src/main.js",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"docker": "docker build . && docker run --rm -i -p 8080:8080 $(docker build -q .)"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@aws-sdk/client-s3": "^3.
|
|
38
|
+
"@aws-sdk/client-s3": "^3.932.0",
|
|
39
39
|
"@jsse/pbfont": "^0.3.0",
|
|
40
40
|
"@mapbox/mapbox-gl-rtl-text": "0.3.0",
|
|
41
41
|
"@mapbox/mbtiles": "0.12.1",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"advanced-pool": "0.3.3",
|
|
49
49
|
"chokidar": "4.0.3",
|
|
50
50
|
"clone": "2.1.2",
|
|
51
|
-
"color": "5.0.
|
|
51
|
+
"color": "5.0.3",
|
|
52
52
|
"commander": "14.0.2",
|
|
53
53
|
"copyfiles": "2.4.1",
|
|
54
54
|
"cors": "2.8.5",
|
|
@@ -57,11 +57,11 @@
|
|
|
57
57
|
"http-shutdown": "1.2.2",
|
|
58
58
|
"leaflet": "1.9.4",
|
|
59
59
|
"leaflet-hash": "0.2.1",
|
|
60
|
-
"maplibre-gl": "5.
|
|
60
|
+
"maplibre-gl": "5.13.0",
|
|
61
61
|
"morgan": "1.10.1",
|
|
62
62
|
"pbf": "4.0.1",
|
|
63
63
|
"pmtiles": "4.3.0",
|
|
64
|
-
"proj4": "2.
|
|
64
|
+
"proj4": "2.20.0",
|
|
65
65
|
"sanitize-filename": "1.6.3",
|
|
66
66
|
"semver": "^7.7.3",
|
|
67
67
|
"tileserver-gl-styles": "2.0.0"
|
|
@@ -37,7 +37,7 @@ class ElevationInfoControl {
|
|
|
37
37
|
} else {
|
|
38
38
|
this.controlContainer.textContent = `Elevation: ${JSON.parse(request.responseText).elevation} (${JSON.stringify(coord)})`;
|
|
39
39
|
}
|
|
40
|
-
}
|
|
40
|
+
};
|
|
41
41
|
request.send();
|
|
42
42
|
} else {
|
|
43
43
|
this.controlContainer.textContent = "Elevation: Click on Globe";
|