https://github.com/simonneutert/unreachable_tiles_map_editor
This is a simple map editor to track unreachable tiles on a map (mercator projection).
https://github.com/simonneutert/unreachable_tiles_map_editor
deno handlebars mapbox-gl-js oak
Last synced: 16 days ago
JSON representation
This is a simple map editor to track unreachable tiles on a map (mercator projection).
- Host: GitHub
- URL: https://github.com/simonneutert/unreachable_tiles_map_editor
- Owner: simonneutert
- License: mit
- Created: 2024-10-28T11:42:06.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-12-22T07:00:24.000Z (6 months ago)
- Last Synced: 2025-12-23T06:45:38.363Z (6 months ago)
- Topics: deno, handlebars, mapbox-gl-js, oak
- Language: JavaScript
- Homepage: https://utme.trojanischeresel.de
- Size: 1.49 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Unreachable Tiles Map Editor
This is a simple map editor to track unreachable tiles on a map (mercator
projection).\
It is built with Deno and Oak, and uses Handlebars for templating.\
> [!NOTE]\
> No tests were written for this project.\
> The main goal was to learn how to use [Deno](https://deno.com) (and
> [Oak](https://github.com/oakserver/oak)) and run on a VPS.\
> As the feature set is small, I decided to skip the tests for now.\
> Good enough software ships faster than perfect software. 🤙 #yoco
---
- [OpenFreeMap](https://openfreemap.org/) makes this possible!
- [MapLibreJS](https://maplibre.org/) makes this usable!
---

## Data format / JSON Schema
The json data for this project is a simple structure, with the bare minimum to
represent the unreachable tiles.
Supported tile zooms are 13, 14, 15, 16.
JSON Schema:
```json
{
"name": String,
"city": String,
"country": String,
"tiles_by_zoom": {
"String zoom": [
{
"String x": Integer,
"String y": Integer
}
]
}
}
```
Example:
```json
{
"name": "Truppenübungsgelände Baumholder",
"city": "Baumholder",
"country": "Germany",
"tiles_by_zoom": {
"13": [
{
"x": 4262,
"y": 2790
}
]
}
}
```
## Dependencies
Show Dependencies
- Deno v2
### Backend
- Oak v14 (because Deno docs suggested it - [hono🔥](https://hono.dev) has to
wait)
### Frontend
- Handlebars v4
- MapLibre GL JS v5
- Bootstrap v5
## Run this project
Show instructions
```bash
$ deno run --allow-net --allow-read --allow-env server.js
```
### Docker
Serve the project with Docker in --parallel mode. 🚀
```bash
$ docker build -t unreachable-tiles-map-editor .
$ docker run --rm -p 8000:8000 --env-file .env unreachable-tiles-map-editor
```
## Features
Show Features
- [x] Renders MapLibre/OpenFreeMap map
- [x] Users can interact with the map, adding additional polygons of unreachable
tiles
- [x] Edit unreachable tiles in multiple tile sizes
- [x] Render json data in a form
- [x] reset form and map
- [x] copy generated json data to clipboard
## Contributing
Show Contributing
### Suggest a new unreachable area
- suggest a new area of unreachable tiles (json format from the form)
- screenshot of the area
- short description of the area and some context
### Non-Technical Contributions
- Reporting a bug
- Discussing the current state of the code
- Submitting a fix
- Proposing new features
- Improving/adding documentation
### Technical Contributions
Feel free to contribute to this project. I suggest you to open an issue
describing the feature you want to implement or the bug you found and wait for
feedback before starting to code.
Forking this repository and submitting a pull request is the preferred way to
contribute.
#### Wishes
What I would love to add to this project:
- Adding a test suite 🥰 (Deno tests, for e2e I would prefer `playwright`)
- i18n support for Handlebars templates