Commit graph

40 commits

Author SHA1 Message Date
acalcutt
99afa33e9d move tile fetch and add fix verbose logging
Co-Authored-By: Andrew Calcutt <acalcutt@techidiots.net>
2025-01-02 14:48:18 -05:00
acalcutt
4c6f379f4e cleanup error responses
Co-Authored-By: Andrew Calcutt <acalcutt@techidiots.net>
2025-01-02 14:45:50 -05:00
acalcutt
c0e14bd145 cleanup utils.js
Co-Authored-By: Andrew Calcutt <acalcutt@techidiots.net>
2025-01-02 14:45:48 -05:00
daniel-milemarker
9d222c1dec
feat: add support for x-forward-port header (#1423)
* feat: add support for x-forward-port header

* fix: remove unnecessary port additions

* chore: remove unused dependency
2025-01-02 14:29:53 -05:00
Miko
a2bc9f0cce
Feature: Terrain Preview and simple Elevation Query (#1425)
* add terrain preview and elevation link

* add elevation api for terrain tiles

* add documentation for elevation api

* applied lint:js:fix

* Add `test-docker` for test execution in docker build environment

* Fix too greedy router expression

* Add pmtile support

Co-authored-by: Andrew Calcutt <acalcutt@techidiots.net>

* add encoding param to pmtile section

* add map controls

Co-authored-by: Andrew Calcutt <acalcutt@techidiots.net>

* remove not needed check

* fix possible float usage in thumbnail url

* update readme for encoding option

* add better link name

---------

Co-authored-by: Miko <miko@none>
Co-authored-by: Andrew Calcutt <acalcutt@techidiots.net>
2025-01-02 14:03:03 -05:00
Aarni Koskela
1d4c1ff188
fix: avoid synchronous calls where possible (#1320)
Signed-off-by: Aarni Koskela <akx@iki.fi>
2024-07-31 08:51:56 -04:00
Prashis
401f891866
feat: use @jsse/pbfont instead of @mapbox/glyph-pbf-composite (#1294)
* feat: use `@jsse/pbfont` instead of `@mapbox/glyph-pbf-composite`

Signed-off-by: prashis <prashis.meshram@hotmail.com>

* refactor: use named import for `@jsse/pbfont`

Signed-off-by: prashis <prashis.meshram@hotmail.com>

---------

Signed-off-by: prashis <prashis.meshram@hotmail.com>
2024-07-04 11:02:24 -04:00
v-electrolux
6742c7f45d
feat: add support for X-Forwarded-Path in style urls (#1239)
* add support for X-Forwarded-Path for styles too

* fix linting issue
2024-05-03 10:57:08 -04:00
Lukomo
bff699ba4a
feat: handle the X-Forwarded-Path header (#1197)
* feat: handle the X-Forwarded-Path header

* fix: lint

Signed-off-by: acalcutt <acalcutt@techidiots.net>

---------

Signed-off-by: acalcutt <acalcutt@techidiots.net>
Co-authored-by: Zsolt Jakubinyi <zsolt.jakubinyi@beamtrail.com>
Co-authored-by: acalcutt <acalcutt@techidiots.net>
2024-04-23 15:55:39 -04:00
Andrew Calcutt
66445e8653
Add support for multi-sprites in styles (#1232)
* fix: allow sprite array in styles

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* fix: add 'sprite/' to generated path

So it doesn't conflict with style json url

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* fix: allow old sprite endpoints to work

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* fix: lint

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* docs:  add multi-sprite name to endpoint

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* fix: duplicate styleJSON.sprite

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* fix: try to fix some codeql errors

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* fix: try to fix some codeql errors

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* fix: try to fix some codeql errors

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* fix: try to fix some codeql errors

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* fix: try to fix some codeql errors

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* fix: lint

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* fix: ci sprite issue

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* fix: remove console.log's

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* fix: use sprite id instead of name

Signed-off-by: acalcutt <acalcutt@techidiots.net>

* fix: add suggestions

Signed-off-by: acalcutt <acalcutt@techidiots.net>

* fix: remove unneeded array check

Signed-off-by: acalcutt <acalcutt@techidiots.net>

* fix: lint

Signed-off-by: acalcutt <acalcutt@techidiots.net>

* fix: don't force multi-sprites in style

Signed-off-by: acalcutt <acalcutt@techidiots.net>

* fix: move fixUrl and allowedOptions to utils

Signed-off-by: acalcutt <acalcutt@techidiots.net>

* fix: add test for default sprite

Signed-off-by: acalcutt <acalcutt@techidiots.net>

* fix: lint

Signed-off-by: acalcutt <acalcutt@techidiots.net>

---------

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>
Signed-off-by: acalcutt <acalcutt@techidiots.net>
2024-04-23 14:51:37 -04:00
Andrew Calcutt
d68ab38442
Add support for 512 sized raster tiles - v2 (#1136)
* test: using 512px rendered tiles

Based on https://github.com/maptiler/tileserver-gl/pull/495

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* fix: use static renderer at zoom 0

renderer is not able to change the size of tile to more than 512px in tile mode

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* Add support for 512 sized raster tiles (#1)

* Enable setting tilesize for raster tiles

* Serve correct endpoint for raster tiles

* Add 256 & 512 sized raster layers to wmts getCapabilities document

* Update wmts getCapabilities tileMatrixSets

* Add rendered tiles format for getTileUrls method

* Update endpoints documentation

* Add and fix tiles_rendered tests

* fix: formatting

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* fix: corrent bad merge

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* fix: if tile size is undefined don't add it

needed for data endpoint right now

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* fix: set tile size in raster endpoints to 512

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* fix: add semicolon

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* fix: lint

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* fix: test z1 512px file that actually exists

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* fix: make tileSize optional

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* fix: cleaner if statement

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* docs: update tileSize to show as optional

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* fix: allow tile size in data url

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* fix: remove unneeded tileSize

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* fix: set data as 256 tileSize for consistency

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* docs: add note about optional data tileSize

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* fix: lint

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* Revert "fix: remove unneeded tileSize"

This reverts commit a4583161bf53653d65a4606c407ba9b5249d1061.

* fix: allow tile size to be set at json endpoints

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* fix: set default endpoint tilesizes

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* fix: don't use tilesize one data endpoint

It doesn't do anything

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* fix: default style endpoint to undefined

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* fix: zoom 0 workaround

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* Revert "fix: zoom 0 workaround"

This reverts commit 0f3bbd765c9c151016cec66768675f990676c8b3.

* fix: limit min zoom to 1 in viewer

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* fix: put back orig string

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* docs: add optional tilesize to TileJSON

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* fix: cleanup thumbnails

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* fix: default undefined like other data endpoints

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* fix: move data xyz_link

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* fix: remove console.log

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* fix: lint

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* chore: update version

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* fix: update path

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* fix: join error

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

* fix: revert path change

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>

---------

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>
Co-authored-by: Petteri Pesonen <teemu.p.pesonen@gmail.com>
2024-01-25 21:23:07 -05:00
Andrew Calcutt
ee602acc4c
Merge branch 'master' into refactor4 2023-11-25 21:01:33 -05:00
Martin d'Allens
c9aa26a6de
fix: listFonts was broken, missing fonts could not fallback (#1076)
Promise code never worked: listFonts did not wait for fs.stat() to resolve().
This was not evident because late results were still used.

A recent PR made it worse: late results are now ignored.
This manifested for styles with missing fonts, no fallback could be used.

Signed-off-by: Martin d'Allens <martin.dallens@liberty-rider.com>
2023-11-24 11:48:50 -05:00
Martin d'Allens
345b831edd chore: convert some promises to async/await
Signed-off-by: Martin d'Allens <martin.dallens@liberty-rider.com>
2023-11-23 17:08:32 +01:00
Martin d'Allens
526766c8f4
Extract nested functions and simplify a little (#1062)
* chore: make sure error exit codes of tests are returned

Signed-off-by: Martin d'Allens <martin.dallens@liberty-rider.com>

* chore: replace the last 'var' with 'const'

Signed-off-by: Martin d'Allens <martin.dallens@liberty-rider.com>

* chore: extract duplicated font listing

Signed-off-by: Martin d'Allens <martin.dallens@liberty-rider.com>

* chore: extract rendering functions to a new file

Signed-off-by: Martin d'Allens <martin.dallens@liberty-rider.com>

* chore: move nested respondImage() function to top level

Signed-off-by: Martin d'Allens <martin.dallens@liberty-rider.com>

* chore: simplify respondImage() args

Signed-off-by: Martin d'Allens <martin.dallens@liberty-rider.com>

* chore: fix typo in rendeAttribution

Signed-off-by: Martin d'Allens <martin.dallens@liberty-rider.com>

---------

Signed-off-by: Martin d'Allens <martin.dallens@liberty-rider.com>
2023-11-23 10:11:53 -05:00
Andrew Calcutt
a6dadfda28
Add pmtiles support (#1009)
Adds pmtiles support to TileServer-GL

Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>
Signed-off-by: Michael Nutt <michael@nuttnet.net>
Co-authored-by: Michael Nutt <michael@nuttnet.net>
2023-10-15 03:03:15 -04:00
Andrew Calcutt
7e246d0cd1 fix: lint
Signed-off-by: Andrew Calcutt <acalcutt@techidiots.net>
2023-09-27 00:16:54 -04:00
zstadler
64adff0855
Handle SIGTERM (#782)
* Handle SIGTERM

Resolve #781

* Add `Caught signal ...` messages

Container log when sending a `SIGHUP` signal and then a `SIGTERM` signal using
`docker kill --signal ...` :

```
Starting tileserver-gl v4.4.8
[INFO] Automatically creating config file for zurich_switzerland.mbtiles
[INFO] Only a basic preview style will be used.
[INFO] See documentation to learn how to create config.json file.
Run with --verbose to see the config file here.
Starting server
Listening at http://[::]:8080/
Startup complete
Caught signal SIGHUP, refreshing
Stopping server and reloading config
Starting server
Listening at http://[::]:8080/
Startup complete
Caught signal SIGTERM, stopping gracefully
```

Note that the numeric signal values, as used in the shell version, were
replaced by signal names, as used in nodeJS.

* run 'npm run lint:js:fix'

---------

Co-authored-by: acalcutt <acalcutt@techidiots.net>
2023-03-01 10:05:21 -05:00
Manuel Roth
ea186d34df
fix: support for X-Forwarded-Host http header (#733)
* fix: fix support for overriding hostname by setting X-Forwarded-Host http header

Signed-off-by: Manuel Roth <manuelroth@hotmail.ch>

* fix: improve getUrlObject

Signed-off-by: Manuel Roth <manuelroth@hotmail.ch>

* Add documentation for getUrlObject function

Co-authored-by: Vinayak Kulkarni <19776877+vinayakkulkarni@users.noreply.github.com>

* Simplify getPublicUrl function

Co-authored-by: Vinayak Kulkarni <19776877+vinayakkulkarni@users.noreply.github.com>

* Remove variable

Co-authored-by: Vinayak Kulkarni <19776877+vinayakkulkarni@users.noreply.github.com>

* Use urlObject directly

Co-authored-by: Vinayak Kulkarni <19776877+vinayakkulkarni@users.noreply.github.com>

* fix: small fix

Signed-off-by: Manuel Roth <manuelroth@hotmail.ch>

---------

Signed-off-by: Manuel Roth <manuelroth@hotmail.ch>
Co-authored-by: Vinayak Kulkarni <19776877+vinayakkulkarni@users.noreply.github.com>
2023-01-31 20:35:16 -05:00
Vinayak Kulkarni
9b64093c42
style: fix lint issues in code 🕺 (#626)
* style: fix lint issues in code 🕺

Signed-off-by: Vinayak Kulkarni <19776877+vinayakkulkarni@users.noreply.github.com>

* style: lint fix all files

Signed-off-by: Vinayak Kulkarni <19776877+vinayakkulkarni@users.noreply.github.com>

* chore: add `keywords` for better reach

Signed-off-by: Vinayak Kulkarni <19776877+vinayakkulkarni@users.noreply.github.com>

* feat: add `husky` & `commitlint`

Signed-off-by: Vinayak Kulkarni <19776877+vinayakkulkarni@users.noreply.github.com>

* chore: ignore `public` directory

Signed-off-by: Vinayak Kulkarni <19776877+vinayakkulkarni@users.noreply.github.com>

* revert: do not lint `public` directory

Signed-off-by: Vinayak Kulkarni <19776877+vinayakkulkarni@users.noreply.github.com>

* style: fix issues with lint

Signed-off-by: Vinayak Kulkarni <19776877+vinayakkulkarni@users.noreply.github.com>

* feat: add eslint config

Signed-off-by: Vinayak Kulkarni <19776877+vinayakkulkarni@users.noreply.github.com>

* feat: add lint-staged

Signed-off-by: Vinayak Kulkarni <19776877+vinayakkulkarni@users.noreply.github.com>

* style: lint fix all file(s)

Signed-off-by: Vinayak Kulkarni <19776877+vinayakkulkarni@users.noreply.github.com>

* fix: ignore rules for light version

Signed-off-by: Vinayak Kulkarni <19776877+vinayakkulkarni@users.noreply.github.com>

* fix: remove unnecessary space

Signed-off-by: Vinayak Kulkarni <19776877+vinayakkulkarni@users.noreply.github.com>

* chore(deps): update lockfile

Signed-off-by: Vinayak Kulkarni <19776877+vinayakkulkarni@users.noreply.github.com>

* style: autofix linting issue(s)

Signed-off-by: Vinayak Kulkarni <19776877+vinayakkulkarni@users.noreply.github.com>

Signed-off-by: Vinayak Kulkarni <19776877+vinayakkulkarni@users.noreply.github.com>
2022-11-08 22:56:07 -05:00
Andrew Calcutt
b2bd5eaa96
Convert to esm module syntax (#606)
* switch to esm module

* Update package.json

* change to maplibre package

* fix tests

* eslint

* remove extra package updates

* Delete package-lock.json

* change 'fs' to 'node:fs'

* put back node 10.

without the package updates this still works

* remove trailing commas

* remove unassociated fix / formatting

* remove unassociated fix

* remove eslint from this PR

* remove unassociated fix

* lint

* Merge remote-tracking branch 'upstream/master' into esm_update

* fix mlgl

* update maplibre-native to new version with arm64

* update minor version
2022-09-28 14:41:55 -04:00
Daniel Korp
038bfe29d6
Fix reflected XSS in 'style' parameter 2020-07-02 10:28:25 +02:00
Daniel Korp
10431d70d0
Fix reflected XSS in 'key' parameter. Fixes #461 2020-07-02 09:30:33 +02:00
Paveł Tyślacki
8f77be3037 update glyph-pbf-composite
glyph-pbf-composite v0.0.2 were released without license
as license were added in v0.0.3 it nice to be updated to licensed software version
2020-02-14 18:59:49 +03:00
Yuri Astrakhan
7f8be27844 Update code to ES6
* var  ->  let / const
* [].forEach  ->  for (... of ...)
* '...' + var  ->  template strings  `...${var}`
* function  ->  arrow functions `=>`
* use === and !==  instead of == and !=
2019-12-21 14:09:20 -05:00
Alban Mouton
c99a1a5425 Merge remote-tracking branch 'klokantech/master' into public_url
# Conflicts:
#	src/main.js
#	src/server.js
2018-12-19 09:53:40 +01:00
Petr Sloup
734d1f01f0 Prioritize font fallbacks and try to respect proper font style 2017-12-14 09:55:57 +01:00
Tim Schaub
2f9059d09e Unnecessary promise wrapping 2017-10-23 10:05:30 -06:00
Alban Mouton
dc6be5047c missing public_url in tiles urls 2017-10-18 14:49:10 +02:00
Alban Mouton
875521c5a8 add public_url option 2017-10-18 13:51:37 +02:00
Petr Sloup
bdc3d20524 Use promises instead of async in font concatenation (remove async dependency) 2017-05-10 10:22:39 +02:00
Petr Sloup
b93bc5fadc Support for handling relative subdomain patterns 2017-03-14 15:50:14 +01:00
Petr Sloup
6231f9f7a7 Configurable optional alias for .pbf tiles (#109) 2017-01-25 15:30:58 +01:00
Petr Sloup
509d32da68 Improved font serving 2016-12-09 13:19:34 +01:00
Petr Sloup
1aaabd2dff Experimental integration of first plugin 2016-12-06 20:11:18 +01:00
Petr Sloup
a0fbf7fb79 Fix font compositing (close #32) 2016-07-26 18:56:32 +07:00
Petr Sloup
34befd43c9 Add xray viewer for vector data 2016-03-17 11:31:33 +01:00
Petr Sloup
4c40700bac Major refactoring of the urls (#5) 2016-03-10 18:26:26 +01:00
Petr Sloup
7bef26baed Support for serving raw vector tiles 2016-03-02 17:51:50 +01:00
Petr Sloup
565ed2dd74 Improved generation of TileJSONs 2016-03-02 13:11:43 +01:00