Detectar divisão administrativa em função das coordenadas GPS

Está muito bom já testei com ajuda o OSM

2 Curtiram

O OSM tem contudo campos que são difíceis de compreender, refiro-me ao nominatim, ou seja, o serviço que dá a morada em função do GPS. Têm o “municipality” mas não percebo onde está a freguesia.

Já agora, a app vai usar os dois serviços em paralelo, aliás usa o OSM para detetar a rua e quando possível o número da rua.

@brunobarao vê este artigo, particularmente nos pontos 6 e 7 ;

Node.js VS Python: Which is Better? / Habr

Performance is directly related to the speed of the application. This speed is the rate at which your code can be executed. This is the chief feature that we look for in any programming tool.

The comparison of Python and Node.js on this parameter is not tough. We all know that NodeJS is based on Google Chrome’s version 8. It is a very powerful and fast engine. This has made the speed and performance of NodeJS extremely high.

In comparison to Python, NodeJS wins in speed and performance. This is why it is preferred for chatting or messaging app development. While Python is not recommended in data-intensive run-time applications.

Therefore, if your idea revolves around chatting functionalities then NodeJS is a better choice than Python. Select according to the core purpose of your web development project.

Summary: NodeJS is significantly faster than Python.

@arlindopereira

1 Curtiu

@Sergio_Loureiro e @brunobarao adicionei detalhes à API

se forem a https://geo-pt-api.joaopimentel.com/?lat=40.153687&lon=-8.6

agora retorna

{
   "freguesia":"Figueiró do Campo",
   "concelho":"Soure",
   "distrito":"Coimbra",
   "detalhesFreguesia":{
      "codigo":"7058",
      "entidade":"Figueiró do Campo (SOURE)",
      "tipoentidade":"Freguesia",
      "nif":"507739442",
      "rua":"Rua do Rigueirinho",
      "localidade":"Figueiró do Campo (SOURE)",
      "codigopostal":"3130-040",
      "descrpostal":"FIGUEIRÓ DO CAMPO",
      "email":"[email protected]",
      "telefone":"239641002",
      "fax":"",
      "sitio":"www.jf-figueirodocampo.pt",
      "codigoine":"61504",
      "eleitores2011":"1443",
      "populacao2011":"1672",
      "areaha":"1127.00",
      "nomecompleto":"Figueiró do Campo"
   },
   "detalhesMunicipio":{
      "codigo":"2808",
      "entidade":"SOURE",
      "tipoentidade":"Município",
      "nif":"507103742",
      "rua":"Praça da República",
      "localidade":"SOURE",
      "codigopostal":"313-218",
      "descrpostal":"SOURE",
      "email":"[email protected]",
      "telefone":"239506550",
      "fax":"239502951",
      "sitio":"www.cm-soure.pt",
      "presidentecamara":"Mário Jorge da Costa Rodrigues Nunes",
      "areaha":"265.06",
      "populacao":"19245",
      "eleitores":"19003",
      "codigoine":"615"
   }
}

@Sergio_Loureiro podes sff fazer pequenos testes para termos a certeza que está funcional?
@antoniopedro e @MarioJAlves encontrei um documento com todos os contactos das câmaras e juntas de freguesia e assim facilita o contacto com as mesmas. Podem também sff fazer dois ou três testes? @Nuro_Carvalho e @Herculano_Rebordao podem também testar sff?

Muito agradecido

2 Curtiram

Mas está na app que está live/produção?

Sim, está, mas tens de ativar a flag “detalhes”

https://geo-pt-api.joaopimentel.com/?lat=40.153687&lon=-8.6&detalhes=1

1 Curtiu

Desculpa, só vim agora aqui.
Ainda precisas que te faça a conversão?
Em R é apenas st_transform(DADOS, crs=4326) #para ficar no sistema de coordenadas WGS84. as de origem estão em crs=3763.
em python deve ser semelhante. No QGIS podes usar a função reproject layer e escolher o 4326.

2 Curtiram

Olá Rosa, já está a funcionar :slight_smile:

Ora vê

https://geo-pt-api.joaopimentel.com/?lat=40.153687&lon=-8.6&detalhes=1

Ola,
testei 2 sitios, ambos funcionaram bem

Mais uma referência interessante que encontrei, para o caso de Python: https://gis.stackexchange.com/questions/78838/converting-projected-coordinates-to-lat-lon-using-python

