Obter coordenadas em graus, minutos e segundos no Qgis 2.14

8,192 views
Skip to first unread message

Edivaldo Henrique

unread,
May 23, 2016, 2:55:28 PM5/23/16
to qgisbrasil
Estou tentando obter coordenadas em graus, minutos e segundos no Qgis 2.14, mas não estou conseguindo, só consigo em Graus decimais.
Pesquisei na internet e encontrei a seguinte postagem:
__________________________________________________________________________________________________________________
O colega Luiz Motta desenvolveu um plugin e implementou tal função no Qgis:
Roteiro:
 
Complementos
  Gerenciador de complementos
    Opções
       Adicionar
    Obter mais
      Busca por: expressions ibama
        Instalar
 
Obs:
1.     Após a instalação o plugin vai ficar instalado dentro da calculadora de campo;
2.     Para que seja possível acrescentar as coordenadas, na tabela, é necessário que o shape esteja em coordenadas geográficas;
3.     Na calculadora de campo habilita-se a edição do shape, buscar pela ferramenta, que será o nome dado na instalação do plugin;
4.     Criar uma coluna LONG e LAT.
5.     longitude dms_x( $geometry )
Latitude dms_y( $geometry )
6.     As coordenadas gms serão postadas na coluna correspondente.
__________________________________________________________________________________________________________________

Mas quando busco por EXPRESSIONS IBAMA, não aparece, alguém pode me ajudar, por favor.

Victor Quaresma

unread,
May 24, 2016, 9:34:57 AM5/24/16
to qgisbrasil

Procure no seu gerenciador de arquivo a pasta:

qgis2/python/plugins/

Depois cole os arquivo anexos (descompacte) na pasta plugins.

Qualquer dúvida entre em contato.

Victor.
expressionsibama.zip

Kyle Felipe Vieira Roberto

unread,
May 24, 2016, 9:43:47 AM5/24/16
to qgisbrasil
Acho que esse repositório ai não esta mais funcionando

Edivaldo Henrique

unread,
May 25, 2016, 7:01:04 AM5/25/16
to qgisbrasil
RESOLVIDO 
Cálculo das coordenadas no formato GMS

Pesquisei e quebrei a cabeça na internet um bom tempo(+ de semana) e não conseguia solução.
Com ajuda consegui duas formas, graças aos colegas LUIZ MOTTA e MARCELO CABRAL do IBAMA - OBRIGADO PELA AJUDA.
As duas formas funcionaram comigo, tanto no Windows 7 como no UBUNTU 16.4, com Qgis 2.14.2

A primeira foi do Marcelo Cabral, eu testei no Qgis 2.14.2 com Windows 7, da seguinte forma:
1) Adiciona uma camada shapefile com feições(pontos)
2) Abrir Tabela de Atributos do Shapefile
3) Habilitar edição
4) Clicar em Abrir Calculadora de Campo
5) Inserir Nome do novo Campo = “Lat” –> Tipo do novo campo = “Texto (string)” –> Comprimento do campo = 20 -> Na ficha “Expressão” copiar e colar a linha abaixo e depois clicar em OK: 
CASE WHEN $y<0
THEN (floor ($y*-1) || '° ' || floor((($y*-1) - floor ($y*-1)) * 60) ||'\' ' || substr( (tostring(((($y*-1) - floor ($y*-1)) * 60) - floor((($y*-1) - floor ($y*-1)) * 60)) * 60),1,5) || '" S')
ELSE (floor ($y) || '° ' || floor((($y) - floor ($y)) * 60) ||'\' ' || substr( (tostring(((($y) - floor ($y)) * 60) - floor((($y) - floor ($y)) * 60)) * 60),1,5) || '" N')
END
6) Clicar em Abrir Calculadora de Campo
7) Inserir Nome do novo Campo = “Long” –> Tipo do novo campo = “Texto (string)” –> Comprimento do campo = 20 -> Na ficha “Expressão” copiar e colar a linha abaixo e depois clicar em OK::
CASE WHEN $X<0
THEN (floor ($x*-1) || '° ' || floor((($x*-1) - floor ($x*-1)) * 60) ||'\' ' || substr( (tostring(((($x*-1) - floor ($x*-1)) * 60) - floor((($x*-1) - floor ($x*-1)) * 60)) * 60),1,5) || '" W')
ELSE (floor ($x) || '° ' || floor((($x) - floor ($x)) * 60) ||'\' ' || substr( (tostring(((($x) - floor ($x)) * 60) - floor((($x) - floor ($x)) * 60)) * 60),1,5) || '" E')
END

