Calcular coordenada geográfica por distância

24 respostas
D

Pessoal, to com uma dúvida semelhante, porém diferente… rs…

vou tentar explicar…

tenho um setor (retangulo) formado por pontos de latitudes e longitudes de suas extremidades, por exemplo:

latMin = -20.353535
lngMin = -40.383838
latMax = -20.303030
lngMax = -40.353535

ou seja, meu setor será criado tendo os 4 pontos:
latMin, lngMin; latMax, lngMin; latMax, lngMax; latMin, lngMax

eu quero saber como faço pra saber a coordenada de um proximo ponto dada uma distância (vamos usar 500m), exemplo:

P1 = latMin, lngMin;

P2 = latMin, lngMin + 500m;

P3 = latMin, lngMin + 500m + 500m;

.

.

.

Chegou ao máximo que gostaria de ir de latitude então passo pra latitude

latMin = latMin + 500m;

Pn = latMin, lngMin;

P(n+1) = latMin, lngMin + 500m;

P(n+2) = latMin, lngMin + 500m + 500m;

.

.

.

e assim por diante…

Espero que possam me ajudar, pois não consigo achar essa fórmula.

Atenciosamente,

Diogo Gama

24 Respostas

D

Plano cartesiano?
Álgebra linear?

D

Considerando a afirmação no outro post que é um calculo de distância sobre a superfície da terra e que as distâncias são consideravelmente grandes, assim como a simplificação de se o globo fosse perfeitamente esférico esse post pode te ajudar:

http://fatosmatematicos.blogspot.com.br/2009/06/distancia-entre-dois-pontos-sobre.html

ps.: essa é uma dúvida matemática e não sobre java avançado, não sei qual seria a melhor área mas esse post deveria ser redirecionado.

D

A questão não é essa Davi.

A distância entre dois pontos eu sei calcular, mas quero o contrário e não to conseguindo…

tenho o ponto A de latitude e longitude e quero saber a latitude e longitude do ponto B sendo que ele tem a mesma longitude e possui uma latitude + 500…

Essa é minha dificuldade…

D

Parece que você acabou de responder B tem latitude de A + 500 e a mesma longitude de A não entendi a dúvida.

V

diogogama:
A questão não é essa Davi.

A distância entre dois pontos eu sei calcular, mas quero o contrário e não to conseguindo…

tenho o ponto A de latitude e longitude e quero saber a latitude e longitude do ponto B sendo que ele tem a mesma longitude e possui uma latitude + 500…

Essa é minha dificuldade…

Isso é facilmente resolvido com a soma de dois vetores.

Porém, latitudes e longitudes são descritos em coordenadas polares. Para escrever os 500m das coordenadas cartesianas em polares, você vai ter que criar o vetor de deslocamento e fazer a conversão. Só então somar os dois vetores (ou seja, somar lat com lat e long. com long).

E tem mais duas considerações:
a) O uso direto de coordenadas polares vai levar em consideração que o corpo celeste em questão é perfeitamente esférico, o que nem sempre é o caso. No caso da Terra, existe um calculo mais preciso usando coordenadas geodésicas;
b) Nenhum dos dois calculos leva em consideração o relevo. Se quiser levar, é mais difícil.

D

Galera, tentei desenhar o mais explicado possível… imagine o quadrado em anexo sobre um região do globo… eu tenho P1 e suas coordenadas por exemplo são:

Latitude -20.353535
Longitude -40.383838

Eu quero descobrir as coordenadas de P2, P3, P4, etc… todos com uma distância padrão, ou aproximada pelo menos…

Agora acho que conseguem entender para me ajudar.

Vlw.


D

Só pra dizer Vini, não precisa levar em conta o relevo… quero apenas que seja feito ao “nível do mar” digamos assim…

V

diogogama:
Galera, tentei desenhar o mais explicado possível… imagine o quadrado em anexo sobre um região do globo… eu tenho P1 e suas coordenadas por exemplo são:

Latitude -20.353535
Longitude -40.383838

Eu quero descobrir as coordenadas de P2, P3, P4, etc… todos com uma distância padrão, ou aproximada pelo menos…

Agora acho que conseguem entender para me ajudar.

Vlw.

Sim, é só um problema de soma de vetores, como falei.

Eu só ressaltei que você não deixou claro para que lado você vai computar esses metros. O que fez você ir para direita, e não para cima, na diagonal, ou num angulo como 30 graus?

D

é pq vou criar meu setor (que seria aquele quadrado) então irei do primeiro ponto de baixo até o de baixo da direita, depois subiria os 500 metros para cima e faria tudo de novo na linha de cima… entende???

D

Então você quer criar um patch em torno de toda superfície terrestre?

A questão é a seguinte, a terra tem cerca de 40075 Km, assim para medições de até 10 Km a diferença causada pela trajetória em parábola para uma linear é insignificante (dependendo da precisão necessária).

Agora se realmente quer uma medida precisa isso vai te ajudar:

o raio da terra é aproximadamente 6371 km

D

Galera, eu só queria saber o seguinte, se existia uma formula para que eu calculasse o deslocamento, por exemplo:

P1
Lat: -20.353535
Lng: -40.383838

Quero andar 100 metros pra direita

x = 100 * <calculo - isso que quero saber>