https://wiki.openstreetmap.org/wiki/Key:border%20type?uselang=pt-PT
Não sei se é isto a que te referes, mas pergunta no canal do telegram andam por lá alguns feiticeiros de código podem te ajudar.

@brunobarao e @Sergio_Loureiro ora vede comparação com vários testes com NodeJs vs Python

https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/python.html

As rotas mudaram, as instruções estão todas aqui:

Para sacar a localidade em função do GPS, deve-se usar a rota /gps

https://geo-pt-api.joaopimentel.com/gps?lat=40.153687&lon=-8.514602

1 Curtiu

@brunobarao @temospena @Sergio_Loureiro @arlindopereira @Pedro_Lima @Herculano_Rebordao

tal como havia referido criei um domínio para a API, qualquer um pode usar e usaremos na APP da MUBi e em próximas APPs, caso seja necessário: geoptapi.org

4 Curtiram

Não consigo usar, dá sempre erro 404. É intencional e queres pôr a funcionar só por outra via que não o endereço web HTTPS, ou é mesmo erro? Ou sou eu que estou a passar mal os parâmetros?

Acontece sempre, independentemente do modo que é usado.

https://www.geoptapi.org/gps?lat=40.153687&lon=-8.514602

https://www.geoptapi.org/municipio?nome=Évora

https://www.geoptapi.org/freguesia?nome=serzedelo

https://www.geoptapi.org/freguesia?nome=serzedelo&municipio=guimarães

https://www.geoptapi.org/municipios/freguesias

404

File not found

The site configured at this address does not contain the requested file.

If this is your site, make sure that the filename case matches the URL.
For root URLs (like http://example.com/) you must provide an index.html file.

Read the full documentation for more information about using GitHub Pages.

GitHub Status@githubstatus

[image]

image

Tens de tirar o www

https://geoptapi.org/gps?lat=40.153687&lon=-8.514602

O www faz referência apenas à página explicativa

1 Curtiu

Burrice minha então. Mas não dá para fazeres um redirect quando detectas um endereço www que deveria ir para API?

Testei agora e parece funcionar bem.
https://geoptapi.org/gps?lat=40.153687&lon=-8.514602

https://geoptapi.org/municipio?nome=Évora

https://geoptapi.org/freguesia?nome=serzedelo

https://geoptapi.org/freguesia?nome=serzedelo&municipio=guimarães

https://geoptapi.org/municipios/freguesias

Notei que no caso de Odivelas está desactualizado, pois a Susana Amador já não é Presidente da Câmara há muito tempo.

https://geoptapi.org/municipio?nome=Évora

Uma melhoria que podia ser feita era ser mais inteligente ao nível dos acentos. Por exemplo, detectar que https://geoptapi.org/municipio?nome=evora o utlizador que ir para Évora.

Um dado que eu gostaria de obter também, mas nesta altura do campeonato não sei será possível, a verdadeira freguesia pré-reforma administrativa de 2013.

https://geoptapi.org/gps?lat=40.7512915&lon=-8.0610571&detalhes=1

Ou é o campo localidade que vem aí?

Muito obrigados pelos comentários :slight_smile:

Pensei nisso, mas é melhor não, para não criar confusão. O subdomínio www faz referência apenas ao website.

Tens toda a razão, é verdade, já pedi aos tipos para atualizar a info, mas até agora nada. Essa info é de 2018 e é sacada daqui.

Talvez pudesses fazer login no site dados.gov.pt e escrever lá um comentário para atualizarem os dados, ou então enviar também um email para a direção geral das autarquias locais ([email protected]) a pedir para atualizarem os dados, para fazermos alguma pressão :wink: que te parece?

Bem visto, já adicionei à todo list

Confesso que não sei, mas acho que não é. Repara p.ex. que a Parede é uma antiga freguesia que agora pertence a Carcavelos, e contudo na localidade com as coordenadas da Parede aparece Carcavelos.

https://geoptapi.org/gps?lat=38.693083921057074&lon=-9.355148712605319&detalhes=1

Para isso teríamos que ir buscar ficheiros antigos e fazer o seu processamento, acho que para já não vale a pena

2 Curtiram

Boas @Sergio_Loureiro podes ver agora sff se está atual?

https://geoptapi.org/municipio?nome=odivelas

Já está!
https://geoptapi.org/municipio?nome=evora