A segunda ajuda foi do Luiz Motta, eu testei no Qgis 2.14.2 no UBUNTU 16.4 e funcionou blz, da seguinte forma:
1) Primeiramente acessar o endereço "https://github.com/lmotta/expressions_qgis/blob/master/ibama_expressions.py".  Ao acessar esta página selecionar e copiar da linha número 1 até 243, deixar na memória e voltar para o Qgis.
2) Adiciona uma camada shapefile com feições(pontos)
3) Abrir Tabela de Atributos do Shapefile
4) Habilitar o ícone "Selecionar Feições Usando uma Expressão"(ícone com símbolo do E sobre um quadrado)
5) Clicar na aba Editor de Funções
6) Clicar em Novo arquivo
7) No campo Nome do arquivo digitar "ibama" -> OK  -> o arquivo gerado vai aparecer no lado esquerdo
8) Do lado direito tem um editor com números, selecionar as linhas número 1 até a 12 e clicar em cima da área selecionada com o botão direito do mouse para colar as linhas que vç copiou no ítem 1;
9) Acima da linha número 1 tem um ícono Carregar, clicar nele -> A partir deste momento ele irá aparecer na ficha de Expressão
10) Para checar clicar na aba Expressão -> abaixo do campo Busca tem o arquivo gerado(ibama), se clicar nele irá aparecer "dms_x" e "dms_y"
11) Fechar esta janela e ir para Tabela de atributos da camada shapefile com feições(pontos)
12) Clicar no ícole calculadora de campo(ícone com desenho de ábaco)
13) Em Nome do novo campo digitar LATITUDE -> no Tipo do novo campo selecionar Texto(String) -> no Comprimento do campo de saída digitar 20
14) Clicar na seta, ao lado do arquivo criado "ibama" -> clicar 2 vezes na opção dms_y. No lado esquerdo irá aparecer a expressão "dms_y( ", completar com o código do EPSG 4326, ou seja, irá ficar assim: dms_y( 4326) -> clicar em ok
15) Para LONGITUDE clicar no ícole calculadora de campo(ícone com desenho de ábaco)
16) Em Nome do novo campo digitar LONGITUDE -> no Tipo do novo campo selecionar Texto(String) -> no Comprimento do campo de saída digitar 20
17) Clicar na seta, ao lado do arquivo criado "ibama" -> clicar 2 vezes na opção dms_x. No lado esquerdo irá aparecer a expressão "dms_x( ", completar com o código do EPSG 4326, ou seja, irá ficar assim: dms_x( 4326) -> clicar em ok

Espero que funcionem também para vçs... 

Bom trabalho a todos!!

Luís Fernando Pereira de Sales

unread,
May 25, 2016, 12:06:00 PM5/25/16
to qgisb...@googlegroups.com
Parabéns galera. Essa informação me ajudou muito.
Abraços!

--
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.
Para postar nesse grupo, envie um e-mail para qgisb...@googlegroups.com.
Acesse esse grupo em https://groups.google.com/group/qgisbrasil.
Para mais opções, acesse https://groups.google.com/d/optout.

Herminio Sabino

unread,
Nov 7, 2016, 3:16:41 PM11/7/16
to qgisbrasil
Boa tarde, 
fiz  teste e funcionou perfeitamente no 2.14.8, 
mas sempre preciso fazer o procedimento descrito por Edivaldo 
a expressão continua no qgis, porém não funciona.. somente depois de colocar as linhas na aba editor de funções

alguém teria a solução para esse pequeno problema. 

atenciosamente.


