Package selection guidance compiled from public package information, community data, and project usage.
A Flutter package that enables place search functionality using the MapBox API and generates static map images. It simplifies integration of geolocation features into Flutter apps by providing a straightforward interface for searching locations, retrieving coordinates, and displaying static maps. Ideal for applications requiring address lookup, location selection, or map previews. The package supports multiple platforms including Android, iOS, Web, macOS, Windows, and Linux, ensuring broad compatibility. Developers can easily implement location-based services with minimal setup.
Use cases
Location search in mobile apps
Address picker for forms
Static map previews
Geocoding integration
Map-based UI components
Travel and delivery apps
Key features
MapBox API integration
Static map image generation
Cross-platform support
Simple search interface
Coordinate retrieval
Responsive design
Suitable for
Developers building location-aware apps
Apps needing address lookup
Projects requiring static maps
Cross-platform mobile and web apps
Travel, logistics, and mapping tools
Considerations
Requires MapBox API key
Network connectivity needed
Potential rate limits on free tier
Limited customization of search UI
Dependent on external API stability
Additional configuration for each platform
Original README
Original README snapshot from the linked source repository. Visit the repository for the latest content.
About
Note: Breaking Changes in 4.x.x
PlaceSearch and ReverseGeoCoding classes are now merged into one class called GeoCoding with two methods getPlaces and getAddress since both of them are using the same API.
Instead of throwing exceptions, the package now returns ApiResponse Record which can be either Success or Failure and can be handled using fold method.
Location class is now converted to a record.
List of coordinates are now converted to a record (lat: double, long: doube) whereever possible.
This package provides easy api calls to MapBox Search API.
As this package doesn't depend on Flutter SDK you cannot use the Colors class anymore on you Flutter project.
Instead use map_box_search's Color.rgb constructor, passing the values as parameters:
var myColor = Colors.redAccent; //Flutter's Color classvar mapBoxColor = Color.rgb( myColor.red, myColor.green, myColor.blue);
Installing
First of all you must acquire an API key on the MapBox website https://www.mapbox.com/
Then, add the following to your pubspec.yaml file:
dependencies:
mapbox_search: any
Setup
Now you can setup the API key for whole app by calling MapBoxSearch.init('API KEY') in your main() function, this way you don't have to pass the API key to every class that uses the package.
Usage of ApiResponse
finalApiResponse<List<MapBoxPlace>> addresses = awaitgetAddress();
addresses.fold(
(success) => // Do something with success data,
(failure) => // Do something with failure data,
);
Examples
SearchBox API
SearchBoxAPI search = SearchBoxAPI(
apiKey: 'API Key', // dont pass if you have set it in MapBoxSearch.init('API KEY')
limit: 6,
);
var reverseGeoCoding = GeoCoding(
apiKey: 'API Key', // dont pass if you have set it in MapBoxSearch.init('API KEY')
limit: 5,
);
Future<ApiResponse<List<MapBoxPlace>>> getAddress() =>
reverseGeoCoding.getAddress(
Location(lat: 72.0, lng: 76.00),
);
Forward GeoCoding Seach
var geocoding = GeoCoding(
apiKey: 'API Key', // dont pass if you have set it in MapBoxSearch.init('API KEY')
country: "BR",
limit: 5,
types: [PlaceType.address, PlaceType.place],
);
Future<ApiResponse<List<MapBoxPlace>>> getPlaces() =>
geocoding.getPlaces(
"central park",
proximity: Location(
lat: -19.984634,
lng: -43.9502958,
),
);
Batch Geocoding (v6)
Perform multiple geocoding queries (forward, reverse, or structured) in a single request.