

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
QlikView Google Maps x Coordenadas
Boa tarde a todos.
Alguém saberia onde encontrar uma relação com todos os CEPs e suas respectivas Latitudes e Longitudes para utilizá-las no QlikView?
Ou existe algum APP's que vincule o cep as coordenadas?
Obrigado!
- Tags:
- Group_Discussions
- « Previous Replies
- Next Replies »
Accepted Solutions


- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Aqui esta Raphael, eu dei uma ralada pra deixar como eu queria, tavez tenha formas mais simples, porem esta funcionando bem... lembrando que o google tem liberado em media 1250 buscas por dia, pra burlar isso eu uso uma internet 3g, faço a busca de 1250 reconecto e busco novamente... pois o ip da empresa aqui é fixo.
*pra pegar apenas as coordendas é mais simples, neste exemplo ele retorna o endereço completo no formato do google, separando por colunas, cep, rua, cidade, inclusive o bairro exato da rua, pois geralemente sao cadastrados de forma errada.
mas é isso.. qualquer coisa posta aí.
abs.
**posso simplificar para buscar apenas coordendas se quiser.
//BUSCA DE COORDENAS ATRAVÉS DA API DO GOOGLE.
set ErrorMode=0;
[Tabela_endereços]:
LOAD distinct
ChavePrincipal,
rowno() as chaveunica,
rua&'+'&numero&'+'&cidade&'+'&pais as EndereçoTratado ;
from....;
//faz um tratamento caso seja preciso;
[Maior Linha]:
load max(chaveunica) as maxLinhas
Resident [Tabela_endereços];
let vMaxLinhas = Peek('maxLinhas');
for i = 1 to $(vMaxLinhas)
//'ou' for = i = 1 to 1249 'assim por diante.'
load
EndereçoTratado as logradouro
resident [Tabela_endereços] where chaveunica = $(i) ;
let vRegistro = Peek('logradouro');
GeocodeResponse:
LOAD $(i) as chaveunica,
[result/geometry/location/lat] as Latitude,
[result/geometry/location/lng] as Longitude,
%Key_GeocodeResponse_62C7A0A69859D655,
[result/geometry/location_type] as location_type,
status
FROM [http://maps.googleapis.com/maps/api/geocode/xml?address=$(vRegistro)&sensor=false] (XmlSimple, Table is [GeocodeResponse]);
address_component:
LOAD
$(i) as chaveunica,
long_name as Itens,
%Key_address_component_3D78D9B402C68EA5 as codigo,
%Key_GeocodeResponse_62C7A0A69859D655 as key
FROM [http://maps.googleapis.com/maps/api/geocode/xml?address=$(vRegistro)&sensor=false] (XmlSimple, Table is [GeocodeResponse/result/address_component]);
drop Table
SLEEP(700);
next;
left join (Tabela_endereços)
Status:
load
chaveunica,
status
Resident GeocodeResponse;
left join
Location:
load
chaveunica,
location_type
Resident GeocodeResponse;
left join
Latitude:
load
chaveunica,
Latitude
Resident GeocodeResponse;
left join
Longitude:
load
chaveunica,
Longitude
Resident GeocodeResponse;
left join
Rua:
load
chaveunica,
if(codigo= 9,Itens) as Rua
resident address_component
where isnull(if(codigo= 9,Itens)) = false();
left join
Bairro:
load
chaveunica,
if(codigo= 13,Itens) as Bairro
resident address_component
where isnull(if(codigo= 13,Itens)) = false();
left join
Número:
load
chaveunica,
if(codigo =5,Itens) as Número
resident address_component
where isnull(if(codigo =5,Itens)) = false();
left join
Cidade:
load
chaveunica,
if(codigo = 18,Itens) as Cidade
resident address_component
where isnull(if(codigo =18,Itens)) = false();
left join
Estado:
load
chaveunica,
if(codigo = 23,Itens) as Estado
resident address_component
where isnull(if(codigo =23,Itens)) = false();
left join
cep:
load
chaveunica,
if(codigo = 33,Itens) as cep
resident address_component
where isnull(if(codigo =33,Itens)) = false();
[Final]:
NoConcatenate Load
ChavePrincipal,
cep,
chaveunica,
EndereçoTratado,
status,
location_type,
Latitude,
Longitude,
Rua,
Bairro,
Número,
Cidade,
Estado
Resident Tabela_endereços
where IsNull(Latitude) = false() and Latitude <> '' ;
drop table GeocodeResponse;
drop table [Maior Linha];
drop Table address_component;
drop Table Tabela_endereços;
STORE Final into


- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
cara, eu uso o api do google, fiz um for onde ele me retorna as coordendas a partir de endereços ( Rua+nº+Cidade+estado+país) e joga num qvd.
Acredito que de pra fazer a partir dos ceps tmb..mas nunca testei.
abs.


- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Interessante Kaauan.
Pensei no Cep pois temos estas informações no cadastro dos clientes e sei que existe no google latitude e longitude para cada uma das ruas.
Agora se der tmbm para fazer a partir do Bairro ou Cidade seria ótimo também
Como fazer?
Sou novo ainda nesta história de GeoQlik!
Abs.


- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Rafael, lembre-se que Latitude e Longitude é um ponto em um eixo X e Y. Um CEP não pode ser demarcado através de uma Latitude ou Longitude, MAS podemos marcar um ponto que sinalize que este CEP é dentro de determinada Latitude e Longitude.
Uma forma de se fazer isso é usar uma API do próprio googlemaps. Essa api pode ser utilizada através da URL:
Essa API retorna um XML com diversas informações, inclusive a Latitude e Longitude aproximada que o Google Maps encontrou, MAS tome cuidado! Existem CEPs que o googlemaps não reconhece, existem CEPs especiais (Sufixo maior que 899) que o GoogleMaps também não reconhece e também saiba que o googlemaps, na maioria das vezes, vai te retornar um valor aproximado, mesmo que este CEP não exista. Então vale a pena fazer a validação dos resultados para identificar esses pequenos "furos".
O google limita o número de consultas diarias para 2000, caso você ultrapasse ele vai te bloquear por 24 horas (ou menos).
Ok?
Com essa URL você pode fazer um código varrer toda sua lista de CEPs e sair disparando, um a um, para a api do google retornar a latitude e longitude deste CEP!
OBS: Neste link existe a documentação da API do google: https://developers.google.com/maps/documentation/geocoding/
Ah, respondendo sua pergunta inicial: Talvez exista uma base de Latitude e Longitude por CEP, mas eu já passei por isso e não encontrei uma lista free!


- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
vou te colar a barbada aqui.. só me da um min.
abs.


- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Aqui esta Raphael, eu dei uma ralada pra deixar como eu queria, tavez tenha formas mais simples, porem esta funcionando bem... lembrando que o google tem liberado em media 1250 buscas por dia, pra burlar isso eu uso uma internet 3g, faço a busca de 1250 reconecto e busco novamente... pois o ip da empresa aqui é fixo.
*pra pegar apenas as coordendas é mais simples, neste exemplo ele retorna o endereço completo no formato do google, separando por colunas, cep, rua, cidade, inclusive o bairro exato da rua, pois geralemente sao cadastrados de forma errada.
mas é isso.. qualquer coisa posta aí.
abs.
**posso simplificar para buscar apenas coordendas se quiser.
//BUSCA DE COORDENAS ATRAVÉS DA API DO GOOGLE.
set ErrorMode=0;
[Tabela_endereços]:
LOAD distinct
ChavePrincipal,
rowno() as chaveunica,
rua&'+'&numero&'+'&cidade&'+'&pais as EndereçoTratado ;
from....;
//faz um tratamento caso seja preciso;
[Maior Linha]:
load max(chaveunica) as maxLinhas
Resident [Tabela_endereços];
let vMaxLinhas = Peek('maxLinhas');
for i = 1 to $(vMaxLinhas)
//'ou' for = i = 1 to 1249 'assim por diante.'
load
EndereçoTratado as logradouro
resident [Tabela_endereços] where chaveunica = $(i) ;
let vRegistro = Peek('logradouro');
GeocodeResponse:
LOAD $(i) as chaveunica,
[result/geometry/location/lat] as Latitude,
[result/geometry/location/lng] as Longitude,
%Key_GeocodeResponse_62C7A0A69859D655,
[result/geometry/location_type] as location_type,
status
FROM [http://maps.googleapis.com/maps/api/geocode/xml?address=$(vRegistro)&sensor=false] (XmlSimple, Table is [GeocodeResponse]);
address_component:
LOAD
$(i) as chaveunica,
long_name as Itens,
%Key_address_component_3D78D9B402C68EA5 as codigo,
%Key_GeocodeResponse_62C7A0A69859D655 as key
FROM [http://maps.googleapis.com/maps/api/geocode/xml?address=$(vRegistro)&sensor=false] (XmlSimple, Table is [GeocodeResponse/result/address_component]);
drop Table
SLEEP(700);
next;
left join (Tabela_endereços)
Status:
load
chaveunica,
status
Resident GeocodeResponse;
left join
Location:
load
chaveunica,
location_type
Resident GeocodeResponse;
left join
Latitude:
load
chaveunica,
Latitude
Resident GeocodeResponse;
left join
Longitude:
load
chaveunica,
Longitude
Resident GeocodeResponse;
left join
Rua:
load
chaveunica,
if(codigo= 9,Itens) as Rua
resident address_component
where isnull(if(codigo= 9,Itens)) = false();
left join
Bairro:
load
chaveunica,
if(codigo= 13,Itens) as Bairro
resident address_component
where isnull(if(codigo= 13,Itens)) = false();
left join
Número:
load
chaveunica,
if(codigo =5,Itens) as Número
resident address_component
where isnull(if(codigo =5,Itens)) = false();
left join
Cidade:
load
chaveunica,
if(codigo = 18,Itens) as Cidade
resident address_component
where isnull(if(codigo =18,Itens)) = false();
left join
Estado:
load
chaveunica,
if(codigo = 23,Itens) as Estado
resident address_component
where isnull(if(codigo =23,Itens)) = false();
left join
cep:
load
chaveunica,
if(codigo = 33,Itens) as cep
resident address_component
where isnull(if(codigo =33,Itens)) = false();
[Final]:
NoConcatenate Load
ChavePrincipal,
cep,
chaveunica,
EndereçoTratado,
status,
location_type,
Latitude,
Longitude,
Rua,
Bairro,
Número,
Cidade,
Estado
Resident Tabela_endereços
where IsNull(Latitude) = false() and Latitude <> '' ;
drop table GeocodeResponse;
drop table [Maior Linha];
drop Table address_component;
drop Table Tabela_endereços;
STORE Final into

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dae Kaauan, um código "filé" desse e nenhuma resposta!
Coloca como resposta ai Raphael! Merece!
Abraço.
Analista, Arquiteto de Dadose e Desenvolvedor
(41) 9 9917-0869 www.BIdeAZ.com.br Youtube.com/bideaz Instagram.com/bideaz.in
"Nada é tão inútil quanto fazer eficientemente o que não deveria ser feito." (Peter Drucker)


- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Desculpe aí rsrsrsrs...
A correria está grande e não estou acessando a comunidade já faz um tempinho
Abraços!!!

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Olá Kaauan;
estou tentando utilizar seu código porem nao sei qual o formato que devo colocar os endereços dentro da planilha excel.
criei uma com 1 linha (registro) contendo: RUA, NUMERO, CIDADE e PAIS nas colunas A,B,C e D, porem ao recarregar nada é lido, ele mostra apenas as listas $field, $table, $rows, $fields, $info.
pode me ajudar ?


- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
E ai Cleber,
Posso sim, qual a sua necessidade exatamente, apenas as coordenas a partir desses endereços?
abs.

- « Previous Replies
- Next Replies »