Bound Location Picker for Flutter
![Pub Version]()
A Flutter package created by the official google_maps_flutter plugin, which can help you to picked locations within a boundary.
Highlighted feature
- Pick location within the Polygon boundary
- Pick location within the Circular Radius boundary
Made by @Hasan
|
Android |
iOS |
Web |
| Support |
SDK 20+ |
iOS 11+ |
Same as Flutter's |
| Regular Picker |
Circle Boundary |
Polygon Boundary |
![]() |
| ![]() |
💻 Usage
First, add bound_location_picker as a dependency in your pubspec.yaml file.
dependencies:
flutter:
sdk: flutter
bound_location_picker: ^update_version
Don't forget to flutter pub get.
Android
- Set the
minSdkVersion in android/app/build.gradle:
android {
defaultConfig {
minSdkVersion 20
}
}
This means that app will only be available for users that run Android SDK 20 or higher.
- Specify your API key in the application manifest
android/app/src/main/AndroidManifest.xml:
<manifest ...
<application ...
<meta-data android:name="com.google.android.geo.API_KEY"
android:value="YOUR KEY HERE"/>
iOS
To set up, specify your API key in the application delegate ios/Runner/AppDelegate.m:
#include "AppDelegate.h"
#include "GeneratedPluginRegistrant.h"
#import "GoogleMaps/GoogleMaps.h"
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[GMSServices provideAPIKey:@"YOUR KEY HERE"];
[GeneratedPluginRegistrant registerWithRegistry:self];
return [super application:application didFinishLaunchingWithOptions:launchOptions];
}
@end
Or in your swift code, specify your API key in the application delegate ios/Runner/AppDelegate.swift:
import UIKit
import Flutter
import GoogleMaps
@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
GMSServices.provideAPIKey("YOUR KEY HERE")
GeneratedPluginRegistrant.register(with: self)
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
}
Web
You'll need to modify the web/index.html file of your Flutter Web application
to include the Google Maps JS SDK.
Check the google_maps_flutter_web README
for the latest information on how to prepare your App to use Google Maps on the
web.
Sample Usage
class MyApp extends StatefulWidget {
const MyApp({super.key});
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: Scaffold(
body: BoundLocationPicker(
initialCameraPosition: const LatLng(24.540725, 89.631088),
onPickedLocation: (LatLng? location) {
},
onLocationUpdateListener: (LatLng? location) {
},
locationPickerImage: const AssetImage("assets/pin_point.png"),
circleBoundary: CircleBoundary(radius: 800),
enablePickedButton: true,
),
),
);
}
}
👨🏻💻Contribute to the project
All contributions are welcome.
![GitHub]()