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

Já consegui converter o geopackage para shapefile, não percebo mesmo o que coordenadas são estas usadas no ficheiro. Parece que (0,0) é Vila de Rei, centro geodésico, mas como converto coordenadas normais para isto?

Era capaz de dizer que isso é uma conta dum offset e um multiplicador em relação ao GPS normal. Pelo menos parece-me.

A que corresponde [ -13243.458300000057, -288011.9726 ] ?

1 Curtiu

Mais confuso que isso, é um sistema de coordenadas que usamos que é diferente do GPS e que tem como (0,0) Vila de Rei, o centro geodésico de Portugal.

@brunobarao como é que fizeste a conversão para GPS? @temospena sabes como fazer a conversão para GPS?

No ficheiro Cont_AAD_CAOP2017.qpj que vem no zip que aí deixaste:

PARAMETER["latitude_of_origin",39.66825833333333],PARAMETER["central_meridian",-8.133108333333334]

Que corresponde a um ponto lá perto de Vila de Rei:

https://www.google.com/maps/place/39.66825833333333,-8.133108333333334

Experimenta fazer o offset entre o (0,0) GPSGlobal e Vila de Rei e dividir as duas coordenadas pelo valor 298.257222101 que está lá no ficheiro a ver se bate certo.

UPDATE: Acho que me estou a esquecer do pormenor que no GPS o Y cresce para baixo.

bem visto, obrigado, mas acho que é mais complexo, porque um faz uso de coordenadas rectangulares e outro de coordenadas esféricas (latitude, longitude), encontrei isto

1 Curtiu

https://www.dgterritorio.gov.pt/geodesia/sistemas-referencia/portugal-continental/PT-TM06-ETRS89

@brunobarao @temospena pleeeeeese :slight_smile:

Se procurares a internet pelo valor mágico 20037508.34 , encontram-se uns poucos de códigos sempre semelhantes. Parece ser uma conversão entre Google Mercator Spherical Meters e Longitude/Latitude Degrees. https://gist.github.com/onderaltintas/6649521#file-meters2degrees-js

E na resposta

encontrei algo sobre o significado desse valor, do qual eu estava curioso sobre a sua origem.

muito obrigado @Sergio_Loureiro ajudaste bastante :slight_smile:

mas com aquela dica que me deste daquele ficheiro .prj encontrei isto

ou seja, é uma biblioteca que faz uso desse ficheiro .prj para converter para o sistema que quisermos

1 Curtiu

Isso, foi esse proj4js que também utilizei para converter as coordenadas.

2 Curtiram

muito obrigado @brunobarao, também têm biblioteca para python?

Olha, entretanto já terminei, está tudo aqui

Já só falta reencaminhar para o nginx e criar o domínio ou subdomínio

PS: também faltam as ilhas

3 Curtiram

ESTÁ A FUNCIONAR :slight_smile:

Podem pf testar com outras coordenadas???

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

que te parece @brunobarao ?

2 Curtiram
1 Curtiu

@brunobarao e @Sergio_Loureiro já adicionei as regiões autónomas :slight_smile:

Ora testem sff

https://geo-pt-api.joaopimentel.com/?lat=33.06884049792738&lon=-16.357587205709862

https://geo-pt-api.joaopimentel.com/?lat=39.70285775109108&lon=-31.10396479518719

1 Curtiu

{"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