Navigációs képernyőn útvonal megjelenítése supabase táblából és navigációs képernyővel történő indítás beállítások alapján
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 6s

This commit is contained in:
2026-10-04 22:24:31 +02:00
parent e3ff7d070c
commit f1bb0191d5
9 changed files with 1221 additions and 1 deletions
@@ -4,7 +4,9 @@ import 'package:flutter/material.dart';
import 'package:flutter_map/flutter_map.dart';
import 'package:get/get.dart';
import 'package:latlong2/latlong.dart';
import 'package:terepi_seged/models/vibro_nav_route.dart';
import 'package:terepi_seged/pages/vibro_nav/presentation/controllers/vibro_nav_controller.dart';
import 'package:terepi_seged/pages/vibro_nav/presentation/views/vibro_nav_routes_view.dart';
import 'package:terepi_seged/services/gnss/gnss_connection.dart';
import 'package:terepi_seged/services/gnss/gnss_device_service.dart';
import 'package:terepi_seged/services/gnss/gnss_service.dart';
@@ -27,6 +29,11 @@ class VibroNavView extends GetView<VibroNavController> {
style: const TextStyle(fontSize: 11),
)),
actions: [
IconButton(
icon: const Icon(Icons.alt_route),
tooltip: 'Útvonalak kezelése',
onPressed: VibroNavRoutesView.open,
),
Obx(() => IconButton(
icon: Icon(controller.showReservePoints.value
? Icons.circle_outlined
@@ -181,6 +188,7 @@ class _NavMap extends StatelessWidget {
subdomains: const ['mt0', 'mt1', 'mt2', 'mt3'],
maxNativeZoom: 18),
const _SourcePointsLayer(),
const _RoutesLayer(),
Obx(() => controller.trail.length > 1
? PolylineLayer(polylines: [
Polyline(
@@ -648,3 +656,30 @@ class _OutlinedLabel extends StatelessWidget {
);
}
}
/// A mai napra érvényes útvonalak (kerülők). Saját Obx-ben él, ezért
/// GNSS-frissítésre nem rajzolódik újra.
class _RoutesLayer extends StatelessWidget {
const _RoutesLayer();
@override
Widget build(BuildContext context) {
final c = VibroNavController.to;
return Obx(() {
final list = c.visibleRoutes;
if (list.isEmpty) return const SizedBox.shrink();
return PolylineLayer(polylines: [
for (final r in list)
for (final line in r.lines)
Polyline(
points: line,
strokeWidth: 5,
color:
VibroNavRoute.colorFor(r.routeKind, r.color).withOpacity(0.9),
borderStrokeWidth: 2,
borderColor: Colors.white,
),
]);
});
}
}