SharedMapWidget és térkép nézet refraktorálása

This commit is contained in:
2026-05-16 14:47:34 +02:00
parent f2457817b2
commit d50a324e44
11 changed files with 1167 additions and 1050 deletions
+5 -4
View File
@@ -4,6 +4,7 @@ import 'dart:math';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:intl/intl.dart';
import 'package:terepi_seged/services/ntrip_service.dart';
import '../services/gnss/gnss_service.dart';
@@ -49,10 +50,10 @@ class CoordinatePanel extends StatelessWidget {
vertError: ctrl.gpsAltitudeError as RxDouble,
altitudeMsl: ctrl.gpsAltitude as RxDouble,
geoidSeparation: ctrl.gpsGeoidSeparation as RxDouble,
ntripConnected: ctrl.ntripIsConnected as RxBool,
ntripBytes: ctrl.ntripReceivedData as RxInt,
ntripPackets: ctrl.ntripDataPacketNumbers as RxInt,
ggaPackets: ctrl.ggaSenDataPacketNumber as RxInt,
ntripConnected: NtripService.to.isConnected,
ntripBytes: NtripService.to.receivedBytes,
ntripPackets: NtripService.to.packetCount,
ggaPackets: NtripService.to.ggaSentCount,
);
}
+17 -22
View File
@@ -1,5 +1,6 @@
// lib/widgets/shared_map_widget.dart
import 'dart:math' as math;
import 'dart:math';
import 'package:flutter/material.dart';
import 'package:flutter_map/flutter_map.dart';
import 'package:get/get.dart';
@@ -139,13 +140,17 @@ class _SharedMapWidgetState extends State<SharedMapWidget> {
// 2. Extra rétegek (terepbejárás elemei)
...widget.extraLayers,
// 3. Bemért pontok
if (Get.isRegistered<MapSurveyController>())
Obx(() => MarkerLayer(
markers: _buildMeasuredPointMarkers(),
)),
// if (Get.isRegistered<MapSurveyController>())
// Obx(() => MarkerLayer(
// markers: _buildMeasuredPointMarkers(),
// )),
// 4. Kitűzési célpont + vonal
if (Get.isRegistered<MapSurveyController>())
Obx(() => _buildStakeoutLayer(lat, lon)),
Obx(() {
final lat = GnssService.to.latitude.value;
final lon = GnssService.to.longitude.value;
return _buildStakeoutLayer(lat, lon);
}),
// 5. GPS pozíció
Obx(() {
final lat = GnssService.to.latitude.value;
@@ -187,19 +192,7 @@ class _SharedMapWidgetState extends State<SharedMapWidget> {
List<Marker> _buildMeasuredPointMarkers() {
if (!Get.isRegistered<MapSurveyController>()) return [];
return MapSurveyController.to.measuredPoints1
.map((point) => Marker(
point: LatLng(point.latitude, point.longitude),
width: 100,
height: 56,
alignment: Alignment.bottomCenter,
child: _LabeledMarker(
label: point.name,
icon: Icons.location_on,
color: Colors.blue,
),
))
.toList();
return MapSurveyController.to.pointNotesMarker;
}
Widget _buildStakeoutLayer(double lat, double lon) {
@@ -214,6 +207,10 @@ class _SharedMapWidgetState extends State<SharedMapWidget> {
final wgs = CoordConverterService.to
.eovToWgsPoint(ctrl.targetEovY.value, ctrl.targetEovX.value);
final targetLatLng = LatLng(wgs.y, wgs.x);
final dx = ctrl.eov.value.X - ctrl.targetEovX.value;
final dy = ctrl.eov.value.Y - ctrl.targetEovY.value;
final dist = sqrt(dx * dx + dy * dy);
final onTarget = dist < 0.05;
return Stack(children: [
// Szaggatott vonal
@@ -235,10 +232,8 @@ class _SharedMapWidgetState extends State<SharedMapWidget> {
label: ctrl.targetName.value,
icon: Icons.flag,
color: Colors.orange,
activeColor: ctrl.isOnTarget ? Colors.green : null,
sublabel: ctrl.isOnTarget
? '✓ Célponton'
: '${ctrl.distanceToTarget.toStringAsFixed(3)} m',
activeColor: onTarget ? Colors.green : null,
sublabel: onTarget ? '✓ Célponton' : '${dist.toStringAsFixed(3)} m',
),
),
]),