Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Endereço com Autocomplete (Campo tipo ADDRESS)

Introdução

Os campos de Endereço dinâmico são aqueles que funcionam por meio de pesquisas e sugestões de endereços, semelhante a como ocorre na busca de aplicações como o Google Maps. Ao configurar este tipo de campo, sempre que um termo é pesquisado no input uma lista de resultados é exibida para o usuário selecionar o endereço desejado.

Esta funcionalidade também permite, por padrão, que caso existam os campos PLAT e PLONG na mesma tela de edição, este serão preenchidos automaticamente com os valores associados ao endereço selecionado no campo de endereço dinâmico.

Configuração

tabela nfs_core_ds_tabela_campo

O primeiro passo é definir o tipo do seu campo 'Endereço' como 'ADDRESS' na coluna TIPO da tabela nfs_core_ds_tabela_campo. Ps.: Necessário verificar se o tipo ADDRESS existe na tabela nfs_core_sys_tipo_campo, caso não, inserir-lo.

INSERT INTO nfs_homol_transpotech_smartos.nfs_core_sys_tipo_campo
(NOME, TAMANHO, TAMANHO_DECIMAL, MASCARA, TEXTO_MASCARA, TIPO_SQL)
VALUES('ADDRESS', NULL, NULL, NULL, NULL, NULL);

tabela nfs_core_par_parametros

A funcionalidade de busca de endereços de forma dinâmica foi projetada para uso de múltiplos provedores, permitindo que o CORE utilize diferentes API's externas para obter as sugestões e coordenadas geográficas (lat/lon) para o endereço pesquisado.

No momento existem dois provedores disponíveis/configurados no CORE:

  • Radar (Base OpenStreetMap)

    • API gratuita, com limite de requests mensais e com uso de chave para autenticação.
    • Retorna dados de endereço e coordenadas menos precisos.
  • Google (Base Google Maps e Places API)

    • API Paga, necessário alinhar custos e plano de assinatura.
    • Requer chave de API válida configurada no sistema.
    • Mais preciso e atualizado.

O provedor escolhido deve ser definido pela nfs_core_par_parametros no banco de dados do cliente, cujo nome do parametro é o AUTOCOMPLETE_ADDRESS_API e seu valor deve ser um json contendo as informações básicas para configuração da API escolhida, incialmente implementado para as APIS's ‘Radar’ ou 'Google'. Abaixo um json de exemplo usando a opção gratuíta RADAR:

{
  "provider": "radar",
  "api_key": "prj_live_sk_56b6xxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "lang": "pt",
  "country_code": "BR"
}

ou via comando SQL Insert:

INSERT INTO nfs_cliente.nfs_core_par_parametros
  (EMPRESA, FILIAL, `LOCAL`, NOME, CONTEUDO, TIPO)
VALUES(
  9999, 
  9999, 
  9999, 
  'AUTOCOMPLETE_ADDRESS_API', 
  '{
    "provider": "radar",
    "api_key": "prj_live_sk_56b6xxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "lang": "pt",
    "country_code": "BR"
  }',
  1
);

Neste parâmetro, AUTOCOMPLETE_ADDRESS_API, estão todas as informações orbigatórias e necessárias à serem configuradas, para o caso da API RADAR:

  • provider: Indica o nome da API escolhida.
  • api_key: O token de autenticação para uso da API.
  • lang: Idioma no qual são apresentados os resultados da busca de endereços.
  • country_code: Código de 2 letras no padrão ISO_3166_code para garantir o filtro por país do endereço pesquisado.