SearchResult.fromJson constructor
//////////// //////////// Creates a search result from a Mapbox API response
Implementation
// II.C - Factory Methods
///////////////
/// Creates a search result from a Mapbox API response
factory SearchResult.fromJson(Map<String, dynamic> json, {geo.Position? userPosition}) {
// Extract coordinates
final List<double> coords = List<double>.from(json['center']);
final lng = coords[0];
final lat = coords[1];
// Calculate distance from user if available
double? distance;
if (userPosition != null) {
distance = geo.Geolocator.distanceBetween(
userPosition.latitude,
userPosition.longitude,
lat,
lng
);
}
// Extract address components if available
final addressComponents = _extractAddressComponents(json);
return SearchResult(
id: json['id'] as String,
name: json['text'] as String,
placeName: json['place_name'] as String,
lat: lat,
lng: lng,
type: json['place_type'][0] as String,
addressComponents: addressComponents,
proximityDistance: distance,
);
}