Buscar pacotes, repositórios e categorias de apps

Capa de address_search_field
Detalhes do pacotev5.0.3

address_search_field

Um campo de pesquisa de endereço que ajuda a preencher automaticamente um endereço por meio de uma referência. Pode ser usado para obter direções entre dois pontos.

Downloads em 30 dias
293
Curtidas
95
Pontos Pub
60

Instalar pacote

flutter pub add address_search_field

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

Um pacote Flutter que fornece um campo de pesquisa de endereço com funcionalidade de autocomplete usando uma referência. Permite que os usuários insiram e selecionem endereços rapidamente, sendo ideal para aplicativos que exigem serviços baseados em localização, como calcular direções entre dois pontos. O pacote se integra perfeitamente a formulários e mapas, melhorando a experiência do usuário ao reduzir erros de digitação manual. É projetado para desenvolvedores que buscam uma solução leve para entrada de endereços em aplicativos orientados por localização.

Casos de uso

  • Localizar locais em um mapa
  • Calculando rotas entre destinos
  • Melhorando entradas de formulário com sugestões de endereço
  • Construindo aplicativos de entrega ou compartilhamento de viagens
  • Integrando geolocalização em aplicativos de viagem

Principais recursos

  • entrada de endereço com autocompletar
  • Busca de endereço baseada em referência
  • Leve e fácil de integrar
  • Suporta roteamento baseado em localização
  • API simples para seleção de endereço

Indicado para

  • Desenvolvedores construindo aplicativos de navegação
  • Aplicativos que exigem formulários de entrada de endereço
  • Aplicações móveis com conhecimento de localização
  • Plataformas de viagem e logística
  • interfaces de usuário integradas ao mapa

Considerações

  • Requer conexão com a internet para pesquisa de endereço
  • Limitado às regiões compatíveis com base na fonte de referência
  • Pode ser necessário configuração adicional para estilos personalizados
  • Depende de serviços externos de geocodificação
  • Não adequado para resolução de endereço off-line

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

Address Search Field

Widget builders to create 'address search widgets' which helps to autocomplete an address using a reference. They can be used to get Directions beetwen two places with optional waypoints. These widgets are made to be showed by onTap in a TextField with the showDialog function. It uses Dio, Google Maps for Flutter, Flutter Riverpod plugins. (This last plugin is to use extended objects that can be usable with GoogleMap Widget).

Getting Started

To use this plugin, add address_search_field as a dependency in your pubspec.yaml file. For example:

dependencies:
  address_search_field: ^5.0.3

Permissions

Android

On Android you'll need to add the internet permission to your Android Manifest file (located under android/app/src/main). To do so add next lines as direct child of the manifest> tag:

<uses-permission android:name="android.permission.INTERNET"/>

Usage

Import the package:

import 'package:address_search_field/address_search_field.dart';

GeoMethods

GeoMethods(
  googleApiKey: String,
  language: String,
  countryCode: String?,
  countryCodes: List<String>?,
  country: String?,
  city: String?,
  mode: DirectionsMode?,
  units: DirectionsUnits?,
);
  • This object makes calls to Google APIs using the parameters set. It can do requests to Google places, geocode and directions APIs Get API key.
  • Language support list here.
  • List of countries here. Example:
final geoMethods = GeoMethods(
  googleApiKey: 'GOOGLE_API_KEY',
  language: 'en',
  countryCode: 'us',
  countryCodes: ['us', 'es', 'co'],
  country: 'United States',
  city: 'New York',
);

// It will search in unite states, espain and colombia. It just can filter up to 5 countries.
geoMethods.autocompletePlace(query: 'place streets or reference');

geoMethods.geoLocatePlace(
    coords: Coords(0.10, 0.10,)
);

geoMethods.getPlaceGeometry(
    reference: 'place streets',
    placeId: 'ajFDN3662fNsa4hhs42FAjeb5n',
);

// It needs a specific region, it will search in unite states.
geoMethods.getDirections(
    origin: Address(coords: Coords(0.10, 0.10)), 
    destination: Address(coords: Coords(0.10, 0.10))
);

