Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions lib/src/location_picker.dart
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,19 @@ class FlutterLocationPicker extends StatefulWidget {
/// ```
final String nominatimHost;

/// **OPTIONAL** - Custom Nominatim server hostname
///
/// Some custom providers require a custom prefix path for their API.
/// E.g. locationIQ requires a `/v1` prefix path to construct
/// https://us1.locationiq.com/v1/reverse
///
/// **Default**: null
///
/// Example:
/// ```dart
/// nominatimPrefixPath : '/v1',
/// ```
final String? nominatimPrefixPath;
/// **OPTIONAL** - Additional query parameters for Nominatim requests
///
/// Add custom parameters or override defaults for geocoding requests.
Expand Down Expand Up @@ -431,6 +444,7 @@ class FlutterLocationPicker extends StatefulWidget {

// Nominatim configuration
this.nominatimHost = 'nominatim.openstreetmap.org',
this.nominatimPrefixPath,
this.nominatimAdditionalQueryParameters,
this.nominatimZoomLevel,
this.countryFilter,
Expand Down Expand Up @@ -549,6 +563,7 @@ class FlutterLocationPicker extends StatefulWidget {

// Nominatim configuration
this.nominatimHost = 'nominatim.openstreetmap.org',
this.nominatimPrefixPath,
this.nominatimAdditionalQueryParameters,
this.nominatimZoomLevel,
this.countryFilter,
Expand Down Expand Up @@ -860,6 +875,7 @@ class _FlutterLocationPickerState extends State<FlutterLocationPicker>
void _initializeServices() {
_geocodingService = GeocodingService(
nominatimHost: widget.nominatimHost,
prefixPath: widget.nominatimPrefixPath,
userAgent: widget.userAgent,
language: _mapConfig.mapLanguage,
additionalQueryParameters: widget.nominatimAdditionalQueryParameters,
Expand Down
6 changes: 3 additions & 3 deletions lib/src/services/geocoding_service.dart
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,14 @@ class GeocodingService {
final String language;
final Map<String, dynamic>? additionalQueryParameters;
final String? countryFilter;

final String? prefixPath;
const GeocodingService({
required this.nominatimHost,
required this.userAgent,
this.language = 'en',
this.additionalQueryParameters,
this.countryFilter,
this.prefixPath,
});

/// Gets proper HTTP headers for Nominatim API requests
Expand Down Expand Up @@ -55,8 +56,7 @@ class GeocodingService {
queryParameters.addAll(additionalQueryParameters!);
}

final uri = Uri.https(nominatimHost, '/reverse', queryParameters);

final uri = Uri.https(nominatimHost, '${prefixPath ?? ''}/reverse', queryParameters);
final response = await client
.get(
uri,
Expand Down