Calcular a menor distância entre pontos e linhas

2,655 views
Skip to first unread message

Carlos Leandro Cordeiro

unread,
Feb 19, 2015, 7:21:25 PM2/19/15
to qgisb...@googlegroups.com
Oi Pessoal,
 sou novo no Qgis e estou gostando muito, muita coisa consigo fazer mais facilmente nele do que em outros programas.
Mas agora estou com uma dúvida. 
Estou precisando de uma tabela da distancia mínima de pontos para um shape de linha. 
Por exemplo, tenho vários fragmentos florestais que eu calculei o centróide, agora quero saber qual a distancia mínima destes para o rio mais próximo.
Procurei, mais não encontrei essa dúvida aqui.
Desde já agradeço
Abcs  

Leônidas Descovi Filho

unread,
Feb 20, 2015, 10:50:23 AM2/20/15
to qgisbrasil
Oi Carlos

Não me veio nada mais prático em mente. Mas contamos com os outros colaboradores...

Te diria uma dica provisória e talvez, pelo exemplo que voce cita, pode ser uma forma interessante para seu problema.

Primeiro::

Transforme teu dados para projeção UTM

Segundo::

Densifique a linha do rio  USE MENU VETOR > Geometrias > Densificar Geometrias (ex.: colocar vértices de 5 e 5 metros - use 5 como valor de vértices a adicionar);

Terceiro::

Extraia os nós do rio resultado da 2a etapa Usando MENU VETOR > Geometrias > Extrair nós (irá gerar um arquivo de pontos - referente aos vértices do rio);

Quarto::

Crie a matriz de distância Menu Vetor > Analisar > Matriz de distância

As estradas serão os pontos centroides frag ftal e arquivo dos vértices (referente ao rio)

(Use distância linear neste seu caso)

A saída é uma matriz de distância txt que pode ser carregada novamente no qgis convertedo e Adicionando arquivo CSV.

Boa sorte
Abs
Relate depois o resultado

Leônidas



--
Comunidade QGIS Brasil: http://qgisbrasil.wordpress.com
---
Você recebeu essa mensagem porque está inscrito no grupo "qgisbrasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para qgisbrasil+...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para qgisb...@googlegroups.com.
Acesse esse grupo em http://groups.google.com/group/qgisbrasil.
Para mais opções, acesse https://groups.google.com/d/optout.

Carlos Leandro Cordeiro

unread,
Jul 31, 2015, 10:52:56 AM7/31/15
to qgisbrasil, leo...@gmail.com
Oi Leônidas, 
obrigado pela ajuda, mas na época acabei optando pelo Arcgis mesmo.
Mas vou tentar com essas suas dicas.
Abcs

Augusto Oliveira

unread,
Jul 31, 2015, 5:23:00 PM7/31/15
to qgisbrasil, leo...@gmail.com, carlosl...@gmail.com
Leandro, o ideal seria ter os dados no PostGIS. Considerando que os mesmos estejam em tabelas com o nome floresta e rio, o comando select seria bem simples:

select floresta.nome, st_distance(floresta.the_geom,rio.the_geom) as distancia
,ST_ClosestPoint(rio.the_geom, floresta.the_geom) ptMaisProximo
from floresta, rio
where rio.id = 1 --> supondo que o rio específico seja o id 1

Além de calcular a menor distância de cada floresta ao rio, eu também mostro o ponto no rio mais próximo à respectiva floresta. Veja que não é necessário trabalhar com o centroide de cada floresta, o que torna mais precisa a menor distância.

Abraços,
Augusto

thatyane caetano

unread,
Nov 20, 2017, 8:22:01 AM11/20/17
to qgisbrasil
Olá, teria como vc me informar como fez? também estou precisando fazer esse processo, pode ser pelo arqgis mesmo.

Daniel Bruno da Silva Triumpnho

unread,
Nov 20, 2017, 8:28:13 AM11/20/17
to qgisb...@googlegroups.com
D=raiz(xpontofinal -xpontoinicial)2+(ypontofinal-ypontoinicial)2

--
Comunidade QGIS Brasil: http://qgisbrasil.org/

---
Você recebeu essa mensagem porque está inscrito no grupo "qgisbrasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para qgisbrasil+unsubscribe@googlegroups.com.

Para postar nesse grupo, envie um e-mail para qgisb...@googlegroups.com.

Guilherme Ferraz

unread,
Jan 2, 2018, 1:23:31 PM1/2/18
to qgisbrasil
O resultado dessa equação seria em qual unidade?


Em segunda-feira, 20 de novembro de 2017 11:28:13 UTC-2, Daniel Bruno escreveu:
D=raiz(xpontofinal -xpontoinicial)2+(ypontofinal-ypontoinicial)2

Em 20 de nov de 2017 11:22 AM, "thatyane caetano" <thatyca...@gmail.com> escreveu:
Olá, teria como vc me informar como fez? também estou precisando fazer esse processo, pode ser pelo arqgis mesmo.

Em quinta-feira, 19 de fevereiro de 2015 22:21:25 UTC-2, Carlos Leandro Cordeiro escreveu:
Oi Pessoal,
 sou novo no Qgis e estou gostando muito, muita coisa consigo fazer mais facilmente nele do que em outros programas.
Mas agora estou com uma dúvida. 
Estou precisando de uma tabela da distancia mínima de pontos para um shape de linha. 
Por exemplo, tenho vários fragmentos florestais que eu calculei o centróide, agora quero saber qual a distancia mínima destes para o rio mais próximo.
Procurei, mais não encontrei essa dúvida aqui.
Desde já agradeço
Abcs  

--
Comunidade QGIS Brasil: http://qgisbrasil.org/
---
Você recebeu essa mensagem porque está inscrito no grupo "qgisbrasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para qgisbrasil+...@googlegroups.com.

J P

unread,
Jan 17, 2020, 7:40:58 AM1/17/20
to qgisbrasil
Consegui utilizando o plugin NNJoin no qgis. Talvez tenha que multiplicar por 100 se deseja obter as distância em km


Em quinta-feira, 19 de fevereiro de 2015 22:21:25 UTC-2, Carlos Leandro Cordeiro escreveu:

yjmenezes

unread,
Jan 17, 2020, 8:48:44 AM1/17/20
to qgisbrasil
@Leonidas,

No PostGIS daria para fazer algo assim: considerando um ponto  no meridiano central (-51,-25) e calculando ate um paralelo  -26.0
Vai dar um arco de 1 grau, coisa de 110km,  sem a necessidade de interpolar pontos na linha -49...-53

psql qqDBspacial -c "SELECT ST_Distance('SRID=4326;POINT(-51.0 -25.0)'::geometry,'SRID=4326;LINESTRING(-49.0 -26.0, -53.0 -26.0)'::geometry,TRUE);"

psql qqDBspacial -c "SELECT ST_Distance(ST_Transform('SRID=4326;POINT(-51.0 -25.0)'::geometry, 31982),ST_Transform('SRID=4326;LINESTRING(-48.0 -26.0,-49.0 -26.0, -53.0 -26.0 )'::geometry, 31982));"

de uma olhada.

[]s
julio

Em sexta-feira, 20 de fevereiro de 2015 13:50:23 UTC-2, Leônidas Descovi Filho escreveu:

Leônidas



Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para qgisbrasil+unsubscribe@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages