extractMetadata static method

Map<String, dynamic>? extractMetadata(
  1. String url
)

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;
}