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.