SharedMapWidget és térkép nézet refraktorálása
This commit is contained in:
@@ -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',
|
||||
),
|
||||
),
|
||||
]),
|
||||
|
||||
Reference in New Issue
Block a user