GeocodingService class

A geocoding service that caches reverse geocoding and place search results locally using Hive CE to reduce API calls.

Coordinates within GeocodeCacheOptions.cacheRadiusMeters of a previously resolved location are served from cache without hitting the geocoding API.

Usage

// Configure (optional)
GeocodingService.instance.configure(
  options: const GeocodeCacheOptions(cacheRadiusMeters: 15),
);

// Initialise once
await GeocodingService.instance.init();

// Use anywhere — caching is transparent
final address = await GeocodingService.instance
    .getAddressFromCoordinates(lat, lon);

Lifecycle

  1. Optionally call configure to set custom options.
  2. Call init once before using any other method.
  3. Call dispose when the service is no longer needed.

Properties

allCachedEntries → List<CachedGeocode>
Read-only list of all cached geocode entries.
no setter
allCachedPlacemarks → List<CachedPlacemark>
Read-only list of all cached detailed placemark entries.
no setter
cacheSize → int
Number of entries currently in the geocode cache.
no setter
hashCode → int
The hash code for this object.
no setterinherited
isInitialised → bool
Whether the service has been initialised and is ready to use.
no setter
options → GeocodeCacheOptions
The current configuration options.
no setter
placemarkCacheSize → int
Number of entries currently in the detailed placemark cache.
no setter
placeSearchCacheSize → int
Number of entries currently in the place search cache.
no setter
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited

Methods

clearCache() → Future<void>
Removes all entries from the geocode, place search, and placemark caches.
clearGeocodeCache() → Future<void>
Removes only geocode cache entries (preserves place search cache).
clearPlaceSearchCache() → Future<void>
Removes only place search cache entries (preserves geocode cache).
configure({GeocodeCacheOptions? options}) → void
Configures the service with custom options.
dispose() → Future<void>
Closes the underlying Hive boxes and resets the singleton instance.
evictEntriesOlderThan(Duration age) → Future<int>
Removes geocode cache entries older than age.
getAddressFromCoordinates(double latitude, double longitude) → Future<String?>
Returns a human-readable address for the given latitude / longitude.
getPlacemarkFromCoordinates(double latitude, double longitude) → Future<Placemark?>
Returns a structured Placemark with all available address fields for the given latitude / longitude.
init() → Future<void>
Initialises Hive and opens the cache boxes.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
searchPlaces(String query) → Future<List<Map<String, dynamic>>>
Searches for places matching query using Nominatim, with caching.
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited

Static Properties

instance → GeocodingService
Returns the singleton instance of GeocodingService.
no setter