80 lines
2.8 KiB
Dart
80 lines
2.8 KiB
Dart
/// Egy mérési felvétel (lövés) a PC-szoftver által feltöltött
|
||||
|
|
/// `terepi_seged_measure_records` táblából.
|
|||
|
|
///
|
|||
|
|
/// SZÁNDÉKOSAN nincs helyi tükör — ez a PC-szoftverből folyamatosan,
|
|||
|
|
/// élőben érkező adat, mindig friss, sosem gyorsítótárazott (lásd
|
|||
|
|
/// MeasureDataService.watchRecords).
|
|||
|
|
class MeasuredRecord {
|
|||
|
|
final int id;
|
|||
|
|
final String projectId;
|
|||
|
|
final double? sourceLineNumber;
|
|||
|
|
final double? sourcePointNumber;
|
|||
|
|
final DateTime measuredAt;
|
|||
|
|
final double? eovX;
|
|||
|
|
final double? eovY;
|
|||
|
|
final int? gpsTimeInMicroseconds;
|
|||
|
|
final int? minReceiverPointNumber;
|
|||
|
|
final int? minReceiverPointFduNumber;
|
|||
|
|
final int? maxReceiverPointNumber;
|
|||
|
|
final int? maxReceiverPointFduNumber;
|
|||
|
|
final String? imagePath;
|
|||
|
|
final String? imageUrl;
|
|||
|
|
final int? ffid;
|
|||
|
|
final int? recordType;
|
|||
|
|
final int? recordSerialNumberOfSourcePoint;
|
|||
|
|
|
|||
|
|
const MeasuredRecord({
|
|||
|
|
required this.id,
|
|||
|
|
required this.projectId,
|
|||
|
|
this.sourceLineNumber,
|
|||
|
|
this.sourcePointNumber,
|
|||
|
|
required this.measuredAt,
|
|||
|
|
this.eovX,
|
|||
|
|
this.eovY,
|
|||
|
|
this.gpsTimeInMicroseconds,
|
|||
|
|
this.minReceiverPointNumber,
|
|||
|
|
this.minReceiverPointFduNumber,
|
|||
|
|
this.maxReceiverPointNumber,
|
|||
|
|
this.maxReceiverPointFduNumber,
|
|||
|
|
this.imagePath,
|
|||
|
|
this.imageUrl,
|
|||
|
|
this.ffid,
|
|||
|
|
this.recordType,
|
|||
|
|
this.recordSerialNumberOfSourcePoint,
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
factory MeasuredRecord.fromMap(Map<String, dynamic> m) => MeasuredRecord(
|
|||
|
|
id: m['id'] as int,
|
|||
|
|
projectId: m['project_id'] as String,
|
|||
|
|
sourceLineNumber: (m['source_line_number'] as num?)?.toDouble(),
|
|||
|
|
sourcePointNumber: (m['source_point_number'] as num?)?.toDouble(),
|
|||
|
|
measuredAt: DateTime.parse(m['measured_at'] as String),
|
|||
|
|
eovX: (m['eov_x'] as num?)?.toDouble(),
|
|||
|
|
eovY: (m['eov_y'] as num?)?.toDouble(),
|
|||
|
|
gpsTimeInMicroseconds: (m['gps_time_in_microseconds'] as num?)?.toInt(),
|
|||
|
|
minReceiverPointNumber:
|
|||
|
|
(m['min_receiver_point_number'] as num?)?.toInt(),
|
|||
|
|
minReceiverPointFduNumber:
|
|||
|
|
(m['min_receiver_point_fdu_number'] as num?)?.toInt(),
|
|||
|
|
maxReceiverPointNumber:
|
|||
|
|
(m['max_receiver_point_number'] as num?)?.toInt(),
|
|||
|
|
maxReceiverPointFduNumber:
|
|||
|
|
(m['max_receiver_point_fdu_number'] as num?)?.toInt(),
|
|||
|
|
imagePath: m['image_path'] as String?,
|
|||
|
|
imageUrl: m['image_url'] as String?,
|
|||
|
|
ffid: (m['ffid'] as num?)?.toInt(),
|
|||
|
|
recordType: (m['record_type'] as num?)?.toInt(),
|
|||
|
|
recordSerialNumberOfSourcePoint:
|
|||
|
|
(m['record_serial_number_of_source_point'] as num?)?.toInt(),
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
bool get hasImage =>
|
|||
|
|
(imageUrl != null && imageUrl!.isNotEmpty) ||
|
|||
|
|
(imagePath != null && imagePath!.isNotEmpty);
|
|||
|
|
|
|||
|
|
String? get geophoneRange =>
|
|||
|
|
(minReceiverPointNumber != null && maxReceiverPointNumber != null)
|
|||
|
|
? '$minReceiverPointNumber–$maxReceiverPointNumber'
|
|||
|
|
: null;
|
|||
|
|
}
|