Távolság vagy terület mérése a térképen terepbejárás nézetben

This commit is contained in:
2026-07-05 01:41:15 +02:00
parent 2dc7768f5f
commit 80f7c8d571
4 changed files with 369 additions and 0 deletions
@@ -26,6 +26,7 @@ import 'package:terepi_seged/core/geometry_measure_formatter.dart';
import 'package:terepi_seged/core/geopackage_exporter.dart';
import 'package:terepi_seged/core/style_editable.dart';
import 'package:terepi_seged/enums/map_edit_tool.dart';
import 'package:terepi_seged/enums/map_measure_type.dart';
import 'package:terepi_seged/enums/map_survey_mode.dart';
import 'package:terepi_seged/enums/note_type.dart';
import 'package:terepi_seged/eov/convert_coordinate.dart';
@@ -240,6 +241,11 @@ class MapSurveyController extends GetxController implements StyleEditable {
}
}
final mapMeasureType = MapMeasureType.none.obs;
final distanceOrAreaMeasurePoints = <LatLng>[].obs;
bool get isDistanceOrAreaMeasuring =>
mapMeasureType.value != MapMeasureType.none;
// NoteItem? get selectedPoint =>
// pointNotes.firstWhereOrNull((n) => n.id == selectedNoteItemId.value);
@@ -1985,4 +1991,31 @@ class MapSurveyController extends GetxController implements StyleEditable {
void toggleShowLines() => showLines.value = !showLines.value;
void toggleShowPolygons() => showPolygons.value = !showPolygons.value;
void toggleMeasureDistance() {
if (mapMeasureType.value == MapMeasureType.distance) {
mapMeasureType.value = MapMeasureType.none;
} else {
mapMeasureType.value = MapMeasureType.distance;
}
distanceOrAreaMeasurePoints.clear();
}
void toggleMeasureArea() {
if (mapMeasureType.value == MapMeasureType.area) {
mapMeasureType.value = MapMeasureType.none;
} else {
mapMeasureType.value = MapMeasureType.area;
}
distanceOrAreaMeasurePoints.clear();
}
void addDistanceOrAreaMeasuredPoint(LatLng point) =>
distanceOrAreaMeasurePoints.add(point);
void removeLastDistanceOrAreaMeasuredPoint() {
if (distanceOrAreaMeasurePoints.isNotEmpty) {
distanceOrAreaMeasurePoints.removeLast();
}
}
}