TencentLocation.fromMap constructor

TencentLocation.fromMap(
  1. Map map
)

Implementation

factory TencentLocation.fromMap(Map map) {
  final rawPois = map['poiList'];
  final poiList = <TencentPoi>[];
  if (rawPois is List) {
    for (final p in rawPois) {
      if (p is Map) poiList.add(TencentPoi.fromMap(p));
    }
  }

  TencentGeoAddress? geoAddress;
  final rawGeo = map['geoAddress'];
  if (rawGeo is Map) geoAddress = TencentGeoAddress.fromMap(rawGeo);

  final rawExtras = map['extras'];
  final extras = <String, Object?>{};
  if (rawExtras is Map) {
    rawExtras.forEach((key, value) {
      if (key is String) extras[key] = value;
    });
  }

  return TencentLocation(
    latitude: (map['latitude'] as num?)?.toDouble(),
    longitude: (map['longitude'] as num?)?.toDouble(),
    altitude: (map['altitude'] as num?)?.toDouble(),
    accuracy: (map['accuracy'] as num?)?.toDouble(),
    bearing: (map['bearing'] as num?)?.toDouble(),
    speed: (map['speed'] as num?)?.toDouble(),
    directionFromSensor: (map['directionFromSensor'] as num?)?.toDouble(),
    time: map['time'] as int?,
    source: LocationSourceX.fromWire(map['source'] as String?),
    coordinateType:
        CoordinateTypeCodec.fromWire(map['coordinateType'] as String?) ??
            CoordinateType.gcj02,
    geoAddress: geoAddress,
    poiList: poiList,
    indoorBuildingId: map['indoorBuildingId'] as String?,
    indoorBuildingFloor: map['indoorBuildingFloor'] as String?,
    elapsedRealtime: map['elapsedRealtime'] as int?,
    gpsRssi: map['gpsRssi'] as int?,
    verticalAccuracy: (map['verticalAccuracy'] as num?)?.toDouble(),
    cacheSource: (map['cacheSource'] as String?) ?? 'none',
    extras: extras,
  );
}