Save measured point to file

This commit is contained in:
2025-12-04 14:31:07 +01:00
parent 7e035f1414
commit 061e64fe98
9 changed files with 664 additions and 33 deletions
@@ -29,6 +29,7 @@ import 'package:terepi_seged/models/point_to_measure.dart';
import 'package:terepi_seged/models/point_with_description_model.dart';
import 'package:proj4dart/proj4dart.dart' as proj4;
import 'package:shared_preferences/shared_preferences.dart';
import 'package:terepi_seged/pages/map/presentation/views/measured_points_table_dialog.dart';
class MapViewController extends GetxController {
// String gpsAddress = "E8:31:CD:14:8B:B2";
@@ -59,6 +60,8 @@ class MapViewController extends GetxController {
DateTime.now().add(const Duration(seconds: -30));
NumberFormat formatEov = NumberFormat("##0,000.0", "hu-HU");
NumberFormat formatEovZ = NumberFormat("###0.0", "hu-HU");
NumberFormat formatAltitudeError = NumberFormat("####0.000", "hu-HU");
NumberFormat formatEovForFile = NumberFormat("#####0.0", "hu-HU");
NumberFormat formatWgs84Sec = NumberFormat('00.000', 'hu-HU');
@@ -128,6 +131,8 @@ class MapViewController extends GetxController {
// late StateMachineController riveGpsIconController;
late SharedPreferences prefs;
Rx<bool> isShowPassword = false.obs;
final passwordFieldFocusNode = FocusNode();
late AuthResponse authResponse;
late Session? session;
@@ -1062,4 +1067,63 @@ class MapViewController extends GetxController {
}
void updatePointStatus(int pointId) {}
void toggleShowPassword() {
isShowPassword.value = !isShowPassword.value;
if (passwordFieldFocusNode.hasPrimaryFocus) return;
passwordFieldFocusNode.canRequestFocus = false;
}
void showMeasuredPointsTableDialog() {
Get.to(() => MeasuredPointsTableDialog(), transition: Transition.fadeIn);
}
Future<List> readMeasuredPoints() async {
var response = await Supabase.instance.client
.from('TerepiSeged_MeasuredPoints')
.select()
.eq('projectId', 2)
.order('created_at');
print(response);
return response;
}
void SaveMeasuredPointsToFile() async {
var pointsDirectory = await getExternalStorageDirectory();
print(directory!.path);
// String newPath = '';
// List<String> folders = directory!.path.split("/");
// for (int i = 1; i < folders.length; i++) {
// String folder = folders[i];
// if (folder != "Android") {
// newPath += "/" + folder;
// } else {
// break;
// }
// }
// newPath = newPath + "/TerepisSegedApp";
// directory = Directory(newPath);
if (!await pointsDirectory!.exists()) {
await pointsDirectory.create(recursive: true);
}
var measuredPointsFile = File("${directory!.path}/measuredsPoints.csv");
if (await pointsDirectory.exists()) {
if (!await measuredPointsFile.exists()) {
measuredPointsFile.writeAsString(
"Id;DateTime;Description;EovX;EovY;Latitude;Longitude;Altitude;Hor.Err;Vert.Err\r\n");
}
}
var data = await readMeasuredPoints();
data.forEach((d) {
print("Data EovX: ${d['EovX']}");
print("Data EovY: $d[EovY]");
});
print('Number of data: ${data.length}');
}
}