Skip to content

josxha/vector-seamarks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vector-sea marks

This project provides sea mark vector tiles. It uses the data collected by the OpenSeaMap.

Why vector tiles?

  • Smaller file sizes
  • Better suited for offline usage
  • Support for high-DPI displays
  • Keep the sea marks upright when rotating the map
  • Possibility to change the style of the sea marks

Previous attempts

There have been some attempts in the past to generate vector tiles from the OpenSeaMap data. Some of them are:

The focus of this project are the following:

  • Reproducibility through documentation and availability of source code and assets
  • Use of available open source tools to reduce custom code and tools (osmium, tippecanoe, etc.)
  • Possibility to generate and self-host tiles
  • Support offline usage (small file sizes)
  • Usage of modern file formats and standards (MBTiles, PMTiles, GeoJSON, MVT, etc.)
  • Keep all resources centralized in one place (this GitHub repository)
  • Performant rendering of sea mark tiles
  • All documentation and discussions are in english to avoid regional fragmentation
  • Support for consumer devices (smartphones, tablets and laptops)

Not that important at the moment:

  • Not every feature from the OpenSeaMap is currently rendered ( e.g. Sectored and Directional Lights)
  • Completely up-to-date tiles (e.g. daily updates)
  • Plotters like Garmin or Raymarine are not supported

Generate vector tiles

  1. Download OpenSeaMap data
  2. Filter data to only include sea marks (seamark:type= exists)
  3. Convert data to GeoJSON
  4. Generate vector tiles from GeoJSON
  5. (optional) Convert them into PMTiles
  6. Serve vector tiles
  7. Display the tiles with by using Mapbox / MapLibre style JSON

Current limitations

  • Can't display small craft facilities if multiple are on the same point separated by a semicolon
  • Some sea marks are not rendered correctly

Discussions & Articles