Skip to main content

pak_geodata 0.11.0 copy "pak_geodata: ^0.11.0" to clipboard
pak_geodata: ^0.11.0 copied to clipboard

Comprehensive, typed, offline geographic data for all areas and cities in Pakistan

example/main.dart

import 'package:pak_geodata/pak_geodata.dart';

void main() {
  print('=== Pakistan GeoData (pak_geodata) Dart Example ===\n');

  // 1. Administrative Hierarchy Lookups
  final provinces = getAllProvinces();
  print('Total provinces & territories: ${provinces.length}');
  for (final province in provinces) {
    print(' - ${province.name} (${province.urduName}) [${province.id}]');
  }

  // 2. City Lookups
  final lahore = getCityById('lahore');
  if (lahore != null) {
    print('\nCity: ${lahore.name} (${lahore.urduName})');
    print('District: ${lahore.district}, Province: ${lahore.provinceId}');
    print('Coordinates: (${lahore.coordinates.lat}, ${lahore.coordinates.lng})');
    print('Total verified areas: ${lahore.totalAreasCount}');
  }

  // 3. Areas in a City
  final islamabadAreas = getAreasByCity('islamabad');
  print('\nIslamabad has ${islamabadAreas.length} verified areas.');
  print('Sample area: ${islamabadAreas.first.name} (${islamabadAreas.first.id})');

  // 4. Postal Code Resolution
  const postalCode = '54000';
  final primaryArea = findAreaByPostalCode(postalCode);
  print('\nPrimary area for postal code $postalCode:');
  print(' -> ${primaryArea?.name} (${primaryArea?.cityId})');

  final allSharingPostal = findAreasByPostalCode(postalCode);
  print('Total areas sharing postal code $postalCode: ${allSharingPostal.length}');

  // 5. Spatial Reverse Geocoding (Spherical Haversine)
  // Coordinates for DHA Phase 5 Lahore
  const targetCoords = Coordinates(lat: 31.4581, lng: 74.4121);
  final nearest = getNearestArea(targetCoords);
  if (nearest != null) {
    print('\nNearest area to (31.4581, 74.4121):');
    print(' -> ${nearest.name} in ${nearest.cityId}');
    print(' -> Distance: ${nearest.distanceKm.toStringAsFixed(2)} km');
  }

  // 6. Multi-Script and Fuzzy Search
  print('\nSearching for Urdu query "گلبرگ" in Lahore:');
  final urduResults = searchAreas('گلبرگ', cityId: 'lahore', limit: 3);
  for (final res in urduResults) {
    print(' - ${res.name} (Score: ${res.score.toInt()}, Match: ${res.matchType})');
  }

  print('\nSearching for colloquial query "dha 5":');
  final aliasResults = searchAreas('dha 5', limit: 3);
  for (final res in aliasResults) {
    print(' - ${res.name} in ${res.cityId} (Score: ${res.score.toInt()})');
  }
}
1
likes
160
points
299
downloads

Documentation

API reference

Publisher

verified publisherthemohsinproject.org

Weekly Downloads

Comprehensive, typed, offline geographic data for all areas and cities in Pakistan

Repository (GitHub)
View/report issues
Contributing

License

MIT (license)

More

Packages that depend on pak_geodata