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

Sugestão: Lugares sem CEP #418

Open
LucasHT22 opened this issue Sep 11, 2022 · 8 comments · May be fixed by #554
Open

Sugestão: Lugares sem CEP #418

LucasHT22 opened this issue Sep 11, 2022 · 8 comments · May be fixed by #554

Comments

@LucasHT22
Copy link

Cara, muitas vezes em comunidades, como Paraisópolis, São Paulo, que nem CEP tem, as encomendas, cartas e documentos não chegam, para isso o Google criou o Plus Code, qualquer lugar do planeta tem.

Cerca de 17 milhões de brasileiros não possuem CEP.

Muitas empresas, como a Americanas, já trabalham com o Plus Code, pois assim tem mais precisão nesses lugares.

Ainda não pensei em nenhum jeito de integrar nessa API, mas, acharia interessante quando precisar consultar um CEP de um lugar que não tem o programa retornar o Plus Code ou o programa retornar o CEP e o Plus Code.

Saiba ver o Plus Code:
https://support.google.com/maps/answer/7047426?hl=pt-BR&co=GENIE.Platform%3DAndroid

Conheça o Plus Code:
https://exame.com/esg/receber-compras-e-chamar-ambulancia-casas-de-paraisopolis-entram-no-maps/

Espero que minha Issue ajude em alguma coisa :)

@lucianopf
Copy link
Member

lucianopf commented Sep 11, 2022

Caraca @LucasHT22 certeza que a issue ajudou sim, começando que não fazia ideia da existência disso! 😱

Vou ler um cadinho pra entender como funciona e se parece viável agregar isso tipo na v2 do cep ou numa possível v3 🤓 🤘

(ou talvez criar uma /pluscode/v1 👀 )

@murilohns
Copy link
Collaborator

@LucasHT22 obrigado por trazer a informação!

Conversamos aqui, e pensamos em uma nova rota para a API, algo como pluscode/v1/:plusCode.

O input seria um plusCode, e o output seria a latitude a longitude. Seria essa a sua ideia também?

@LucasHT22
Copy link
Author

@murilohns Cara, acho que depende da intenção de uso, se a ideia é encontrar um Plus Code, aí Input seria a latitude/longitude e output seria o Plus Code, se for o contrário, encontar a latitude/longitude, o Input seria o Plus Code e a output a latitude/longitude.

A considerar que o Plus Code é usado para substituir o CEP em lugares que não tem, para mim, faria mais sentido a input ser a latitude/longitude e a output o Plus Code.

Qualquer coisa pode me chamar! :)

@murilohns
Copy link
Collaborator

@LucasHT22 como a intenção do plus code é retornar uma localização mais exata, pra mim o que faz sentido é a partir de um plus code retornar uma latitude e longitude

existe algum caso de uso que você precise de um plus code, invés da latitude e longitude? 🤔

Considerando o cenário que você trouxe, essa feature caberia melhor no endpoint de cep/v2, dado que já temos a latitude e longitude (aproximada) do CEP.

Mas ainda assim, voltamos ao problema inicial da issue, que é "Lugares sem CEP" 🤔

@LucasHT22
Copy link
Author

@murilohns tem razão! Faz mais sentido mesmo.
Não, não tenho aplicação que precise :)

@pckcml
Copy link

pckcml commented Dec 16, 2022

Olá, turma!

Adianto que esta é minha primeira vez contribuindo para um projeto open source. Estava dando uma olhada na lista de issues e fiquei absolutamente fascinado a funcionalidade sugerida pelo LucasHT22. Não sou mestre em nada, nem trabalho com desenvolvimento, mas acredito que tenha conhecimento suficiente para implementar (talvez com alguma ajudinha ou outra, rs).

Primeiramente, talvez seja interessante usar a nomenclatura do projeto Open Location Code, em vez da marca Plus Codes. Ambos são do Google, mas não sei até que ponto pode-se/deve-se usar a marca. Não sei se faz sentido.

Dois cenários possíveis

Um serviço que utiliza coordenadas geográficas para gerar Open Location Codes

Imaginei este cenário sendo usado através de um aplicativo para celular, que use a localização em tempo real para gerar um Open Location Code. O Google Maps já faz isso, mas essa funcionalidade permite desvincular isso deles (sou adepto do de-Googling haha).

Como o LucasHT22 mencionou, isso poderia ser usado em um projeto de mapeamento em uma comunidade, porém sem depender da API do Plus Codes ou usar o Google Maps. Ou simplesmente alguém que deseja gerar o Open Location Code para informar em outro lugar, como uma loja online.

Isso é possível com uma simples implementação do algoritmo de conversão do Open Location Code. Quando começar a trabalhar nisso, vou verificar melhor o que dá pra fazer.

Um serviço que utiliza Open Location Codes para obter detalhes da localização

Neste cenário (que é o que faz mais sentido mesmo), a requisição pode conter um Open Location Code completo com precisão normal ou extra (588MC9X8+G6 e 588MC9X8+G65, respectivamente). A resposta pode conter, além das coodenadas geográficas, informações sobre cidade, bairro e rua.

Isso é possível usando esta pesquisa do OpenStreetMap, que já é usada no fetchGeocoordinateFromBrazilLocation.js no endpoint dos CEPs.

A resposta para a conversão do Open Location Code mencionado acima (588MC9X8+G65) poderia ser:

{
  "state": "São Paulo",
  "city": "São Paulo",
  "suburb": "Sé",
  "road": "Praça da Sé",
  "location": {
    "type": "Point";
    "coordinates": {
      "longitude": "-46.6346253",
      "latitude": "-23.5511226",
    }
  }
}

Isso tudo, novamente, usando o algoritmo implementado no Open Location Code.

Uma limitação

Por fim, um comentário sobre uma limitação que existe, mas seria bacana encontrar uma maneira de implementar no futuro. Os códigos podem ser ainda mais curtos, substituindo os quatro primeiros caracteres por uma string posicionada no final do código. Por exemplo, o código 588MC9X8+G65 pode ser representado por "C9X8+G65 São Paulo, SP". Isso se dá pelo fato de que existem muitos Open Location Codes terminados em C9X8+G65. Porém entendo que seja inevitável implementar desta maneira sem um banco de dados para relacionar os 160k de locais possíveis.


Assim que possível vou começar a trabalhar em algumas coisas relacionadas a isso. Como falei, não tenho um grande conhecimento, mas vou aproveitar a empolgação e direcionar um pouco de esforço pra contribuir de forma legalzinha pra o projeto.

Valeu, galera!

@LucasHT22
Copy link
Author

Olá @pckcml !

Primeira vez no open source? Que legal!

Fico feliz que você se interessou pela minha issue, me mantenha atualizado sobre o andamento! Se precisar de alguma ajuda, posso ajudar :)

@tkrafael
Copy link

O plus code não é uma versão proprietária do geohash?

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

Successfully merging a pull request may close this issue.

6 participants