39 lines
906 B
Dart
39 lines
906 B
Dart
class LatLng {
|
|
final double lat;
|
|
final double lng;
|
|
|
|
LatLng(this.lat, this.lng);
|
|
LatLng.empty() : lat = 0, lng = 0;
|
|
|
|
/// must be formatted 'double, double'. For example 35.35217, 89.19659
|
|
factory LatLng.fromString(String latLng) {
|
|
final splitString = latLng.split(',');
|
|
final lat = double.parse(splitString[0].trim());
|
|
final lng = double.parse(splitString[1].trim());
|
|
|
|
return LatLng(lat, lng);
|
|
}
|
|
|
|
factory LatLng.fromJson(Map<String, dynamic> json) {
|
|
return LatLng(json['lat'] as double, json['lng'] as double);
|
|
}
|
|
|
|
Map<String, double> toJson() {
|
|
return {'lat': lat, 'lng': lng};
|
|
}
|
|
|
|
@override
|
|
bool operator ==(Object other) {
|
|
if (other is! LatLng) return false;
|
|
return hashCode == other.hashCode;
|
|
}
|
|
|
|
@override
|
|
int get hashCode => Object.hash(lat, lng);
|
|
|
|
@override
|
|
String toString() {
|
|
return '${lat.toString()}, ${lng.toString()}';
|
|
}
|
|
}
|