Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CEP V2 - Não encontra geolocalização #593

Open
marconWillianNeves opened this issue Mar 4, 2024 · 10 comments
Open

CEP V2 - Não encontra geolocalização #593

marconWillianNeves opened this issue Mar 4, 2024 · 10 comments

Comments

@marconWillianNeves
Copy link

Utilizando a api do BrasilApi tivemos um erro estranho aqui no qual para alguns endereços não era retornado a geo localização junto ao cep, fui atras e descobri que alguns endereços de CEP é mal formatado causando erro na api da openstreetmap.

Por exemplo o CEP: "39404006"

{
  cep: "39404006",
  state: "MG",
  city: "Montes Claros",
  neighborhood: "Conjunto Residencial JK",
  street: "Avenida Osmani Barbosa - até 1715 - lado ímpar",
  service: "correios-alt",
  location: {
    type: "Point",
    coordinates: {
    },
  },
}

Se repararem ele contem uma street com o fim - até 1715 - lado impar, testando ao adicionar isso no request da openstreet é retornado um erro. Seria possivel a correção deste problema?

https://nominatim.openstreetmap.org/search?format=json&addressdetails=1&country=Brasil&state=MG&city=Montes%20Claros&street=https://nominatim.openstreetmap.org/search?format=json&addressdetails=1&country=Brasil&state=MG&city=Montes%20Claros&street=Avenida%20Osmani%20Barbosa%20-%20até%201745

@enieber
Copy link

enieber commented Mar 5, 2024

Aparentemente esse endpoint foi feito a algum tempo e não usava axios para fazer request, e fazia a verificação dos parametros manualmente, estou alterando o serviço de busca para corrigir o problema.

@marconneves
Copy link

marconneves commented Mar 6, 2024

@enieber e quando buscamos um CEP de rua, e o mesmo não tem geo localização, qual é o comportamento?

Como o CEP: 04117170

Não seria uma boa neste caso tentar pegar com fallback a geolocation da city ao invés da rua

@carlossantosdev
Copy link

@enieber e quando buscamos um CEP de rua, e o mesmo não tem geo localização, qual é o comportamento?

Como o CEP: 04117170

Não seria uma boa neste caso tentar pegar com fallback a geolocation da city ao invés da rua

Não gosto dessa abordagem. Como vou saber ao que o lat | long corresponde ?
Imagino que teria que adicionar uma propriedade indicando qual é o tipo do lat long, e seria mais uma validação que todo mundo teria que olhar.

Isso vai ferir alguns princípios de programação também. Se estamos batendo em endpoint de CEP, queremos a informação dele, e não de algo nível acima ou abaixo.

@NamurOliveira
Copy link

Pelo site oficial do IBGE Brasil tem o código de todos municípios brasileiros

@NamurOliveira
Copy link

Satélite do Elon Musk ajudaria

@enieber
Copy link

enieber commented Mar 9, 2024

@enieber e quando buscamos um CEP de rua, e o mesmo não tem geo localização, qual é o comportamento?

Como o CEP: 04117170

Não seria uma boa neste caso tentar pegar com fallback a geolocation da city ao invés da rua

Hoje a busca é feita nesse servidor: https://nominatim.openstreetmap.org/ui/search.html para fazer um fallback sem que a request de cep demorasse seria necessario usar diferentes servidores para não sobrecarregar o serviço que hoje é mantido colaborativamente. Outra opção seria passar por parametro qual o tipo de busca, assim seria possivel buscar somente pelos paramentro passados.

Todos os dados relacionados a latitude e longitude estão na base do openstreet map, Esse caso em especifico essa rua tem uma latitude e longitude, se pesquisar manualmente vai encontrar. Talves seja necessariro modificar a forma de fazer request, mas seria muito necessario entender melhor ocmo funciona essa api de busca por lat/long

@enieber
Copy link

enieber commented Mar 9, 2024

@enieber e quando buscamos um CEP de rua, e o mesmo não tem geo localização, qual é o comportamento?
Como o CEP: 04117170
Não seria uma boa neste caso tentar pegar com fallback a geolocation da city ao invés da rua

Não gosto dessa abordagem. Como vou saber ao que o lat | long corresponde ? Imagino que teria que adicionar uma propriedade indicando qual é o tipo do lat long, e seria mais uma validação que todo mundo teria que olhar.

Isso vai ferir alguns princípios de programação também. Se estamos batendo em endpoint de CEP, queremos a informação dele, e não de algo nível acima ou abaixo.

isso quem vai responder é a api do open street map.

@alijuniorbr
Copy link

Por enquanto poderia fazer fucnionar ao menos a V1 que nao retorna lat/long pois esta retornando um erro em todos os provedores, porem a ViaCep esta funcionando quando acessada diretamente conforme verificado aqui

@LorhanSohaky
Copy link
Member

@enieber e quando buscamos um CEP de rua, e o mesmo não tem geo localização, qual é o comportamento?

Como o CEP: 04117170

Não seria uma boa neste caso tentar pegar com fallback a geolocation da city ao invés da rua

Olá, o comportamento que se deve ser esperado na v2 é que retorne a localização ou uma aproximação (também podendo ser a cidade). Quando não é retornada a geolocalização é porque não foi possível encontrar no openstreet map, nesse caso não podemos fazer muita coisa.

Uma possível "solução" para essa situação é contratar o google maps como fallback e quando cair nesse caso contribuir com o openstreet map informando a geolocalização correta do cep

@enieber
Copy link

enieber commented May 3, 2024

Acho que uma solução melhor é contribuir para termos o maximo de cep no openstreet map. Poderiamos até ter uma documentação no projeto de como contribuir no open streetmap.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants