# Компас Цель — Android приложение (Kotlin) Приложение показывает направление и расстояние от вашего текущего GPS-местоположения до выбранной цели (репитер, метка, объект). Работает в тёмной теме, с компасом и счётчиком спутников. --- ## Возможности - **Дистанция до цели** в метрах/километрах — обновляется в реальном времени - **Компас с фиксированным севером** — N всегда сверху: - красная стрелка — направление на выбранную цель (абсолютный азимут) - белый треугольник — куда направлен телефон - стрелка скрыта, пока нет GPS-фикса - **Азимут на цель** в градусах и словесно (С, СВ, В, ЮВ, Ю, ЮЗ, З, СЗ) - **Высота** над уровнем моря - **Спутники** — количество используемых и разбивка по созвездиям: GPS, ГЛОНАСС, Galileo, BeiDou - **Точность GPS** (± метры) - **10 целей** — выбор и редактирование (название, широта, долгота), сохранение между запусками - **Вставка текущих координат** в поле цели одной кнопкой - Экран не гаснет во время работы --- ## Быстрый старт 1. Установите APK: `app/build/outputs/apk/debug/app-debug.apk` 2. Запустите приложение 3. Разрешите доступ к геолокации (GPS) — без этого приложение не работает 4. Подождите фикса GPS (до 1–2 минут на улице) --- ## Цели по умолчанию | № | Название | Широта | Долгота | |---|----------|--------|---------| | 1 | П-Зори DMR | 67.371 | 32.48967 | | 2 | R1ZBF-SVX | 67.3685 | 32.49 | | 3 | Лысая Гора | 67.43083 | 32.4535 | | 4 | Апатиты DMR | 67.55917 | 33.40967 | | 5 | Кировск DMR | 67.602 | 33.72767 | | 6 | Мончегорск DMR | 67.93883 | 32.9375 | | 7 | R1ZCU-SVX | 69.00283 | 33.102 | | 8 | R1ZAAG-HE | 69.0735 | 33.43167 | --- ## Как пользоваться ### Выбор цели - **Тапните по названию цели вверху экрана** (например «ЦЕЛЬ: П-Зори DMR ▾») - В открывшемся списке выберите нужную цель — дистанция и стрелка обновятся сразу ### Редактирование цели 1. Тапните по названию цели сверху → кнопка **«Редактировать…»** 2. Измените название, широту, долготу 3. **«Вставить текущие координаты»** — автоматически подставит ваше текущее местоположение 4. **«Сохранить»** — изменения сохраняются между запусками ### Чтение экрана - **Центр круга** — дистанция до выбранной цели - **Красная стрелка** — куда идти/смотреть на цель - **Белый треугольник** — ориентация телефона - **Карточка под компасом** — азимут, высота, спутники, точность GPS - **Строка внизу** — ваши координаты и координаты цели --- ## Сборка проекта Требования: JDK 17+, Android SDK (platform 34), Gradle (используется 9.2.0). ```bash # локальный SDK echo "sdk.dir=/путь/к/Android/Sdk" > local.properties # сборка debug APK (ограниченные ресурсы — под слабые ПК) gradle :app:assembleDebug --no-daemon # установка на телефон по USB (режим отладки включён) adb install -r app/build/outputs/apk/debug/app-debug.apk ``` Ресурсы сборки ограничены в `gradle.properties` (heap 1 ГБ, 2 воркера, без параллелизма) — при мощном ПК можно убрать. ### Структура ``` app/src/main/java/com/ua1zbe/compass/ ├── MainActivity.kt — GPS, компас, сенсоры, меню и редактирование целей ├── CompassView.kt — отрисовка компаса (канвас) └── TargetsStore.kt — хранение целей (SharedPreferences/JSON) ``` --- ## Примечания - Компас использует магнитометр и акселерометр — калибруйте телефон восьмёркой при неточных показаниях - Высота берётся из GPS (приборная, над уровнем моря) - ГЛОНАСС и другие созвездия видны автоматически через `GnssStatus` (Android 7+)