Location.fromJson constructor

Location.fromJson(
  1. Map<String, dynamic> json
)

Implementation

factory Location.fromJson(Map<String, dynamic> json) {
  double? lat = json["latitude"]?.toDouble();
  double? lon = json["longitude"]?.toDouble();

  // 经纬度有效性检查:
  // 1. 值不为null
  // 2. 值不为0
  // 3. 纬度在 -90 到 90 之间
  // 4. 经度在 -180 到 180 之间
  bool valid = false;
  if (lat != null && lon != null) {
    if (lat != 0 &&
        lat >= -90 &&
        lat <= 90 &&
        lon != 0 &&
        lon >= -180 &&
        lon <= 180) {
      valid = true;
    }
  }

  return Location(
    latitude: lat,
    longitude: lon,
    isValid: valid,
  );
}