AddressSearchBuilder

This widget can search addresses and permits you to work with them using an Address object.

Example:

GeoMethods geoMethods;
TextEditingController controller;
Address destinationAddress;

TextField(
  controller: controller,
  onTap: () => showDialog(
    context,
    builder: (BuildContext context) => AddressSearchDialog(
      geoMethods: geoMethods,
      controller: controller,
      onDone: (Address address) => destinationAddress = address,
    )
  ),
);

AddressSearchDialog.custom provides you a widget builder with the parameters and methods to create your own AddressSearchDialog and work with the addresses information.

Example:

GeoMethods geoMethods;
TextEditingController controller;
Address destinationAddress;

TextField(
  controller: controller,
  onTap: () => showDialog(
    context,
    builder: (BuildContext context) {
      return AddressSearchDialog.custom(
        geoMethods: geoMethods,
        builder: (
          BuildContext context,
          AsyncSnapshot<List<Address>> snapshot,
          Future<void> Function() searchAddress,
          Future<Address> Function(Address address) getGeometry,
          void Function() dismiss,
        ) {
          return MyCustomWidget(
            snapshot: snapshot,
            searchAddress: searchAddress,
            getGeometry: getGeometry,
            dismiss: dismiss,
            controller: controller,
            address: destinationAddress,
          );
        }
      );
    }
  ),
);

AddressLocator

This widget is a simple way to get an address reference in a TextEditingController from coordinates when the AddressSearchDialog is not created into a RouteSearchBox.

Example:

Coords coords;
GeoMethods geoMethods;
TextEditingController controller;
Address initialAddress;

// using coordinates you can get an address reference to be predefined in the widget and save all the address data in a variable.
AddressLocator(
  coords: coords,
  geoMethods: geoMethods,
  controller: controller,
  child: TextField(
    controller: controller,
    onTap: () => showDialog(
      context: context,
      builder: (BuildContext context) => AddressSearchDialog(
        controller: controller,
        geoMethods: geoMethods,
        onDone: (Address address) => initialAddress = address;,
      ),
    ),
  ),
);

RouteSearchBox

This widget helps you to works using a provider from flutter_riverpod. It permits you to work with AddressSearchDialog to search an origin Address, destination Address and optionally waypoints in a List<Address>. This widget is used to get directions from the addresses gotten by an AddressSearchDialog. provider.findRoute() function permits to set an address as origin or destination from a coordinates parameter. A completed example of how to use this widget could be found here.

Example:

final routeProvider =
    ChangeNotifierProvider<RouteNotifier>((ref) => RouteNotifier());

GeoMethods geoMethods;
TextEditingController originCtrl;
TextEditingController destCtrl;
Coords initialCoords;

RouteSearchBox(
  provider: routeProvider,
  geoMethods: geoMethods,
  originController: originCtrl,
  destinationController: destCtrl,
  locationSetters: [
    LocationSetter(
      coords: initialCoords,
      addressId: AddressId.origin,
    ),
  ],
  child: Column(
    children: [
      TextField(
        controller: originCtrl,
        onTap: () => showDialog(
          context: context,
          builder:(context) => 
              AddressSearchDialog.withProvider(
            provider: routeProvider,
            addressId: AddressId.origin,
          ),
        ),
      ),
      TextField(
        controller: destCtrl,
        onTap: () => showDialog(
          context: context,
          builder:(context) => 
              AddressSearchDialog.withProvider(
            provider: routeProvider,
            addressId: AddressId.destination,
          ),
        ),
      ),
      Consumer(
        builder: (BuildContext context, WidgetRef ref, Widget? _) {
          return ElevatedButton(
            child: const Text('Search'),
            onPressed: () async {
              final route = await ref.read(routeProvider).findRoute();
            },
          );
        },
      ),
    ],
  )
);

License

MIT License

Contact

You can contact me if you have problems or ideas. Hablo español e inglés.

josluna1098@gmail.com

Categorias

Dependências

Lista de dependências 3 itens

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.