extractMetadata static method
Extracts additional metadata from Google Maps URLs when available
Implementation
static Map<String, dynamic>? extractMetadata(String url) {
final Map<String, dynamic> metadata = <String, dynamic>{};
// Extract zoom level
final RegExpMatch? zoomMatch = RegExp(r'[?&]z=(\d+)').firstMatch(url);
if (zoomMatch != null) {
metadata['zoom'] = int.tryParse(zoomMatch.group(1)!) ?? 15;
}
// Extract map type
if (url.contains('t=k') || url.contains('layer=c')) {
metadata['mapType'] = 'satellite';
} else if (url.contains('t=h')) {
metadata['mapType'] = 'hybrid';
} else if (url.contains('t=p')) {
metadata['mapType'] = 'terrain';
} else {
metadata['mapType'] = 'roadmap';
}
// Extract place name if available
final RegExpMatch? placeMatch = RegExp(r'/place/([^/@]+)').firstMatch(url);
if (placeMatch != null) {
metadata['placeName'] = Uri.decodeComponent(
placeMatch.group(1)!,
).replaceAll('+', ' ');
}
return metadata.isNotEmpty ? metadata : null;
}