bobosm/DRAFT.md

1.1 KiB

Technical draft to explore dev

Choices

  • Find a good KeyValue DB to store things in disk

    • seld using kv
  • Authorization can be enabled via cli

    • bobosm oauth2 authorize
    • then it will store a file ~/.cache/bobosm/osm_session.json
  • TOML Config file

    • ~/.config/bobosm/config.toml
  • LSP

    • we need to make a MVP for using LSP
    • We can use LSP to provide auto_completions of tags and values in the editor
    • custom file extension .osm.txt or enabled on demand
    • we can use helix or nvim as it's compatible with LSP
  • Key sequence feature

How projection need to work

WGS84 (EPSG:4326) -> Web mercator (EPSG:3857) -> Screen coord

The camera will be always represented using WebMercator coordinates.

So the only thing is when we ingest the data elements, in layers, we will convert WGS to mercator.

Lexique WGS => WGS84 EPSG:4326 WM (web mercator) => EPSG:3857

Convert from WGS84 to WM https://wiki.openstreetmap.org/wiki/Mercator#Rust

https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames

Reorganize lib

Separate UI from Canvas?

Canvas:

UI: