Skip to content

πŸ“– ПанСль быстрого доступа (Π’ΡƒΠ»Π±Π°Ρ€ HUD) ​

🧠 1. Анатомия инструмСнта ΠΈ Π›ΠΎΠ³ΠΈΠΊΠ° Π΄Π²ΠΈΠΆΠΊΠ° (Tool Anatomy & Engine Logic) ​

  • Π§Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅? ΠŸΠ»Π°Π²Π°ΡŽΡ‰Π°Ρ панСль быстрого доступа (Route HUD) консолидируСт основныС дСйствия ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° BikeTrack: поиск, undo/redo, рСвСрс, Out & Back, Round Trip, сохранСниС, ΠΈΠΌΠΏΠΎΡ€Ρ‚, экспорт ΠΈ очистку Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π°.
  • Активация: ПанСль постоянно отобраТаСтся Π² Π»Π΅Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ ΠΊΠ°Ρ€Ρ‚Ρ‹. Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»ΡŒ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ keydown Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎ систСмным сочСтаниям (горячим клавишам).
  • Π€ΠΈΠ·ΠΈΠΊΠ° интСрфСйса (Basic UI Physics):
    • opacity-50 (ΠŸΠΎΠ»ΡƒΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ): Кнопка Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Undo, ΠΊΠΎΠ³Π΄Π° Π½Π° ΠΊΠ°Ρ€Ρ‚Π΅ Π½Π΅Ρ‚ Ρ‚ΠΎΡ‡Π΅ΠΊ, ΠΈΠ»ΠΈ Save для пустого Ρ‚Ρ€Π΅ΠΊΠ°).
    • Активная подсвСтка (Catppuccin Lavender background): ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ΅ дСйствиС ΠΈΠ»ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ состояниС ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π°.
    • ΠŸΠ»Π°Π²Π°ΡŽΡ‰ΠΈΠΉ Ρ‚ΡƒΠ»Ρ‚ΠΈΠΏ (Tooltip): Π§Π΅Ρ€Π½Ρ‹ΠΉ ΠΏΠΎΠ»ΡƒΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ, Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ курсора, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ инструмСнта ΠΈ Π΅Π³ΠΎ Π³ΠΎΡ€ΡΡ‡ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Reverse (R)).
  • actual_bike_track_interface.png

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π°Ρ инструкция для Арт-Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€Π°: Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ снимок Π»Π΅Π²ΠΎΠ³ΠΎ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ ΡƒΠ³Π»Π° экрана, Π³Π΄Π΅ ΠΎΡ‚Ρ‡Π΅Ρ‚Π»ΠΈΠ²ΠΎ Π²ΠΈΠ΄Π΅Π½ ΠΏΠ»Π°Π²Π°ΡŽΡ‰ΠΈΠΉ Ρ‚ΡƒΠ»Π±Π°Ρ€ HUD с 16 ΠΈΠΊΠΎΠ½ΠΊΠ°ΠΌΠΈ, ΠΎΠ΄Π½Π° ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… находится ΠΏΠΎΠ΄ курсором ΠΌΡ‹ΡˆΠΈ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌ Ρ‚ΡƒΠ»Ρ‚ΠΈΠΏΠΎΠΌ подсказки.

🎬 2. ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° сцСнариСв (ВсС ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ взаимодСйствия) ​

Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ А: Π Π°Π·Π²ΠΎΡ€ΠΎΡ‚ направлСния ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π° (Reverse Route) ​

  • ДСйствиС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ: ΠΠ°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ ΠΎΡ‚ Π”ΠΎΠΌΠ° Π΄ΠΎ ΠžΠ·Π΅Ρ€Π°, Π·Π°Ρ‚Π΅ΠΌ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ πŸ”„ Reverse Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ ΠΈΠ»ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ R Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅.
  • РСакция систСмы (Магия): ΠœΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹ Start ΠΈ Finish ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ мСстами Π½Π° ΠΊΠ°Ρ€Ρ‚Π΅. Π‘Ρ‚Ρ€Π΅Π»ΠΊΠΈ направлСния двиТСния Π½Π° синСй Π»ΠΈΠ½ΠΈΠΈ Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΡƒΡŽ сторону. Π“Ρ€Π°Ρ„ΠΈΠΊ высот Π²Π½ΠΈΠ·Ρƒ Π·Π΅Ρ€ΠΊΠ°Π»ΡŒΠ½ΠΎ отраТаСтся ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ.
  • Π€ΠΈΠ·ΠΈΠΊΠ° процСсса (Β«ΠŸΠΎΡ‡Π΅ΠΌΡƒΒ»): ΠœΠ΅Ρ‚ΠΎΠ΄ reverseWaypoints Π² Zustand-Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ usePlannerStore ΠΏΠ΅Ρ€Π΅Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅Ρ‚ массив waypoints Π·Π°Π΄ΠΎΠΌ Π½Π°ΠΏΠ΅Ρ€Π΅Π΄ (waypoints.reverse()) ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ с Π½ΠΎΠ²Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ, мСняя Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ двиТСния.
  • actual_elevation_profile.png

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π°Ρ инструкция: Π—Π΅Ρ€ΠΊΠ°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚Ρ‹ΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊ высот послС ΠΊΠ»ΠΈΠΊΠ° Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Reverse.

Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ Π‘: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡƒΡ‚ΠΈ Ρ‚ΡƒΠ΄Π°-ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ (Out & Back) ​

  • ДСйствиС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ: ΠΠ°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡƒΡ‚ΡŒ Π΄Π»ΠΈΠ½ΠΎΠΉ 10 ΠΊΠΌ, Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Out & Back (Π’ΡƒΠ΄Π°-ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ) ΠΈΠ»ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ O Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅.
  • РСакция систСмы (Магия): Π”Π»ΠΈΠ½Π° ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π° Π² ΠΏΠ°Π½Π΅Π»ΠΈ Ρ‚Π΅Π»Π΅ΠΌΠ΅Ρ‚Ρ€ΠΈΠΈ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ удваиваСтся Π΄ΠΎ 20 km. Π’ΠΎΡ‡ΠΊΠ° Ρ„ΠΈΠ½ΠΈΡˆΠ° Π½Π° ΠΊΠ°Ρ€Ρ‚Π΅ возвращаСтся Π² Ρ‚ΠΎΡ‡ΠΊΡƒ старта. Π“Ρ€Π°Ρ„ΠΈΠΊ высот ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ сначала подъСм, Π° Π·Π°Ρ‚Π΅ΠΌ симмСтричный спуск.
  • Π€ΠΈΠ·ΠΈΠΊΠ° процСсса (Β«ΠŸΠΎΡ‡Π΅ΠΌΡƒΒ»): Алгоритм Π±Π΅Ρ€Π΅Ρ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ массив ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ, ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ, ΠΏΠ΅Ρ€Π΅Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅Ρ‚ копию ΠΈ ΠΏΡ€ΠΈΡˆΠΈΠ²Π°Π΅Ρ‚ Π΅Π΅ Π² хвост исходного массива, автоматичСски замыкая ΠΏΡƒΡ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ.
  • actual_route_builder.png

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π°Ρ инструкция: Π—Π°ΠΌΠΊΠ½ΡƒΡ‚Ρ‹ΠΉ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ Ρ‚ΡƒΠ΄Π°-ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ с Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ Ρ„ΠΈΠ½ΠΈΡˆΠ°, Π½Π°Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ Π½Π° Ρ‚ΠΎΡ‡ΠΊΡƒ старта.

Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ Π’: АвтоматичСскоС ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (Fit Viewport) ​

  • ДСйствиС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ: ΠŸΡ€ΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ Π½Π° 100 ΠΊΠΌ, Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ сильно ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρƒ Π½Π° ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ пСрСкрСсток, потСряв ΠΈΠ· Π²ΠΈΠ΄Ρƒ старт ΠΈ Ρ„ΠΈΠ½ΠΈΡˆ, Π·Π°Ρ‚Π΅ΠΌ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ β›Ά Fit Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ ΠΈΠ»ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ F.
  • РСакция систСмы (Магия): ΠšΠ°Ρ€Ρ‚Π° ΠΏΠ»Π°Π²Π½ΠΎ отдалится ΠΈ цСнтрируСтся Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ вСсь 100-ΠΊΠΈΠ»ΠΎΠΌΠ΅Ρ‚Ρ€ΠΎΠ²Ρ‹ΠΉ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ идСально умСстился Π½Π° экранС.
  • Π€ΠΈΠ·ΠΈΠΊΠ° процСсса (Β«ΠŸΠΎΡ‡Π΅ΠΌΡƒΒ»): ΠšΠ»ΠΈΠ΅Π½Ρ‚ вычисляСт гСографичСскиС Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ (Bounding Box) массива ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ LineString ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ map.fitBounds(bounds, { padding: 50 }) Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ MapLibre GL.
  • actual_bike_track_interface.png

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π°Ρ инструкция: ΠšΠ°Ρ€Ρ‚Π° ΠΎΡ‚Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠ²Π°Π½Π° Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ Π²ΠΈΠ΄Π΅Π½ вСсь Ρ‚Ρ€Π΅ΠΊ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ ΠΎΡ‚ старта Π΄ΠΎ Ρ„ΠΈΠ½ΠΈΡˆΠ°.

🚨 3. Π—Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ Π΄ΡƒΡ€Π°ΠΊΠ° ΠΈ ΠšΡ€Π°ΠΉΠ½ΠΈΠ΅ случаи (QA Guide) ​

  • ДСструктивный сцСнарий: Π‘Π»ΡƒΡ‡Π°ΠΉΠ½Ρ‹ΠΉ ΠΊΠ»ΠΈΠΊ ΠΏΠΎ reset/clear Π²ΠΎ врСмя построСния ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π°.
  • РСакция UI: ДСйствиС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌ ΠΈ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠΌΡ‹ΠΌ Ρ‡Π΅Ρ€Π΅Π· ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ, Ссли состояниС ΡƒΠΆΠ΅ ΠΏΠΎΠΏΠ°Π»ΠΎ Π² undo stack.
  • Π’ΠΎΡ‡Π½Ρ‹ΠΉ тСкст ошибки (Toast): ΠŸΡ€ΠΈ Ρ€Π°Π·Π²ΠΎΡ€ΠΎΡ‚Π΅ Ρ‚Ρ€Π΅ΠΊΠ° выводится тост: "НаправлСниС ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ."