Bemérés nézet: pont bemérése, törlése, lista, mentés sqlite-ba, exportálás
This commit is contained in:
@@ -1,13 +1,81 @@
|
||||
class MeasuredPoint {
|
||||
final int? id;
|
||||
final int projectId;
|
||||
final String name;
|
||||
final double latitude;
|
||||
final double longitude;
|
||||
final double? eovY;
|
||||
final double? eovX;
|
||||
final double? eovZ;
|
||||
final double? latitude;
|
||||
final double? longitude;
|
||||
final double? altitude;
|
||||
final double? accuracy;
|
||||
final int? fixQuality;
|
||||
final DateTime timestamp;
|
||||
final String note;
|
||||
|
||||
const MeasuredPoint({
|
||||
this.id,
|
||||
required this.projectId,
|
||||
required this.name,
|
||||
required this.latitude,
|
||||
required this.longitude,
|
||||
this.eovY,
|
||||
this.eovX,
|
||||
this.eovZ,
|
||||
this.latitude,
|
||||
this.longitude,
|
||||
this.altitude,
|
||||
this.accuracy,
|
||||
this.fixQuality,
|
||||
required this.timestamp,
|
||||
this.note = '',
|
||||
});
|
||||
|
||||
Map<String, dynamic> toMap() => {
|
||||
if (id != null) 'id': id,
|
||||
'project_id': projectId,
|
||||
'name': name,
|
||||
'eov_y': eovY,
|
||||
'eov_x': eovX,
|
||||
'eov_z': eovZ,
|
||||
'latitude': latitude,
|
||||
'longitude': longitude,
|
||||
'altitude': altitude,
|
||||
'accuracy': accuracy,
|
||||
'fix_quality': fixQuality,
|
||||
'timestamp': timestamp.toIso8601String(),
|
||||
'note': note,
|
||||
};
|
||||
|
||||
factory MeasuredPoint.fromMap(Map<String, dynamic> m) => MeasuredPoint(
|
||||
id: m['id'] as int?,
|
||||
projectId: m['project_id'] as int,
|
||||
name: m['name'] as String,
|
||||
eovY: (m['eov_y'] as num?)?.toDouble(),
|
||||
eovX: (m['eov_x'] as num?)?.toDouble(),
|
||||
eovZ: (m['eov_z'] as num?)?.toDouble(),
|
||||
latitude: (m['latitude'] as num?)?.toDouble(),
|
||||
longitude: (m['longitude'] as num?)?.toDouble(),
|
||||
altitude: (m['altitude'] as num?)?.toDouble(),
|
||||
accuracy: (m['accuracy'] as num?)?.toDouble(),
|
||||
fixQuality: m['fix_quality'] as int?,
|
||||
timestamp: DateTime.parse(m['timestamp'] as String),
|
||||
note: m['note'] as String? ?? '',
|
||||
);
|
||||
|
||||
// ── CSV sor ───────────────────────────────────────────────────────
|
||||
|
||||
static String csvHeader() => 'Név;EOV Y;EOV X;EOV Z (tszf);'
|
||||
'Lat (WGS84);Lon (WGS84);Magasság (m);'
|
||||
'Pontosság (m);Fix minőség;Megjegyzés;Időbélyeg';
|
||||
|
||||
String toCsvRow() {
|
||||
String fmt(double? v, int dec) => v == null ? '' : v.toStringAsFixed(dec);
|
||||
return '${_csv(name)};'
|
||||
'${fmt(eovY, 1)};${fmt(eovX, 1)};${fmt(eovZ, 3)};'
|
||||
'${fmt(latitude, 8)};${fmt(longitude, 8)};${fmt(altitude, 3)};'
|
||||
'${fmt(accuracy, 4)};${fixQuality ?? ""};'
|
||||
'${_csv(note)};${timestamp.toIso8601String()}';
|
||||
}
|
||||
|
||||
/// Pontosvesszőt tartalmazó mezőket idézőjelbe teszi
|
||||
String _csv(String v) => v.contains(';') ? '"$v"' : v;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user