* handle local geojson files in styles and rendered tiles
- use 'file://' as indicator for local files
- add directory as default directory
- serve local files at
- add documentation for static file serving
- add some minor fixes (icon directory, directory checking, decodeURIComponent, extend error message)
* Update .gitignore
---------
Co-authored-by: Miko <miko@home-laptop.fritz.box>
Co-authored-by: Andrew Calcutt <acalcutt@techidiots.net>
* fix: tilesize should not be added to data endpoint
* fix: make tilesize and option of addtilejson urls
* docs: update tilesize info for index.json and rendered.json
* fix: lint
* 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>
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>
* 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>
* extended staticmap capabilities
* added allowRemoteMarkerIcons configuration option and restricted fetching of remote marker icons only when option is set to true;
asynchronously load all available icons in a settings object on server startup;
replaced fs.existsSync() call in serve_rendered when drawing marker icons with a check against available icons settings object;
* updated documentation for linecap parameter in staticmaps endpoint;
added linejoin parameter to staticmaps endpoint;
* added capability of staticmap endpoint to draw multiple paths
In WMTS the publicUrl path was missed and it was not working properly.
Similar story about wmts.tmpl: the baseUrl is not working properly when
tileserver is hidden behind the proxy with different root path.
* Minor bugfix: make baseUrl always use '/' in the end
Co-authored-by: Oleksandr Shyshatskyi <oshyshatskyi@cloudlinux.com>
Co-authored-by: acalcutt <acalcutt@techidiots.net>
* 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
variable file does not exist. Backtrace
ReferenceError: file is not defined
at serve_style.add (/usr/src/app/src/server.js:139:44)
at Proxy.add (/usr/src/app/src/serve_style.js:115:28)
at addStyle (/usr/src/app/src/server.js:121:31)
at fs.readdir (/usr/src/app/src/server.js:215:11)
at args (fs.js:140:20)
at internal/util.js:370:14
at getDirents (internal/fs/utils.js:149:7)
at FSReqWrap.req.oncomplete (fs.js:775:7)
The data sources structure was changed in the 'dynamic_styles' branch
introducing a tileJSON object. Adapt the code filling the preview
template to the change to get the correct file format instead of
"undefined".
See also f2dc13e.
Fix#440 Preview thumbnail missing for raster data source -- file suffix
"undefined"
* var -> let / const
* [].forEach -> for (... of ...)
* '...' + var -> template strings `...${var}`
* function -> arrow functions `=>`
* use === and !== instead of == and !=
https://github.com/klokantech/tileserver-gl/issues/274
Clean up wmts template with correct syntax
Update endpoint URL and change content type
After a good nights sleep I considered the structure of the endpoint link for WMTS, at the same time I cleaned up the code and added the correct content type for the response.
we are using `cors` middleware with default options which works for most
applications, but does not allow for fine tuning (whitelisting origins
etc.)
this change keeps CORS handling as default to preserve compatibility but
also allows for specying `--no-cors` option which makes it possible to
handle CORS in an independent proxy (NGINX, another node app etc.)