Maps: trim tile retention, simplify big tracks by zoom, thin POIs when zoomed out
Canvas (prev commit) made the big-track map self-recover but the Chromium compositor still hit 'tile memory limits exceeded' ~46x and 10k segments still janked. Three cheap levers: - tilecache: keepBuffer 2->1 and updateWhenZooming:false - fewer retained off-screen tiles in the compositor's raster budget on a high-DPI screen. - track/roads polylines: smoothFactor 2.5 (Douglas-Peucker in pixels) - a 10k-point track draws far fewer segments zoomed out, full detail zoomed in. - POI: cap markers by zoom (z>=16:500, 15:200, 14:80, 13:30) instead of a flat 500 - a handful near min-zoom, everything only when zoomed in close.
This commit is contained in:
parent
834204a58a
commit
06cc77fdec
4 changed files with 42 additions and 5 deletions
|
|
@ -73,3 +73,26 @@ reopen -> убрал достройку -> зум/таскание; буфер
|
|||
|
||||
Проверка: воспроизвести зум/таскание на треке 60км и на карте дорог, снять logcat, убедиться,
|
||||
что `tile memory limits exceeded` больше НЕ появляется, тайлы держатся.
|
||||
|
||||
### Итог проверки canvas (build 479) - помог частично
|
||||
Пользователь воспроизвёл на 479: "подвисло, но восстановилось" (раньше - только force-stop).
|
||||
Снял logcat + инспекция живой страницы через CDP (`test_recovery/cdp.js`,
|
||||
`adb forward ... webview_devtools_remote_<pid>`):
|
||||
- Canvas ПРИМЕНИЛСЯ: в DOM детали `svgPaths=0`, оверлей - canvas.
|
||||
- Но `tile_manager tile memory limits exceeded` всё равно ~46 раз (столько же). Значит бюджет
|
||||
растровых тайлов компоновщика забивают САМИ тайлы карты (высокий DPI: 1260 физ / 404 css ≈ 3x)
|
||||
+ объём трека, а не SVG. Canvas дал живучесть (само восстанавливается), но джанк от 10865
|
||||
сегментов остался.
|
||||
|
||||
### Догоняющие правки (по решению пользователя: урезать тайлы + меньше точек на зум-ауте + POI)
|
||||
1. `tilecache.js` - у тайл-слоя `keepBuffer: 1` (было 2) и `updateWhenZooming: false`: меньше
|
||||
офскрин-тайлов в памяти компоновщика, тайлы не грузятся в процессе зума.
|
||||
2. `main.js` - `smoothFactor: 2.5` на главных полилиниях трека (деталь, `showSessionDetail`) и
|
||||
на сегментах карты дорог (`showRoadsMap`). smoothFactor - допуск Дугласа-Пекера в ПИКСЕЛЯХ,
|
||||
поэтому сам прореживает: при зум-ауте точки сходятся в пиксели и выбрасываются (меньше
|
||||
сегментов), при зум-ине - полная детализация. Ровно "меньше точек на сильном зум-ауте".
|
||||
3. `poi.js` - кап маркеров POI масштабируется зумом (z>=16: 500, 15: 200, 14: 80, 13: 30):
|
||||
на сильном зум-ауте показываем горстку ближайших, а не всё подряд.
|
||||
|
||||
Проверка: воспроизвести тот же сценарий, снять logcat - ожидаем, что `tile memory limits
|
||||
exceeded` резко упадёт/исчезнет, джанк уйдёт; POI на малом зуме - мало маркеров.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue