Calcular a distancia entre dois pontos usando GPS

Mensagem
Autor
luispacheco
Mensagens: 12
Registrado em: 15 Set 2007, 18:46

Calcular a distancia entre dois pontos usando GPS

#1 Mensagempor luispacheco » 10 Out 2007, 12:26

Olé... será que alguem me pode ajudar a calcular a distancia entre dois pontos,

tendo coordenadas GPS, lat e long de dois pontos, considerando a terra plana?

é correcto fazer distancia =sqrt((lat1-lat2)a‚²+(long1-long2)a‚²) ?

e ja agora, em Km...

Depois de ter a distancia, como calculo o angulo entre os pontos e o NORTE Magnético?

será q é correcto

angulo = tg-1((lat1-lat2)/(long1-long2)), ?

Obrigado...



Avatar do usuário
Igor
Mensagens: 205
Registrado em: 22 Set 2005, 00:06
Localização: Caxias do Sul - RS
Contato:

Re: Calcular a distancia entre dois pontos usando GPS

#2 Mensagempor Igor » 10 Out 2007, 13:47

não!

Para calcular assim tu precisa de coordenadas UTM e elas devem estar na mesma zona.


͍gor Tschoepke Goedel
eTrex 30
igortg arroba gmail ponto com

Avatar do usuário
nqnnospam
Mensagens: 3905
Registrado em: 19 Set 2005, 18:22
Latitude: -14.848750
Longitude: -40.83701
Localização: Vitoria da Conquista-BA
Contato:

Re: Calcular a distancia entre dois pontos usando GPS

#3 Mensagempor nqnnospam » 11 Out 2007, 21:02

Existem programas prontos para fazer isso.

Faça um Google por "Terralib". É gratuita.


[]'s Sérgio Barroso
GPSMap 60CSx / Nuvi 765T / Nokia N78 + MobileXT
Desenvolvedor Estadual e Municipal Projeto Tracksource
Não leio mensagens privadas.
Quer colaborar com o Projeto Tracksource? Clique aqui.

luispacheco
Mensagens: 12
Registrado em: 15 Set 2007, 18:46

Re: Calcular a distancia entre dois pontos usando GPS

#4 Mensagempor luispacheco » 12 Out 2007, 05:10

oLE´...

sIM, EU sei que existem programas para fazer isso, so que queria ser eu a faze-lo!!!!

É para uma aplicação, e para tirar pontos no espaço de 800m...

por isso, eu achei que nao tinha mal fazer o teorema de pitagoras...

Antes eu vou ver quantos Km equivale 1grau e faço a relação...

pena é que a latitude tb varia com a longitude e como é um espaço pequeno, gostava de saber se posso fazer assim...?



Avatar do usuário
nqnnospam
Mensagens: 3905
Registrado em: 19 Set 2005, 18:22
Latitude: -14.848750
Longitude: -40.83701
Localização: Vitoria da Conquista-BA
Contato:

Re: Calcular a distancia entre dois pontos usando GPS

#5 Mensagempor nqnnospam » 12 Out 2007, 13:40

Quem disse que a matemática do ensino médio não serve para nada? :lol:

A fórmula de distância que você citou é válida para distâncias lineares, e não angulares.

Para usar ângulos (latitude e longitude) você precisa saber o raio da Terra para calcular a "corda" correspondente.

Ou então você pode fazer como disse o Ígor, passar as coordenadas para UTM. Se as coordenadas estiverem todas na mesma zona, você pode usar a fórmula de distância. As coordenas UTM São lineares (metros).


[]'s Sérgio Barroso
GPSMap 60CSx / Nuvi 765T / Nokia N78 + MobileXT
Desenvolvedor Estadual e Municipal Projeto Tracksource
Não leio mensagens privadas.
Quer colaborar com o Projeto Tracksource? Clique aqui.

luispacheco
Mensagens: 12
Registrado em: 15 Set 2007, 18:46

Re: Calcular a distancia entre dois pontos usando GPS

#6 Mensagempor luispacheco » 12 Out 2007, 14:06

Olé... mais uma vez Obrigado!! ;)

O que eu estou a fazer é pegar na latitude e na longitude em graus e transformo em Km deste modo...

gps.longitude = cos(gps.latitude*M_PI/180)*gps.longitude*111.12;
gps.latitude *= 111.12;

sera que esta correcto??

Como converto latitude e longitude para coordenadas UTM?

Obrigado...



Avatar do usuário
nqnnospam
Mensagens: 3905
Registrado em: 19 Set 2005, 18:22
Latitude: -14.848750
Longitude: -40.83701
Localização: Vitoria da Conquista-BA
Contato:

Re: Calcular a distancia entre dois pontos usando GPS

#7 Mensagempor nqnnospam » 12 Out 2007, 14:43

Só entendi a parte onde você converte graus para radianos. O restante não entendi. Porque calcular coseno?

Lá do ensino médio :lol:, se Theta é o ângulo e R é o raio, então o comprimento linear Cl da corda correspondente é:

Cl = Theta * R

Converter Lat/Long para UTM é complicado. Melhor ajustar o GPS para UTM (consulte o manual).


[]'s Sérgio Barroso
GPSMap 60CSx / Nuvi 765T / Nokia N78 + MobileXT
Desenvolvedor Estadual e Municipal Projeto Tracksource
Não leio mensagens privadas.
Quer colaborar com o Projeto Tracksource? Clique aqui.

luispacheco
Mensagens: 12
Registrado em: 15 Set 2007, 18:46

Re: Calcular a distancia entre dois pontos usando GPS

#8 Mensagempor luispacheco » 13 Out 2007, 06:04

ole...

Eu estou a fazer a terra plana e coloco o ponto X=0 e Y=0, no equador e no meirdiano de (Grennwidtch!?)

Estas expressões servem para passar de graus para Km

longitudeKm = cos(latitudegraus*M_PI/180)*longitudegraus*111.12;

latitudeKm=latitudegRAUS * 111.12;

Foram expressões que eu vi...

se colocar no google

---> degree latitude longitude cos Km 111.12 <--------------

aparece esta relação que eu utilizo

por exemplo neste link

http://comp.uark.edu/~sboss/mgglab03.htm

diz:

linear distance (km) per degree of longitude = 111.12 x cos q where q is latitude in degrees.

Note that since cos (0) = 1, at the equator, this equation resolves to 111.12 x cos (0) = 111.12 x 1 = 111.12 km

estara isto correcto???

Obrigado...



Avatar do usuário
nqnnospam
Mensagens: 3905
Registrado em: 19 Set 2005, 18:22
Latitude: -14.848750
Longitude: -40.83701
Localização: Vitoria da Conquista-BA
Contato:

Re: Calcular a distancia entre dois pontos usando GPS

#9 Mensagempor nqnnospam » 13 Out 2007, 12:21

você está confundindo tudo. Também não é para menos, já que o texto do site que você passou é muito confuso. Uma aplicação básica de trigonometria permite entender as fórmulas.

Primeiro, no site está explicado que um grau de longitude, no Equador, equivale a 111.12Km. Logo:

distância linear sobre o equador = 112.12 * Longitude_em_graus

Repetindo, esta fórmula só vale para distâncias medidas sobre a linha ("paralelo") do Equador, isto é, para latitude=0º. não vale para distâncias medidas entre pontos com latitudes diferentes de zero. Esta fórmula fornece somente a distância de um ponto até a origem, ou seja, um dos pontos está sempre na origem.

Para distâncias em outro paralelos (latitudes), aí sim vem a fórmula do coseno (que estão incorretamente grafada no site que você mencionou), e que Também só vale para medidas de distâncias feitas em (ou ao longo de) um paralelo:

distância linear em outros paralelos = cos(latitude_em_graus*PI/180)*111.12*longitude_em_graus

onde latidude_em_graus é a latitude do paralelo. Esta fórmula fornece somente a distância de um ponto até a origem, ou seja, um dos pontos está sempre na origem.

Para distâncias pequenas é melhor usar a fórmula que eu citei, porque estas fórmulas que você mencionou só podem ser usadas para pontos que estiverem numa mesma latitude.

Editado: feitas algumas correções e adicionadas algumas observações


[]'s Sérgio Barroso
GPSMap 60CSx / Nuvi 765T / Nokia N78 + MobileXT
Desenvolvedor Estadual e Municipal Projeto Tracksource
Não leio mensagens privadas.
Quer colaborar com o Projeto Tracksource? Clique aqui.

luispacheco
Mensagens: 12
Registrado em: 15 Set 2007, 18:46

Re: Calcular a distancia entre dois pontos usando GPS

#10 Mensagempor luispacheco » 13 Out 2007, 12:36

Ok, Obrigado...

será que mesmo sendo um espaço de cerca de 800m nao posso utilizar estas fórmulas?

Eu estive a ver o meu GPS e nao me parece que ele dê as coordenadas em UTM... É um garmin 18PC

Entao, estou tramado, porque eu preciso da calcular a distância entre dois pontos, e so tenho a latitude e a longitude

de ambos...

não sei como fazer então... n formula que mencionou qual é o Theta? como posso aplica-la?

Obrigado...



Avatar do usuário
nqnnospam
Mensagens: 3905
Registrado em: 19 Set 2005, 18:22
Latitude: -14.848750
Longitude: -40.83701
Localização: Vitoria da Conquista-BA
Contato:

Re: Calcular a distancia entre dois pontos usando GPS

#11 Mensagempor nqnnospam » 13 Out 2007, 12:51

Pode usar a fórmula do cara, desde que você entenda o que está fazendo.

Por exemplo, seus pontos devem ter todos latitudes diferentes. Para usar a fórmula você vai ter que considerar todos na mesma latitude.

Além disso, para saber a distância entre dois pontos, vai ter subtrair os valores obtidos através da fórmula, pois ela retorna a distância do ponto até a origem.


[]'s Sérgio Barroso
GPSMap 60CSx / Nuvi 765T / Nokia N78 + MobileXT
Desenvolvedor Estadual e Municipal Projeto Tracksource
Não leio mensagens privadas.
Quer colaborar com o Projeto Tracksource? Clique aqui.

luispacheco
Mensagens: 12
Registrado em: 15 Set 2007, 18:46

Re: Calcular a distancia entre dois pontos usando GPS

#12 Mensagempor luispacheco » 13 Out 2007, 14:58

Desde ja peço desculpa, mas parece que cada vez entendo menos...

Por favor diga-me qual o caminho que devo seguir e como ...!?

Para transformar a longitude em Km, uso

distância linear em outros paralelos = cos(latitude_em_graus*PI/180)*111.12*longitude_em_graus

esta distancia linear da-me a distancia em relação ao meridiano... certo? de um qualquer paralelo ao mediterrâneo...

e quanto a latitude? como faço?

É que eu preciso de dois pontos, x e y!?

Obrigado...

Por favor me desculpe mas eu tenho mesmo que entender isto... :(



Avatar do usuário
nqnnospam
Mensagens: 3905
Registrado em: 19 Set 2005, 18:22
Latitude: -14.848750
Longitude: -40.83701
Localização: Vitoria da Conquista-BA
Contato:

Re: Calcular a distancia entre dois pontos usando GPS

#13 Mensagempor nqnnospam » 13 Out 2007, 17:15

Ok, está difícil mesmo. Aquelas aulas que você faltou na 5a série estão fazendo falta ... :lol:

Problema: Calcular a distância entre os pontos A e B (Dist_A_B), onde:

A = (Lat_A, Lon_A)
B = (Lat_B, Lon_B)

Como eu disse antes, a fórmula:

distância linear em outros paralelos = cos(latitude_em_graus*PI/180)*111.12*longitude_em_graus

vale somente para uma latitude fixa.

Logo, se Lat_A é diferente da Lat_B, então você vai ter que escolher umas das duas para usar na fórmula, ou então fazer a média. Supondo que você faça a média:

Lat_Média_A_B = (Lat_A + Lat_B)/2

Temos:

Dist_A = cos(Lat_Média_A_B*PI/180)*111.12*Lon_A (I)
Dist_B = cos(Lat_Média_A_B*PI/180)*111.12*Lon_B (II)

Como eu já disse antes, para achar Dist_A_B você tem que encontrar a diferença positiva entre Dist_A e Dist_B, logo:

Dist_A_B = | Dist_A - Dist_B | (III)

Notar que este valor é aproximado, em virtude de se usar uma fórmula feita para Latitude fixa com Latitudes diferentes. Para ter uma idéia do erro, calcule Dist_A e Dist_B (fórmulas I e II) e depois Dist_A_B (fórmula III), primeiro com Lat_A, e depois com Lat_B, e compare os resultados os resultados de Dist_A_B.


[]'s Sérgio Barroso
GPSMap 60CSx / Nuvi 765T / Nokia N78 + MobileXT
Desenvolvedor Estadual e Municipal Projeto Tracksource
Não leio mensagens privadas.
Quer colaborar com o Projeto Tracksource? Clique aqui.

luispacheco
Mensagens: 12
Registrado em: 15 Set 2007, 18:46

Re: Calcular a distancia entre dois pontos usando GPS

#14 Mensagempor luispacheco » 13 Out 2007, 19:58

OK... OBRIGADO...

Sim, agora entendi e ja vi a asneira que estava a fazer...

Mas eu continuo com problemas... ;(

A expressão somente me da uma distancia entre dois pontos...;(

Eu precisava de colocar os pontos num plano XY por exemplo...

Por favor imagine o eixo dos Y a latitude e o X a longitude...

Se eu tiver dois pontos, um na origem do referencial, e outro em qualquer dos quadrantes,

fazendo

angulo = tg-1((X1-X2)/(Y1-Y2)),

consigo saber qual a inclinação da recta...

Dependendo do quadrante que ele esta, eu posso calcular a inclinação da recta e tomando por exemplo como referencia o NORTE...

Se eu tiver um robo no centro do plano XY com uma Bussola

e souber a inclinação da recta, posso leva-lo para esse ponto...

O meu Porblema agora é saber X1-X2 e Y1-Y2 ou seja, a inclinação da recta...!!!???

Mais uma vez Obrigado...



Avatar do usuário
nqnnospam
Mensagens: 3905
Registrado em: 19 Set 2005, 18:22
Latitude: -14.848750
Longitude: -40.83701
Localização: Vitoria da Conquista-BA
Contato:

Re: Calcular a distancia entre dois pontos usando GPS

#15 Mensagempor nqnnospam » 13 Out 2007, 21:30

:lol: :lol: :lol: :lol:

Como eu disse lá anteriormente, é aplicação básica de relações entre angulos e cordas em circunferências:

Cl = Theta * R

A = (Lat_A, Lon_A)
B = (Lat_B, Lon_B)

Logo:

X_A = Lon_A * R
Y_A = Lat_A * R

X_B = Lon_B * R
Y_B = Lat_B * R

Agora, estas expressões Também São aproximadas, porque consideram a superfície esférica da Terra como um plano. Quanto maior as distâncias, maior os erros.

A forma correta de fazer é usar uma biblioteca já pronta, que leva em conta a esfericidade da Terra, etc., etc.


[]'s Sérgio Barroso
GPSMap 60CSx / Nuvi 765T / Nokia N78 + MobileXT
Desenvolvedor Estadual e Municipal Projeto Tracksource
Não leio mensagens privadas.
Quer colaborar com o Projeto Tracksource? Clique aqui.

luispacheco
Mensagens: 12
Registrado em: 15 Set 2007, 18:46

Re: Calcular a distancia entre dois pontos usando GPS

#16 Mensagempor luispacheco » 13 Out 2007, 22:06

ole... 1000 vezes obrigado...

eu ja tinha encontrado librarias pa isso, so q como é para "tentar" numa plataforma móvel, n tenho mt tempo para grandes

contas!!!! ;)

vou tentar...

Obrigado....



Filohipo
Mensagens: 355
Registrado em: 20 Mar 2006, 01:12
Localização: Lisboa - Portugal

Re: Calcular a distancia entre dois pontos usando GPS

#17 Mensagempor Filohipo » 14 Out 2007, 11:52

Olá
Sem querer me meter em fórmulas matemáticas, lembro que o erro de medição de latitude/longitude por um GPS de uso amador é muito grande para medir distãncias de apenas 800m
Exmplo - Erro médio GPS - você se encontra dentro de um raio de 15 mts 95% do tempo

Ponto A pode estar mais 15 metros afastado da posição média do ponto B.
O mesmo raciocinio para o ponto B em relação a A.
Quer isto dizer que você pode ter os dois pontos distanciados de 830 mts ou apenas de 770 mts. Em medições de terrenos, mais ou menos 60 mts dá briga de certeza.



luispacheco
Mensagens: 12
Registrado em: 15 Set 2007, 18:46

Re: Calcular a distancia entre dois pontos usando GPS

#18 Mensagempor luispacheco » 14 Out 2007, 19:31

Olé...

Sim, quanto ao erro eu sei, estou a contar com 1 erro de cerca de 10m para cada lado do ponto desejado :cry:

Ja agora, como so tenho oportunidade de testar amanha,

continuei a investigar e

encontrei um link que me pareceu bastante interessante no que a estas formulas todas diz respeito...

http://www.ime.unicamp.br/~eliane/ma241 ... /globo.pdf

Na página 8 tem um tema que diz:

A SUPERFÍCIE ESFÉRICA EM COORDENADAS CARTESIANAS

... um pouco de blabla e tem...

X = R cos(latitude) cos(longitude)
Y = R cos(latitude) sen(longitude)
Z = R sen(latitude)

Que me dizem a isto???

Obrigado...



Avatar do usuário
nqnnospam
Mensagens: 3905
Registrado em: 19 Set 2005, 18:22
Latitude: -14.848750
Longitude: -40.83701
Localização: Vitoria da Conquista-BA
Contato:

Re: Calcular a distancia entre dois pontos usando GPS

#19 Mensagempor nqnnospam » 14 Out 2007, 22:08

Também está certo. Transformação de coordenas (R,theta,phi) esféricas em cartesianas (x,y,z).

Mas não é possível calcular distância sobre a superfície esférica usando estes valores de x,y,z, com a fórmula tradicional de distância. Isto está explicado na parte que você chamou de "blá-blá-blá" ... :roll:


[]'s Sérgio Barroso
GPSMap 60CSx / Nuvi 765T / Nokia N78 + MobileXT
Desenvolvedor Estadual e Municipal Projeto Tracksource
Não leio mensagens privadas.
Quer colaborar com o Projeto Tracksource? Clique aqui.

Iracema Moll
Mensagens: 1
Registrado em: 17 Abr 2010, 09:42
Latitude: 650395
Longitude: 8886628

Re: Calcular a distancia entre dois pontos usando GPS

#20 Mensagempor Iracema Moll » 17 Abr 2010, 10:20

Olá,
Será que alguém poderia me falar como eu posso calcular a distância em km (linear) entre dois pontos que estão em UTM? Existe algum programa pra isso?

Já agradeço,
Iracema




Voltar para “Outros Fabricantes”

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 0 visitante