Em segunda-feira, 23 de maio de 2016 15:55:28 UTC-3, Edivaldo Henrique escreveu:

Tiago Alexandre

unread,
Jul 24, 2017, 11:15:23 PM7/24/17
to qgisbrasil
encontrei essa maravilha aqui que faz isso e um pouco mais, é ir em settings e configurar o formato de entrada das coordenadas

Diego Agostini

unread,
Oct 16, 2017, 4:28:30 PM10/16/17
to qgisbrasil
Estava em busca de obter as coordenadas em GMS também, eu tentei desenvolver pelas funções na Calculadora de Campo, e cheguei ao resultado abaixo, fiz poucos testes mas parece que funciona, se as coordenadas em graus decimais forem negativas. (do sul)

Se for pra criar um campo pra cada elemento:

Cria um campo decimal com Grau: ceil($x)

Cria um campo decimal com Minuto: floor((ceil($x)-($x))*60)

Cria um campo decimal com Segundo: 60*(((ceil($x)-($x))*60)-(floor((ceil($x)-($x))*60)))


Se for pra ter tudo no mesmo campo:

Cria um campo texto com a coordenada em GMS, com segundos em número inteiros: ceil($x) || 'º'  || floor((ceil($x)-($x))*60) || '\'' || round(60*(((ceil($x)-($x))*60)-(floor((ceil($x)-($x))*60)))) || '"'

Cria um campo texto com a coordenada em GMS, com segundos decimais: ceil($x) || 'º'  || floor((ceil($x)-($x))*60) || '\'' || (60*(((ceil($x)-($x))*60)-(floor((ceil($x)-($x))*60)))) || '"'




Em segunda-feira, 23 de maio de 2016 15:55:28 UTC-3, Edivaldo Henrique escreveu:

Fernanda Camila Gomes do Nascimento

unread,
Jul 25, 2019, 9:44:32 AM7/25/19
to qgisbrasil
Melhor resposta! Valeu Edivaldo Henrique! 


Em segunda-feira, 23 de maio de 2016 15:55:28 UTC-3, Edivaldo Henrique escreveu:

Kyle Felipe

unread,
Jul 31, 2019, 6:25:24 PM7/31/19
to qgisbrasil
tem o plugin do ibama que instala uma função na calculadora de campo que faz isso.... não precisa de fazer esse código todo mais não...

Daiane Munch

unread,
Oct 31, 2019, 3:53:10 PM10/31/19
to qgisbrasil
E Qual é o nome do plugin?

Kyle Felipe

unread,
Nov 1, 2019, 12:48:36 AM11/1/19
to qgisbrasil
no Gerenciador de plugins, vc pode porocurar por IBAMA, ou Luiz Motta e irá encontrar eles lá...
Chama Ibama Expressions

Roberto Jarllys Reis Lima

unread,
Nov 1, 2019, 8:33:35 AM11/1/19
to qgisbrasil
Se você já tem as coordenas em graus decimais dá pra convertê-las  pela calculadora de campo. Vai em conversões e depois em to_dms
 a sintaxe é a seguinte: to_dms(coordinate,axis,precision[,formatting])
coordinate: coloca a coluna que corresponde a Lat ou Long
axis: 'x' ou 'y'
precision: eu coloco '6' ou '8'
formatting: 'aligned' ou 'suffix'. 

por fim, lembra de colocar a maior precisão possível em todas as etapas, desde o cálculo de lat long até a conversão. E o tipo do novo campo da coluna tem que ser string

Em segunda-feira, 23 de maio de 2016 15:55:28 UTC-3, Edivaldo Henrique escreveu:

Andrea Bonato

unread,
Feb 4, 2020, 11:32:41 AM2/4/20
to qgisbrasil
Eu testei as 02 dicas no windows7 com Qgis 2.18.24 e  deu certo!

Obrigada pelas dicas.

nye...@gmail.com

unread,
May 7, 2021, 1:39:19 PM5/7/21
to qgisbrasil
Funcionou muito bem.
Obrigado pela dica

Reply all
Reply to author
Forward
0 new messages