e aí eu somaria a latitude ou longitude.

P2 Seria:
Lat: -20.353535 + x
Lng: -40.383838

quando chegasse ao final eu faria em uma lng acima. Exemplo:

Pn

Lat: -20.353535
Lng: -40.383838 + x

Entenderam???

Obrigado…

D

E sabe como faria para resolver isso Vini???

E

Não existe “andar 100 metros para a direita” e sim “percorrer 100 metros em uma geodésica para leste”.
Obviamente, andar 100 metros para leste depende das suas coordenadas; e dependendo de onde você está (exatamente sobre o pólo norte ou sobre o pólo sul) isso está indefinido.

D

Desculpe “Doutor”, eu quis dizer “percorrer 100 metros em uma geodésica para o leste”… Poxa, ajuda, não atrapalha… Que diferença faz a forma que falei se você entendeu a mensagem???

Vamos tentar nos ater a resolver o problema…

Que polo norte??? que polo sul??? tem nada disso… Acho que está superestimando o problema…

Meu Deus… vou esperar o Vini responder pq acho que ele está me entendendo…

Vlw ae pela ajuda.

D

Tem alguma idéia Vini???

D

Ninguém pode me ajudar???

M

diogogama:
Desculpe “Doutor”, eu quis dizer “percorrer 100 metros em uma geodésica para o leste”… Poxa, ajuda, não atrapalha… Que diferença faz a forma que falei se você entendeu a mensagem???

Vamos tentar nos ater a resolver o problema…

Que polo norte??? que polo sul??? tem nada disso… Acho que está superestimando o problema…

Meu Deus… vou esperar o Vini responder pq acho que ele está me entendendo…

Vlw ae pela ajuda.

Boa noite, primeiramente, tenha mais paciência.

Segundo, eu entendi perfeitamente o que você quer fazer. O link que o DavidUser passou sobre o comprimento de arco ajuda a resolver seu problema. Por que é que o entanglement citou o Polo Norte e o Polo Sul? Por que você obviamente precisará definir um referencial pra saber o que é andara para a direita. Suponhamos que duas pessoas A e B estão uma de frente para a outra. Se um objeto que está entre as duas pessoas começa a se mover para o lado, uma pessoa vai está vendo ele se mover para a direita e a outra vai ver ele se mover para a esquerda. Por isso que citaram o Polo Norte.

Terceiro, vou explicar como é que resolve uma versão mais simples do seu problema. No lugar da Terra, pense no circulo abaixo:

Digamos que você quer se mover do ponto A para o ponto B. No percurso você vai andar X metros. Mas vocẽ pode descrever esse percurso em termos do angulo inicial e do angulo final. Veja o link que o DavidUser lhe passou, sobre o calculo do comprimento do arco.
Latitude e longitude são, a grosso modo, uma versão em três dimensões do conceito de angulo. Baseado nisso, voê pode achar a função que você quer, bastando apenas pensar um pouco.
Sugiro vocẽ fazer alguns desenhos pra enteder o problema que está querendo resolver.

D

Pessoal, me desculpem, mas é que aqui no meu trampo só é liberado o fórum do GUJ e para tentar outros links é uma burocracia danada…

Será que existe a possibilidade de me mostrarem por aqui sem eu ter que olhar outros links???

Agradeço.

Ps.: Não estou sem paciência, estou apenas querendo resolver o problema não criar outros… rs…

D

Ninguém???

D

?

D

Galera, vamos expor o problema ao qual estou enfrentando pois alguém pode ter passado e resolvido.

Estou fazendo um projeto com o AppletGeo da Nasa World Wind, porém preciso que ele extraia o relevo de uma lista de coordenadas, ou seja, vou passar um determinado setor e a distância que quero, então terei que pegar a altitude daquele ponto a cada distância escolhida.

Alguém sabe se ele possui uma função assim???

Se não souberem, alguém sabe como posso fazer isso???

Para deixar mais claro ex:

passo um setor com 4 coordenadas que faz um quadrado…
passo um distância de 500 metros por exemplo…
ou seja, dentro do setor, a cada 500 metros, ele me fala qual a altitude.

Aquele abraço…

E

Hum… olhando aqui:

http://builds.worldwind.arc.nasa.gov/worldwind-releases/1.5/docs/api/gov/nasa/worldwind/geom/package-summary.html

Eu vi algo que converte a diferença de duas LatLon (latitude + longitude) em uma distância em radianos, mas não vi algo que seja ao contrário.

D

entanglement:
Hum… olhando aqui:

http://builds.worldwind.arc.nasa.gov/worldwind-releases/1.5/docs/api/gov/nasa/worldwind/geom/package-summary.html

Eu vi algo que converte a diferença de duas LatLon (latitude + longitude) em uma distância em radianos, mas não vi algo que seja ao contrário.

Isso eu tinha visto… rs… é exatamente o contrário o que eu preciso… rs…

V

Sim, tenho, e já descrevi qual é. Você já tentou fazer?
http://www.pontov.com.br/site/arquitetura/54-matematica-e-fisica/132-o-uso-de-vetores-nos-jogos

Criado 4 de junho de 2013
Ultima resposta 14 de jun. de 2013
Respostas 24
Participantes 6