# flutter_google_map_location_picker **Repository Path**: ifehrim/flutter_google_map_location_picker ## Basic Information - **Project Name**: flutter_google_map_location_picker - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-10-18 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # google_map_location_picker [![Pub](https://img.shields.io/pub/v/google_map_location_picker.svg)](https://pub.dev/packages/google_map_location_picker) Location picker using the official [google_maps_flutter](https://pub.dev/packages/google_maps_flutter). I made This plugin because google deprecated [Place Picker](https://developers.google.com/places/android-sdk/placepicker).

## Using For message localization inside the library please add in `MaterialApp` ```dart import 'package:google_map_location_picker/generated/i18n.dart' as location_picker; MaterialApp( localizationsDelegates: const [ location_picker.S.delegate, GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, GlobalCupertinoLocalizations.delegate, ], supportedLocales: const [ Locale('en', ''), Locale('ar', ''), ], home: ... ) ``` ```dart import 'package:google_map_location_picker/google_map_location_picker.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart'; LocationResult result = await LocationPicker.pickLocation(context, apiKey); ``` ## Getting Started Get an API key at . and don't forget to enable in - Maps SDK for Android - Maps SDK for iOS - Places API - Geolocation API - Geocoding API ### Android Specify your API key in the application manifest `android/app/src/main/AndroidManifest.xml`: ```xml ``` ### iOS Specify your API key in the application delegate `ios/Runner/AppDelegate.m`: ```objectivec #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`: ```swift import UIKit import Flutter import GoogleMaps @UIApplicationMain @objc class AppDelegate: FlutterAppDelegate { override func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]? ) -> Bool { GMSServices.provideAPIKey("YOUR KEY HERE") GeneratedPluginRegistrant.register(with: self) return super.application(application, didFinishLaunchingWithOptions: launchOptions) } } ``` Opt-in to the embedded views preview by adding a boolean property to the app's `Info.plist` file with the key `io.flutter.embedded_views_preview` and the value `YES`. ### Note The following permissions are not required to use Google Maps Android API v2, but are recommended. `android.permission.ACCESS_COARSE_LOCATION` Allows the API to use WiFi or mobile cell data (or both) to determine the device's location. The API returns the location with an accuracy approximately equivalent to a city block. `android.permission.ACCESS_FINE_LOCATION` Allows the API to determine as precise a location as possible from the available location providers, including the Global Positioning System (GPS) as well as WiFi and mobile cell data. --- You must also explicitly declare that your app uses the android.hardware.location.network or android.hardware.location.gps hardware features if your app targets Android 5.0 (API level 21) or higher and uses the ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission in order to receive location updates from the network or a GPS, respectively. ```xml ``` --- The following permissions are defined in the package manifest, and are automatically merged into your app's manifest at build time. You **don't** need to add them explicitly to your manifest: `android.permission.INTERNET` Used by the API to download map tiles from Google Maps servers. `android.permission.ACCESS_NETWORK_STATE` Allows the API to check the connection status in order to determine whether data can be downloaded. ### Credits The google map from [Flutter's](https://github.com/flutter) [google_maps_flutter](https://pub.dev/packages/google_maps_flutter) package current location and permission from [BaseflowIT's](https://github.com/BaseflowIT) [flutter-geolocator](https://github.com/baseflowit/flutter-geolocator) package. The search bar from [Degreat's](https://github.com/blackmann) [locationpicker](https://github.com/blackmann/locationpicker) package.