https://github.com/perliedman/ocad2tiles
Create raster images and tiles (image pyramids) from OCAD map files
https://github.com/perliedman/ocad2tiles
Last synced: 11 months ago
JSON representation
Create raster images and tiles (image pyramids) from OCAD map files
- Host: GitHub
- URL: https://github.com/perliedman/ocad2tiles
- Owner: perliedman
- License: agpl-3.0
- Created: 2021-01-02T11:28:05.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2025-01-06T17:53:46.000Z (over 1 year ago)
- Last Synced: 2025-06-30T04:18:14.094Z (about 1 year ago)
- Language: JavaScript
- Size: 690 KB
- Stars: 3
- Watchers: 3
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# OCAD to Tiles
Creates raster images and tiles from an OCAD map file. Tiles are suitable for use with for example [Leaflet](https://leafletjs.com/) or [OpenLayers](https://openlayers.org/).
For a more thorough introduction, see this [tutorial on making OCAD maps for the web](https://www.liedman.net/2022/01/05/orienteering-maps-for-the-web/).
## Installing
To use command line tools:
```shell
npm install -g ocad2tiles
```
To use as a library in your project:
```shell
npm install ocad2tiles
```
## Command line usage
### Create tiles
This will create a set of tiles (small, square raster images, sometimes also called image pyramid or image mosaic) suitable for use in map clients like Leaflet or OpenLayers.
The tool will create a number of directories, one per zoom level, in the output path. It also creates a small demo HTML page, `index.html`, where you can see the tiles result in a Leaflet map.
Optionally, using the `--serve` option, the tool will start a web server which
can serve the tiles, as well as the demo web page. This is a great way to quickly
test configuration without generating a lot of tiles.
Tiles are currently always written in PNG format.
Example:
```shell
ocad2tiles my-map-file.ocd /my/output/path
```
Detailed usage:
```
Usage: ocad2tiles [options] [OCAD MAP FILE] [OUTPUT PATH]
Options:
-n,--number-zoomlevels Number of zoom levels to generate (default: 4)
-o,--zoomlevel-offset Number to add to zoom level numbers (default: 0)
-s,--tile-size Tile size in pixels (default: 256)
-r,--base-resolution Base (most zoomed in) resolution used (default: 1)
-f,--fill Background color (HTML color, transparent as default)
-s,--serve Run as webserver, serving the tiles
-p,--port Port to run webserver on (see --serve) (default: 8080)
--show-hidden Include hidden symbols in the output
-h, --help display help for command
```
### Create image
Make a single raster image from an OCAD map file.
Supported output formats:
- PNG
- JPEG
- SVG
- PDF (basic support, currently limited control over page format and scale)
- WEBP
- GIF
- TIFF
- GeoJSON (not really an image, but convenient)
Output format is determined by the output path's extension
Example:
```shell
ocad2image my-map-file.ocd my-image.png
```
Detailed usage:
```
Usage: ocad2image [options] [OCAD MAP FILE] [OUTPUT PATH]
Options:
-b,--bounds bounds (xmin, ymin, xmax, ymax) in map CRS coordinates; defaults to map bounds
-r,--resolution resolution in meters per pixel (default: 1)
-f,--fill Background color (HTML color, transparent as default)
--show-hidden Include hidden symbols in the output
-h, --help display help for command
```
## API
### OcadTiler
```js
const OcadTiler = require('ocad2tiles')
const { readOcad } = require('ocad2geojson')
const metersPerPixel = 1
readOcad(pathToOcadMap).then(ocadFile => {
const tiler = new OcadTiler(ocadFile)
tiler.render(tiler.bounds, metersPerPixel, { outputPath: 'test.png' })
})
```