Skip to content

Building & Running

Requirements

  • JDK 23+
  • Gradle 8.12+ (wrapper included in woosmap-tiles/)

Quick Start

cd woosmap-tiles

# Run tests
./gradlew test

# Build fat jar
./gradlew shadowJar

# Generate tiles for Monaco (downloads sources on first run)
./scripts/generate.sh --area=monaco

Manual Run

java -jar build/libs/woosmap-tiles-0.1.0-SNAPSHOT.jar \
    --download \
    --area=monaco \
    --output=data/output.mbtiles

Common Options

Flag Description
--download Download missing source files automatically
--area=<region> Geofabrik region (e.g. monaco, france, planet)
--output=<path> Output path (.mbtiles or .pmtiles)
--threads=<n> Number of processing threads
--nodemap-type=array Use array node map (faster, more memory)

Visual Verification

After generating tiles, serve them locally with tileserver-gl:

# Install tileserver-gl
npm install -g tileserver-gl-light

# Serve tiles
tileserver-gl-light data/output.mbtiles

# Generate a matching style
cd ..
python -m elzar generate --style=streets -o style/test.json

Then open http://localhost:8080 and point it at the generated style.

Project Structure

woosmap-tiles/
├── build.gradle.kts                   # Gradle build (Planetiler 0.10.0, Kotlin, Shadow)
├── settings.gradle.kts
├── gradle.properties
├── schema.yml                         # Reference YAML for simple layers
├── src/main/kotlin/com/woosmap/tiles/
│   ├── WoosmapMain.kt                 # Entry point
│   ├── WoosmapProfile.kt              # Registers all layer handlers
│   ├── layers/
│   │   ├── Water.kt                   # Water polygons (YAML-eligible)
│   │   ├── Boundaries.kt              # Admin boundaries (YAML-eligible)
│   │   └── Roads.kt                   # Road network (Kotlin-only)
│   └── util/
│       ├── Languages.kt               # 85-language name copier
│       └── Networks.kt                # Transit network aliases
├── src/test/kotlin/com/woosmap/tiles/
│   └── layers/
│       ├── TestHelper.kt              # Shared test utilities
│       ├── WaterTest.kt
│       ├── BoundariesTest.kt
│       └── RoadsTest.kt
└── scripts/
    └── generate.sh                    # Build + run shortcut