A map_survey-ben a bemért pontok mentése és elküldése. Hibajavítás: a field_trip-ben vonalak és területek megjelenítése szerkesztés után.
This commit is contained in:
@@ -19,6 +19,7 @@ import 'package:nmea/nmea.dart';
|
||||
import 'package:path_provider/path_provider.dart';
|
||||
import 'package:permission_handler/permission_handler.dart'
|
||||
as permission_handler;
|
||||
import 'package:share_plus/share_plus.dart';
|
||||
import 'package:supabase_flutter/supabase_flutter.dart';
|
||||
import 'package:terepi_seged/eov/convert_coordinate.dart';
|
||||
import 'package:terepi_seged/eov/eov.dart';
|
||||
@@ -30,6 +31,7 @@ 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_survey/presentations/views/measured_points_table_dialog.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
class MapSurveyController extends GetxController {
|
||||
// String gpsAddress = "E8:31:CD:14:8B:B2";
|
||||
@@ -873,4 +875,61 @@ class MapSurveyController extends GetxController {
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
void SaveMeasuredPointsToFile() async {
|
||||
// var pointsDirectory = await getExternalStorageDirectory();
|
||||
var pointsDirectory = await getApplicationDocumentsDirectory();
|
||||
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 oldMeasuredPointsFile = File("${directory!.path}/measuredsPoints.csv");
|
||||
|
||||
if (await oldMeasuredPointsFile.exists()) {
|
||||
await oldMeasuredPointsFile.delete();
|
||||
}
|
||||
|
||||
var measuredPointsFile =
|
||||
await File("${directory!.path}/measuredsPoints.csv").create();
|
||||
|
||||
if (await pointsDirectory.exists()) {
|
||||
if (await measuredPointsFile.exists()) {
|
||||
await measuredPointsFile.writeAsString(
|
||||
"Id;DateTime;Description;EovX;EovY;Altitude;Hor.Err;Vert.Err\r\n");
|
||||
}
|
||||
}
|
||||
|
||||
var data = await readMeasuredPoints();
|
||||
|
||||
data.forEach((d) {
|
||||
measuredPointsFile.writeAsStringSync(
|
||||
"${d['id']};${d['created_at']};${d['description']};${formatEov.format(d['eovY'])};${formatEov.format(d['eovX'])};${formatEovZ.format(d['altitude'] - d['poleHeight'])};${formatAltitudeError.format(d['horizontalError'])};${formatAltitudeError.format(d['verticalError'])}\r\n",
|
||||
flush: true,
|
||||
mode: FileMode.append,
|
||||
encoding: utf8);
|
||||
});
|
||||
|
||||
print('Number of data: ${data.length}');
|
||||
|
||||
final params = ShareParams(
|
||||
text: "Mérési eredmények",
|
||||
// files: [XFile('$measuredPointsFile')],
|
||||
files: [XFile("${directory!.path}/measuredsPoints.csv")],
|
||||
subject: 'Mérési eredmények',
|
||||
title: 'Mérési eredmények');
|
||||
|
||||
final result = await SharePlus.instance.share(params);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,6 +22,14 @@ class MeasuredPointsTableDialog extends StatelessWidget {
|
||||
Get.back();
|
||||
},
|
||||
icon: const Icon(Icons.close)),
|
||||
SizedBox(
|
||||
width: 10,
|
||||
),
|
||||
IconButton(
|
||||
onPressed: () {
|
||||
controller.SaveMeasuredPointsToFile();
|
||||
},
|
||||
icon: const Icon(Icons.save)),
|
||||
TextButton(
|
||||
style: ButtonStyle(
|
||||
overlayColor:
|
||||
|
||||
Reference in New Issue
Block a user