Sélecteur d’emplacement utilisant l’officiel google_maps_flutter.
J’ai créé ce plugin parce que Google est obsolète Sélecteur de lieu.
En utilisant
Modifications apportées à Pubspec :
dependencies:
google_maps_flutter: ^0.5.30
google_map_location_picker: ^3.3.4
flutter_localizations:
sdk: flutter
Pour la localisation des messages dans la bibliothèque, veuillez ajouter MaterialApp
import 'package:google_map_location_picker/generated/l10n.dart' as location_picker;
import 'package:flutter_localizations/flutter_localizations.dart';
MaterialApp(
localizationsDelegates: const [
location_picker.S.delegate,
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
supportedLocales: const <Locale>[
Locale('en', ''),
Locale('ar', ''),
],
home: ...
)
import 'package:google_map_location_picker/google_map_location_picker.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
LocationResult result = await showLocationPicker(context, apiKey);
Commencer
Android
Spécifiez votre clé API dans le manifeste de l’application android/app/src/main/AndroidManifest.xml
:
<manifest ...
<application ...
<meta-data android:name="com.google.android.geo.API_KEY"
android:value="YOUR KEY HERE"/>
iOS
Spécifiez votre clé API dans le délégué de l’application 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
Ou dans votre code Swift, spécifiez votre clé API dans le délégué de l’application ios/Runner/AppDelegate.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)
}
}
il faut aussi définir NSLocationWhenInUseUsageDescription
<key>NSLocationWhenInUseUsageDescription</key>
<string>This app needs your location to test the location feature of the Google Maps location picker plugin.</string>
Noter
Les autorisations suivantes ne sont pas requises pour utiliser l’API Google Maps Android v2, mais sont recommandées.
android.permission.ACCESS_COARSE_LOCATION
Permet à l’API d’utiliser le WiFi ou les données cellulaires mobiles (ou les deux) pour déterminer l’emplacement de l’appareil. L’API renvoie l’emplacement avec une précision approximativement équivalente à un pâté de maisons.
android.permission.ACCESS_FINE_LOCATION
Permet à l’API de déterminer un emplacement aussi précis que possible à partir des fournisseurs de localisation disponibles, y compris le système de positionnement global (GPS) ainsi que les données Wi-Fi et mobiles.
Restreindre la recherche semi-automatique à la région
Le LocationResult
s retournés peuvent être limités à certains pays en passant un tableau de codes de pays dans le countries
paramètre de showLocationPicker()
. Les pays doivent être à deux caractères, ISO 3166-1 Alpha-2
compatibles. Vous pouvez trouver des informations sur le code sur Wikipédia : Liste des codes de pays ISO 3166 ou la Plate-forme de navigation en ligne ISO.
L’exemple ci-dessous limite la recherche semi-automatique aux Émirats arabes unis et au Nigeria
showLocationPicker(
context, "YOUR API KEY HERE",
initialCenter: LatLng(31.1975844, 29.9598339),
myLocationButtonEnabled: true,
layersButtonEnabled: true,
countries: ['AE', 'NG'],
);
Crédits
La carte google de Flutter’s google_maps_flutter forfait
emplacement actuel et autorisation de BaseflowIT flutter-géolocalisateur forfait.
La barre de recherche de Diplômé sélecteur d’emplacement forfait.
GitHub
Voir Github