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

{"freguesia":"Porto Santo","concelho":"Porto Santo"}

{"freguesia":"Corvo","concelho":"Corvo"}

2 Curtiram

@Sergio_Loureiro posso pedir-te um favor?

Vais a este site (https://www.gps-coordinates.net/) e clicas numa região de Portugal continental e Ilhas e sacas a latitude e longitude e depois colocas na API para ver se coincide.

https://geo-pt-api.joaopimentel.com/?lat=<latitude>&lon=<longitude>

Dois ou três testes são suficientes.

Quero ter a certeza que a API está funcional

Muito obrigado

2 Curtiram

Viseu, Portugal
Latitude: 40.657471 | Longitude: -7.913866

https://geo-pt-api.joaopimentel.com/?lat=40.657471&lon=-7.913866

{"freguesia":"Viseu","concelho":"Viseu","distrito":"Viseu"}

Teste perto duma fronteira distrital

Cliquei no mapa em Lat,Long: 40.682606656008126,-8.274404308450967

EN 333, 3740-412 Sever do Vouga, Portugal
Latitude: 40.682607 | Longitude: -8.274404

https://geo-pt-api.joaopimentel.com/?lat=40.682606656008126&lon=-8.274404308450967

{"freguesia":"União das freguesias de Destriz e Reigoso","concelho":"Oliveira de Frades","distrito":"Viseu"}

Dá diferente, mas eu era capaz de jurar que é o resultado da tua API que está certo e o mapa é que está errado, já que eu conheço a dita zona.

O Google Maps também dá coincidente com a tua API:

https://www.google.com/maps/place/40.682606656008126,-8.274404308450967

3 Curtiram

Espetáculo @Aonio_Lourenco :wink:

2 Curtiram

Muito obrigados @Sergio_Loureiro

2 Curtiram

O OSM usa a base de dados do INE, amenos que alguém vandalize ou apague por engano as divisões administrativas estão corretas.

1 Curtiu

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