deedd02efd
add LuaProfiler to dev shell
2025-06-11 22:06:54 +01:00
8637731c60
repaint map when orientation changes
...
this is in preparation for writing the road labels on the right way
up
2025-06-11 17:41:28 +01:00
b3f0628948
whitespace
2025-06-10 20:13:49 +01:00
d8963679d6
add compass rose
2025-06-10 20:13:41 +01:00
6c3f019ab7
only change orientation if course is > 20 degrees off
...
means we don't spin around quite as much, which is nice
2025-06-10 20:13:41 +01:00
eaa4ad895f
calculate road label placement on fetch not on render
2025-06-10 20:13:41 +01:00
13d56d59ba
remove road-width debug
2025-06-09 22:06:07 +01:00
988a30801b
add with-timing macro to see why it's slow
2025-06-09 22:05:38 +01:00
4aa140c264
always use callback in tiles.fetch (formerly polylines)
2025-06-09 13:30:11 +01:00
406cedbce1
extract tile-name
2025-06-09 13:19:47 +01:00
4edf246cf6
extract bounds= function
2025-06-09 13:05:43 +01:00
d7852700a5
rename smooth-course -> orientation
2025-06-09 10:21:58 +01:00
53e377cabd
widen map obunds so that rotation works
...
...without showing missing white bits in the corners when moving
diagonally
2025-06-08 19:10:11 +01:00
56f070ceee
refresh less often
2025-06-08 18:00:56 +01:00
8ec64bb1b0
rotate the map to face direction of travel
...
there is a bit of smoothing so it does not instantly lurch to the
new new course, as the visual effect was quite jarring
2025-06-08 17:59:46 +01:00
8c51113d6e
fix arrow to point in the right direction
2025-06-07 20:49:35 +01:00
ee286a0aef
rename map-{width,height} as viewport-{width,height}
2025-06-07 12:29:28 +01:00
2d2f592d73
add pixel dimensions in bounds
2025-06-07 12:28:20 +01:00
1ee968d3a2
pass bounds to draw-onto-map-surface instead of recalculating
2025-06-07 11:50:17 +01:00
f275190538
fetch correct tile from overpass not diagonally adjacent one
2025-06-06 21:39:31 +01:00
0b22a7e538
pass lat/lon/zoom to draw-onto-map-surface
...
this removes dependency on global state
and will make it simpler to generate map for arbitrary co-ordinates
2025-06-06 21:33:19 +01:00
beca254bf6
rename cairo-the-map -> draw-onto-map-surface
...
and make it take a surface directly, not a window
2025-06-06 21:31:31 +01:00
4c2bed5ef0
rewrite map-bounds to fetch fewer off-screen tiles
2025-06-06 21:14:19 +01:00
fef52f812a
add on-completion callback to tile fetcher, invalidate map-surface
2025-06-05 23:11:37 +01:00
cdd7ea3a94
add fennel-ls to shell derivation
...
I'm unsure whether it's actually useful or not, haven't tried it yet
2025-06-05 23:03:08 +01:00
63e592d33d
first go at varying the line width based on highway classification
2025-06-05 23:02:44 +01:00
e5e1060c3f
add colour/translucency to road name background
...
this is an experiment in making them look less like road when the
placement causes them to run off the end of the actual way
2025-06-04 00:16:58 +01:00
c53120ab2a
print fewer upside down road labels
2025-06-04 00:14:43 +01:00
e728052bb6
print each road name once only
2025-06-03 22:18:05 +01:00
7195dbb2d5
make road names bigger and print white behind them
2025-06-03 22:18:05 +01:00
84a80d7c79
upgrade lgi
2025-06-03 22:18:05 +01:00
7934d5ba13
off-white background colour
2025-06-03 22:18:05 +01:00
ccb47e3a3d
improve text placement
2025-06-03 22:18:05 +01:00
37767e007a
render road names (badly)
2025-06-03 22:18:05 +01:00
76228bc045
parse way name as well as points
2025-06-03 22:18:05 +01:00
39f687d6f5
pass zoom level to canvas
2025-06-03 22:18:05 +01:00
f8a4788ed6
draw roads fatter and with edging
2025-06-03 22:18:05 +01:00
7c18f4442b
async tile fetcher
...
we use cqueues, which is the async framework that lua-http is built
on. we integrate it into the glib event loop rather hackily by calling
the cqueues event stepper ever 20ms from a glib timeout function
overpass has very low rate limits so we handle a 429 response by
sleeping for a random length of time and retrying. This is, also,
a bit of a hack
2025-06-03 22:18:05 +01:00
dfbf6ac919
clobber map-surface when bounds change
2025-06-03 22:18:05 +01:00
1c065d77e4
draw map once only and copy it to screen in on_draw
...
This massively reduces cpu usage, however it doesn't yet work
if we've moved far enough that we'd need to fetch new tiles.
2025-06-03 22:18:05 +01:00
455c3f50c6
use register-widget more, fewer arrow widget repaints
2025-06-03 22:18:05 +01:00
0d60cc11cc
invalidate map only when app-state changes
2025-06-03 22:18:05 +01:00
8357aab222
invalidate the map display each time we repaint it
...
really we should only need to do this when the app-state changes
2025-06-03 22:18:05 +01:00
d5e82d3427
replace in-memory cache with a persistent json cache
...
we just store the raw response from overpass
2025-06-03 22:18:05 +01:00
ab4e4857f3
fetch enough tiles to cover the display
2025-06-03 22:18:01 +01:00
398693bc07
hook the ui up to the overpass data
2025-05-28 18:50:12 +01:00
dc95c2252e
convert lat/lon to tile x/y and back
2025-05-27 23:48:32 +01:00
1deaea2948
whitespace
2025-05-27 17:33:58 +01:00
239f897396
Merge remote-tracking branch 'origin/tninkpad'
2025-05-27 17:32:12 +01:00
ab8ca0d032
update with TODO list
2025-05-27 17:31:35 +01:00