Initial commit: Компас Цель — Android приложение для навигации по GPS

This commit is contained in:
ua1zbe
2026-08-11 14:11:07 +03:00
commit e92e7b06a2
25 changed files with 1192 additions and 0 deletions

74
README.md Normal file
View File

@@ -0,0 +1,74 @@
# Компас Цель (Compass Target)
Android-приложение на Kotlin для определения направления и расстояния до цели по GPS.
![Android](https://img.shields.io/badge/Android-7.0%2B-green) ![Kotlin](https://img.shields.io/badge/Kotlin-2.2.21-purple) ![License](https://img.shields.io/badge/License-GPLv3-blue)
## Описание
Приложение показывает на карте-компасе направление, расстояние и высоту до выбранной цели (репитер, метка, точка сбора). Интерфейс в тёмной теме, всё обновляется в реальном времени.
**Координаты цели (по умолчанию):** 67.370898, 32.489668
## Возможности
- 📍 **Дистанция до цели** — метры/километры, обновление в реальном времени
- 🧭 **Компас с фиксированным севером** — красная стрелка показывает азимут на цель, белый треугольник — ориентацию телефона
- 🛰️ **Спутники** — счётчик и разбивка по созвездиям: GPS, ГЛОНАСС, Galileo, BeiDou
- 📏 **Азимут** — в градусах и словесно (С, СВ, В, ЮВ, Ю, ЮЗ, З, СЗ)
- ⛰️ **Высота над уровнем моря** и точность GPS (± м)
- 🎯 **10 редактируемых целей** — название, широта, долгота; сохранение между запусками
- 📍 **Вставка текущих координат** в поле цели одной кнопкой
- 🌙 Тёмная тема, экран не гаснет
## Цели по умолчанию
| № | Название | Широта | Долгота |
|---|----------|--------|---------|
| 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 |
## Как пользоваться
1. **Установите APK** из релизов → `app-debug.apk`
2. Разрешите доступ к геолокации (GPS)
3. Тап по названию цели сверху — выбор из 10 целей
4. Кнопка **«Редактировать…»** — изменить цель или вставить текущие координаты
5. Следуйте за красной стрелкой компаса
## Сборка
Требования: JDK 17+, Android SDK (platform 34), Gradle 9.2+.
```bash
echo "sdk.dir=/путь/к/Android/Sdk" > local.properties
gradle :app:assembleDebug --no-daemon
adb install -r app/build/outputs/apk/debug/app-debug.apk
```
Ресурсы сборки ограничены в `gradle.properties` (под слабые ПК).
## Структура
```
app/src/main/java/com/ua1zbe/compass/
├── MainActivity.kt — GPS, компас, сенсоры, меню и редактирование целей
├── CompassView.kt — отрисовка компаса (Canvas)
└── TargetsStore.kt — хранение целей (SharedPreferences/JSON)
```
## Примечания
- Компас использует магнитометр — при неточных показаниях калибруйте телефон «восьмёркой»
- Высота берётся из GPS
- ГЛОНАСС и другие созвездия определяются через `GnssStatus` (Android 7+)
## Лицензия
GPL-3.0