bobosm/TODO.md

129 lines
3.9 KiB
Markdown

# TODO & Goals
- [x] 2024-06-07: Afficher un point avec raylib dans une fenêtre
- [x] 2024-06-24: Basic navigation
- [x] 2024-06-24: Keyboard navigations, location presets
- [x] 2024-06-25: Afficher les quartiers d'Aubevoye, afficher les rues
- [x] 2024-06-26: handle change in screen def
- [x] 2024-06-26: download and merge osm data in current bbox
- [x] 2024-06-27: basic name display
- [x] 2024-06-27: OSM download in a separated thread
- [x] 2024-06-27: Show basic POI
- [x] 2024-06-28: selection mode, multiple selection
- [x] 2024-06-28: View/Edit mode
- [x] open terminal with file edition
- [x] 2024-06-28: basic tags editing with help of external file
- [x] 2024-06-28: oauth2 with oauth2c
- [x] 2024-06-29: generate changeset
- [x] 2024-07-01: upload changeset
- [x] 2024-07-01: add success or error messages buffer
- [x] 2024-07-01: refacto with clippy
- [x] refacto renderer
- [ ] compute the real zoom
- [ ] hint key to select nodes
- [ ] vim-like commands sequence
- [ ] show every singular nodes
- [ ] create node
- [ ] configure proxy via env variable
- [ ] add basic CLI interface
- oauth2 status command
- [ ] show icons on POI
- [ ] vim-like text manual command bottom.
- `:Goto <coords>`
- `:Info`
- `:UploadChanges`
- [ ] create POI
- [ ] create Way
- [ ] immich photos integrations
- manage auth with immich
- fetch pictures around a bound
- fetch thumbnails
- on click fetch full photo (no perma link open on immich)
- [ ] implement validation of tags (LSP?)
- [ ] implement auto-completion of tags (LSP?)
- [ ] : basic edit of existing way
- add edit toggle button / keybinding
- draw node handles
- on left click, check if we are near a node handle
- move the data, mark the way and node as being modified.
- [ ] 2024-07-10: reimplement JOSM W mode (improve way accuracy module)
- feat: integrate [iD Tagging scheme](https://github.com/openstreetmap/id-tagging-schema)
- fix: have the right forumula to compute the zoom level
- fix bug: when chaing screen def, then zooming does not work
- fix carthesian projection
- External tags.osm.txt file
- write initial file
- automagically open default editor in a terminal emulator
- then watch for change with inotify
- on file write, update the tags struct of that node and mark that node as changed
- Edit ways
- Load GPS trace
- Pouvoir afficher les grandes villes mondiale
- Pouvoir se déplacer de façon basique
- Pouvoir afficher les limites lands/sea
- Pouvoir load et naviguer dans du raster
- Se connecter en OAuth2 à OSM
- Pouvoir ajouter un POI basique, upload un changeset sur le serveur de dev OSM
- Ajouter un chemin basique
- Killers features:
- work on wayland with no issues
- useful shortcuts
- work with relations
- panoramax viewer
- explore diverse databases
- wikidata
- explore commons picture
- explore panoramax
- adapted for:
- mapping with specials tags
- learn contributor habits with frequent tag
- Créer une base de données Sqlite avec index géo?
- Sqlite a déjà un RTree de base
- Tags edit on `/tmp/tags.txt`, open a dynamic editor like vim on another windows and allow to edit tags this way
- Distances de deux points sur une sphère avec la formule de Haversine
- https://fr.wikipedia.org/wiki/Formule_de_haversine
- `bobosm account login`
- `bobosm account status`
- `bobosm push --comment "Hello world"`
- `bobosm account logout`
## Tile
https://a.tile.openstreetmap.org/15/16511/11224.png
## Get bbox
https://norbertrenner.de/osm/bbox.html
## Get nodes on a area
curl -v https://api.openstreetmap.org/api/0.6/map.json -G -d "bbox=1.32495,49.16409,1.34585,49.18485" > map.json
## issues
- the `RTree` external struct does not support Debug trait
## Mercator projection
https://wiki.openstreetmap.org/wiki/Web_Mercator EPSG:3857
## Tag editing
Find a way to sort the tags by their importance.
Eg. put `building = ` first, because it's the first class tag