Conversão de Coordenadas Geográficas com GeoTransform

O GeoTransform é uma biblioteca feita na linguagem de programação Java e C++ e tem como objetivo a conversão de coordenadas geográficas como: o GDC – Geodetic Coordinate System (Sistema de Coordenadas Geodésica), o GCC – GeoCentric Coordinate System (Sistema de Coordenadas Geocêntrica), UTM – Universal Transverse Mercator, MER – Mercator, LCC – Lambert Conformal Conic e OSGB – Ordinance Survey Great Britain. É uma rica e eficiente biblioteca para os desenvolvedores e até os não desenvolvedores que pretendem fazer a conversão de coordenadas geográficas seja através de aplicativos ou seja para uso pessoal usando o próprio exemplo de testes disponível no site.

oneearth

A biblioteca está disponível no site do GeoTransform, na versão 1.5, no formato run-time (jar) pronto para uso, Java Sources (src.zip) para desenvolvimento e C++ Conversion para a linguagem de programação C++ e disponível para o sistema de coordenadas WGS-84.

Na aba “Sample Code” encontramos os exemplos de conversão da biblioteca para usar. E como vamos usar um exemplo disponível e pronto, o conv_gdc_utm.java (código que converte o sistema de coordenadas geodésica para UTM) , não é preciso ser um programador para acompanhar a nossa conversão.

Como o exemplo está na linguagem de programação Java, usaremos o Eclipse para fazer a conversão. Depois de instalado o Eclipse é preciso baixar a biblioteca geotransform.jar e o exemplo teste (Sample Code) : conv_gdc_utm.java .

Abra o Eclipse ( nossa versão está em inglês) e clique em File -> New -> Other conforme a figura abaixo…

geo00179

Na janela que se abrirá selecione a pasta Java e em seguida Java Project e em seguida clique no botão Next

geo00180

Em seguida abrirá uma nova janela e nomeie o projeto, nessa altura o Java mostrará a versão que a linguagem de programação estará usando e finalmente clique em Finish para finalizar e começar o projeto…

geo00181

O projeto criado terá então a seguinte estrutura:

geo00182

O próximo passo será inserir a bliblioteca do GeoTransform no nosso projeto. Clique com o botão de menu do mouse, geralmente o esquerdo, e selecione a opção Build Path e depois Configure Build Path

geo00183

Em seguida uma nova janela abrirá e selecione a aba Libraries e depois clique no botão Add External JARs para inserir a biblioteca do GeoTransform no nosso projeto…

geo00184

Navegue até o arquivo baixado geotransform.jar e insira-o no projeto…

geo00185

Agora vamos criar uma classe Java para colocar o código de teste baixado do site do GeoTransform. Clique com o botão de menu do mouse ( geralmente o esquerdo ) na pasta src depois em New e finalmente em Class conforme a figura abaixo…

geo00186

Abrirá uma nova janela. Nomeie essa classe com o nome do arquivo baixado do site : conv_gdc_utm e clique em seguida no botão Finish

geo00187

Em seguida abra o nosso arquivo teste baixado do site o conv_gdc_utm.java , clique com o botão esquerdo do mouse e abra-o com um editor de texto como Word Pad , por exemplo e como é um Sample Code (amostra de código) do site nós podemos testar esse exemplo…

geo00188

Copie todo o código ( para quem não é programador ) e cole na classe criada no Eclipse conforme a imagem abaixo…

geo00189

Depois de colado salve a classe, clique em cima desta com o botão esquerdo do mouse e selecione as opções Run As e em seguida Java Application

geo00190

Bem abaixo do código o aplicativo começará a interação conosco pedindo para inserir a latitude desejada:

geo00191

Clique no botão Enter do teclado e finalmente o aplicativo pedirá para inserirmos a longitude desejada. Depois de inserir a longitude desejada o software mostrará as coordenadas convertidas para UTM – Universal Translator Mercator com outras informações…

geo00192

Essa é uma biblioteca excelente para quem é “geoprogramador” ou GIS developer porque permite fazer diversos aplicativos automatizados. Em um teste a biblioteca GeoTransform permitiu a confecção de um aplicativo que converte os pontos azimutes medidos em graus para o sistema de coordenadas geográficas e automaticamente abrir essas coordenadas no Google Earth.

Para saber mais:

http://www.ai.sri.com/geotransform/

http://www.eclipse.org/

https://www.java.com/pt_BR/

Anúncios
Publicado em Mapas | Marcado com , , , | Deixe um comentário

Mapa de Calor com o TerraView

O TerraView é um visualizador de dados geográficos com recursos de consulta a análise destes dados e manipula dados vetoriais (pontos, linhas e polígonos) e matriciais (grades e imagens), ambos armazenados em SGBD relacionais ou georrelacionais de mercado, como o PostgreSQL, MySQL, Oracle, SQLServer, ACCESS entre outros. O TerraView  é um aplicativo construído com a biblioteca de geoprocessamento TerraLib.

aimager52

Nesta matéria vamos fazer um exemplo de um mapa de kernel (mapa de calor) usando dados fictícios somente como exemplo de um shapefile de pontos do estado de Goiás.
O primeiro passo para usar o TerraView (a versão usada neste post é a 4.2.2) é usando uma base de dados existente ou uma nova. Neste exemplo vamos usar o banco de dados Access do Microsoft Office. Abra o TerraView e selecione a opção Banco de Dados…

aimager50

Em seguida surgirá uma nova janela, selecione o banco de dados e marque a opção de criar e selecione o diretório no qual o banco de dados será criado e o nome do banco…

aimager23O banco de dados será criado no local definido…

aimager25

Como este exemplo usará somente mapas vetoriais e pontos usaremos a opção “Importar Dados”…

aimager26

Importaremos primeiramente um arquivo shapefile de pontos (fictícios) do estado de Goiás…

aimager27

Para fazer o Mapa de Kernel, é preciso que shapefile importado contendo os pontos estejam na unidade Metros conforme a figura abaixo…

aimager32Em seguida selecionaremos a opção “Análise” -> Mapa de Kernel

aimager30

Neste exemplo queremos que a imagem de calor esteja bem definida por isso definimos um alto número de colunas…

aimager35

Ao clicar no botão “Executar” surgirá um belo “Mapa de Kernel” do shapefile de pontos do estado de Goiás…

aimager36

Em seguida vamos sobrepor o shapefile dos Estados do Brasil para visualizar melhor a imagem…

aimager38

A imagem do mapa vetorial será sobreposta em cima da imagem do mapa de kernel

aimager39

Para fazer a transparência do estado de Goiás é só clicar sobre o estado e selecionar as opções: “Visual Próprio” em seguida “Definir o Visual Próprio do Objeto” …

aimager41

Surgirá uma nova janela e na opção de transparência selecionaremos a opção 100% para que não haja modificação das cores do nosso mapa de kernel

aimager42

O mapa do estado de Goiás surgirá com a transparência definida…

aimager43

Para visualizar o mapa de calor é só arrastar este para a posição abaixo do mapa dos estados do Brasil…

aimager44

aimager45

Para saber mais:

http://www.dpi.inpe.br/terraview/index.php

http://www.terralib.org/

Publicado em Mapas | Marcado com , | 2 Comentários

Gráficos com WebGL Globe

Segundo a definição do site Chrome Experiments, o “WebGL Globe é uma plataforma aberta para a visualização de dados geográficos”. É possível copiar o código, adicionar dados e criar seu próprio WebGL Globe .

terra7

O site Chrome Experiments do Google possui muitas amostras de experiências feitos pela comunidade de desenvolvedores. Todos desenvolvidos em HTML5 e JavaScript usando tecnologias web abertas, como Canvas, WebGL, WebRTC e Portable Native Client. Alguns requerimentos são necessários como uma versão estável do Google Chrome sem flags, extensões ou plugins ou Chrome para Android e IOS.

Nossa experiência consiste em inserir dados do PIB das capitais do Brasil em 2011 obtidos do IBGE apenas como exemplo e fazer uma experiência usando uma imagem obtida do site Natural Earth III . Como o Chrome Experiments usa a biblioteca JavaScript Three.js usamos o exemplo do blog Thematic Mapping blog para alterar a imagem do globo como uma segunda opção.

terra4

Para a criação do gráfico, o Chrome Experiments usa um arquivo JSON – JavaScript Object Notation – para inserir os dados. Os dados foram inseridos em uma planilha para um planejamento melhor e os valores do PIB foram divididos por 1.000.000.000 para que os dados não extrapolassem os limites do gráfico e foram usados somente 3 casas decimais após a vírgula e manipulados somente como exemplo e ilustração para este exemplo. Os valores observados na planilha abaixo são: Cidade, latitude, longitude e magnitude.

terra5

Estes dados foram inseridos seguindo a seguinte ordem: latitude, longitude, magnitude sempre separados por uma vírgula conforme a imagem abaixo:

terra6B

Depois de inseridos os dados podemos ver os nossos dados no arquivo .json e ver um lindo resultado no mapa do Chrome Experiments:

terra3

Para saber mais:

http://www.chromeexperiments.com/globe

http://threejs.org/

http://blog.thematicmapping.org/2013/09/creating-webgl-earth-with-threejs.html

Publicado em Mapas | Marcado com , | Deixe um comentário

Mapas em 3D

O WebGL Earth é um globo 3D digital para dispositivos móveis e web e é um projeto de código aberto – OpenSource Project.

O projeto permite visualizar mapas, imagens de satélite e fotografias aéreas em um globo visualizador. Com ele é possível visualizar nossos dados e mapas em qualquer navegador de qualquer plataforma , incluindo navegadores de dispositivos móveis. O projeto é sustentado com o apoio e colaboração da comunidade de desenvolvedores e é um software livre sob licença GPLv3 padrão conforme descrição da página do projeto .

3dbr

Há diversas bases para os mapas como o mapa acima que tem uma base do MapQuest e do OpenStreetMap

3dbh

O WebGL Earth tem as seguintes características: Rotatividade e zoom do globo , inclinação da câmera , livre circulação no espaço; funciona sem um plugin nos navegadores modernos; exibe mapas existentes ( OpenStreetMap , Bing, … ) além de suportar mapas personalizados no sistema de coordenadas mercator e EPSG:3857 ou EPSG:900913.
Apesar de não necessitar de nenhum plugin para navegadores modernos é preciso que o navegador possua suporte para o HTML5 Canvas e extensão WebGL ( Firefox4 , Chrome 9 + , … dispositivos móveis iPhone / iPad / Android acima ). A linguagem de programação utilizada é o JavaScript com o compilador Closure Compiler no Sistema Operacional Windows. No Linux e no Mac é só rodar o comando make.
O código fonte está no repositório https://github.com/webglearth/webglearth conforme indicação da página do quickstart . Nesta página encontramos os passo necessários para configurarmos o ambiente de desenvolvimento do WebGL Earth.

No exemplo do WebGL Earth podemos visualizar a linda base do Bing Maps Aerial como a imagem abaixo…

3dsp

Para saber mais:

http://www.webglearth.org/

https://github.com/webglearth/webglearth

http://data.webglearth.com/doc/

http://www.mapquest.com/

https://www.bingmapsportal.com

http://www.openstreetmap.org/#map=5/51.500/-0.100

Publicado em Mapas | Marcado com , , , | Deixe um comentário

Integração de Servidores de Mapas com o gvSIG

O gvSIG é um eficiente aplicativo para trabalhar, fazer apresentações e integrações com servidores de mapas, criações entre outras necessidades da área de geoprocessamento e está disponível para baixar em: http://www.gvsig.org/web. Por falar em integração entre serviços e servidores de mapas, o gvSIG possui uma interface amigável para esse tipo de serviço usando os serviços de mapas WMS – Web Map Service, WFS – Web Feature Service entre outros protocolos, descrito no artigo anterior, e esse será o assunto deste post.

ProtocoloMapa (35)

Os mapas deste projeto serão obtidos de dois servidores de mapas: o i3geo e o GeoServer e finalizado com uma base completa do OpenLayers.

Nosso passo inicial será criar um serviço de mapa no i3geo

ProtocoloMapa

ProtocoloMapa (2)

Em seguida, no botão “Arquivo” que está no canto superior direito é preciso selecionar a opção “Converter em WMS e WMC” para obter o endereço – URL – do serviço WMS

ProtocoloMapa (7)

Surgirá uma nova janela com a URL do serviço WMS. Nesse caso é preciso copiar e guardar esse endereço para ser usado como pedido de serviço WMS no gvSIG

ProtocoloMapa (8)

No GeoServer o serviço “Goias” foi criado conforme definições de posts anteriores…

ProtocoloMapa (3)

Apesar do serviço WMS estar disponível, o protocolo WFS será usado para integrar o mapa do estado de Goiás com o mapa do estado de Minas Gerais no formato GML para visualizar o serviço.

geoprote

Para obter a URL do serviço uma boa dica é copiá-la da barra de endereços do navegador. Copiar e guardar a URL inteira para fazer o pedido de serviço WFS no gvSIG

geoprotg

O serviço http://localhost é um serviço disponível apenas na máquina local. Para fazer com que o serviço de mapas esteja disponível para acessos externos, os servidores de mapas deverão estar configurados com uma URL válida para acessos externos. Esta configuração não será abordada neste post.

Com os dois serviços prontos e disponíveis o próximo passo será criar o nosso projeto no gvSIG. Com o Aplicativo aberto e uma nova “Vista” será criada. Em seguida, em “Adicionar capa” uma nova janela será aberta. Existem muitas opções disponíveis para integração no projeto:

ProtocoloMapa (9)

A aba WMS será selecionada para inserir o serviço do i3geo; e no formulário “Servidor” a URL do i3geo que estava guardada será inserida. O próximo passo será clicar em conectar…

ProtocoloMapa (10)

Na aba “Capas“, o serviço criado no i3geo que está disponível na lista “Selecionar Capas” será selecionado, e em seguida os botões “Adicionar” e “Seguinte” serão acionados…

ProtocoloMapa (12)

Neste passo, deverão ser preenchidas as opções: “Selecionar formatos“, “Seleccionar SRS” e “Select text format for info by point“. As opções selecionadas foram respectivamente: “image/png“, “EPSG:4326” e “application/vnd.ogc.gml“…

ProtocoloMapa (13)

O mapa estará disponível no nosso projeto.

ProtocoloMapa (14)

O próximo passo será adicionar uma outra camada, o serviço WFS do GeoServer

ProtocoloMapa (15)

Na janela é preciso selecionar a aba WFS, e inserir a URL do serviço do GeoServer, finalmente os botões “Conectar” e “Seguinte” serão acionados…

ProtocoloMapa (16)

Em seguida, na aba “Capas” o campo “Layer name” será selecionado…

ProtocoloMapa (18)O mapa WFS do GeoServer então estará disponível no nosso projeto junto com o mapa WMS do i3geo.

ProtocoloMapa (27)

Finalmente o serviço WMS do OpenLayers será adicionado para completar o nosso projeto…

ProtocoloMapa (34)

Para saber mais:

http://www.gvsig.org/web

http://openlayers.org/

http://www.softwarepublico.gov.br/ver-comunidade?community_id=1444332

http://br.geoserver.org/

http://www.opengeospatial.org/

Artigo: Integração do software i3Geo com o gvSIG

http://edmarmoretti.blogspot.com.br/2012/10/uso-do-gvsig-para-publicar-mapas-com-o.html

Publicado em Mapas | Marcado com , , | Deixe um comentário

Camadas de Mapas WMS e WFS no Quantum GIS

No site da OGC – Open Geospatial Consortium, um ®Web Map Service (WMS) é um padrão de interface OpenGIS. O objetivo deste é fornecer uma interface HTTP simples para solicitação de imagens de mapa de uma ou mais base de dados geoespaciais distribuídos; Em um pedido WMS, obtemos como resposta uma ou mais imagens de mapas nos formatos PNG, JPEG, TIFF etc. que podem ser exibidas em aplicativos web e visualizados em um navegador.

Segundo o Wikipédia, há uma definição de outro protocolo de serviço de mapas: o WFS – Web Feature Service que também “é um dos serviços especificados pela OGC – Open Geospatial Consortium para acesso e manipulação de dados geográficos na web. Este serviço permite o acesso a dados, independentemente do formato de armazenamento.”

ProtocoloMapa (56)

No Quantum GIS, encontramos as ferramentas necessárias para a utilização dos protocolos de mapas (WMS, WFS, WCS etc.) e usaremos esta ferramenta e os protocolos de serviços de mapas WMS e WSF  neste post. O Quantum GIS possui dois aplicativos o Browser – cujas funcionalidades mostram claramente a importância do uso dos protocolos e o Desktop que podem usar os serviços de mapas para construção de camadas de apresentações.

Um pequeno exemplo: vamos supor que estamos fazendo uma apresentação de camadas de mapas em Porto Alegre no estado do Rio Grande do Sul e queremos que uma pessoa em Boa Vista – Roraima acesse e visualize a nossa apresentação. O que fazer? Existem servidores de mapas que disponibilizam os serviços de mapas, mas é preciso que a pessoa que vai disponibilizar o serviço conheça um pouco de programação para fazer uma apresentação na web ou então usar os serviços de mapas, como o WMS, em um servidor de mapas, e o destinatário acessar a apresentação com o Quantum GIS Browser sem precisar fazer nenhuma linha de programação.

O servidor de mapas GeoServer é o servidor que será usado neste exemplo.

Depois de criados os serviços de mapas do Brasil e do estado do Rio Grande do Sul, criaremos um grupo com esses dois serviços no servidor conforme a figura abaixo…

geoprot (1)

No navegador as camadas ficarão sobrepostas…

geoprot

Para acessar este serviço no Quantum GIS Browser, abra o aplicativo e insira um nome de referência e a sua respectiva URL. E qual é a forma mais fácil de saber a URL do serviço? Uma boa dica é copiar o endereço do serviço que está na barra de endereço que neste exemplo está em: http://localhost:8080/geoserver/RioGrandedoSul/wms?service=WMS&version=1.1.0&request=GetMap&layers=BrasilRS&styles=&bbox=-73.9909428424323,-33.75086258672306,-34.79316793092651,5.272224949620011&width=512&height=509&srs=EPSG:4326&format=application/openlayers

geoprotb

e retirar a parte de informações do estilo. Ficará conforme a URL abaixo:

http://localhost:8080/geoserver/RioGrandedoSul/wms?service=WMS&version=1.1.0&request=GetMap&layers=BrasilRS

Neste ponto paramos um pouco para uma pequena observação: Eu como uma pessoa da área de Tecnologia da Informação,  acho natural o uso do localhost  porque este serviço está rodando na minha máquina e localmente apenas. Mas para que uma pessoa distante possa usar o serviço, é preciso que o servidor de mapas esteja com uma URL válida para acessos externos porque o localhost não faz e não deixa acessar. A configuração do servidor de mapas e a sua respectiva URL não fazem parte do escopo desta matéria.

Agora, com o endereço em mãos configure o Quantum GIS Browser para a visualização:

ProtocoloMapa (36)

Depois de adicionado o serviço, o próximo passo será fazer a conexão com o serviço…

ProtocoloMapa (37)

Finalmente conectado, os serviços WMS disponíveis poderão ser visualizados juntamente com os serviços de exemplo do GeoServer,

ProtocoloMapa (38)

Ao clicar na aba Preview, o mapa poderá ser visualizado no aplicativo…

ProtocoloMapa (41)

Em seguida, usaremos os serviços de mapas WMS e WFS  no Quantum GIS Desktop. Para isso usaremos a interface WFS usando o serviço GML do GeoServer

geoprotd

O próximo passo agora será abrir o Quantum GIS Desktop e…

ProtocoloMapa (44)

inserir um mapa com a interface WFS que será o mapa do Brasil.

Depois de clicar no botão para inserir o serviço, insira um nome e a sua respectiva URL no formulário da janela. A dica para saber a URL é a mesma da dica anterior só que neste caso é preciso usar todo o endereço sem dispensar nada:

http://localhost:8080/geoserver/RioGrandedoSul/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=RioGrandedoSul:Brasil&maxFeatures=50

ProtocoloMapa (45)

Em seguida, clique em conectar e adicione o mapa no aplicativo…

ProtocoloMapa (47)

O mapa poderá ser então visualizado.

ProtocoloMapa (48)

O próximo passo será a inserção do mapa do estado do Rio Grande do Sul com a interface WMS. Para isso clique no botão para inserir o protocolo…

ProtocoloMapa (49)

Adicione o nome e a sua respectiva URL conforme visto anteriormente no Quantum GIS Browser

ProtocoloMapa (50)

E adicione o mapa que poderá ser visualizado,

ProtocoloMapa (51)

Para finalizar vamos adicionar uma camada de  serviço WMS do OpenLayers junto ao nosso mapa para  ficarmos com uma visualização mais completa.

ProtocoloMapa (55)

Para saber mais:

http://www.opengeospatial.org/

http://www.qgis.org/en/site/

http://br.geoserver.org/

http://openlayers.org/

Consumindo Serviços OGC no QGIS – WMS

Publicado em Mapas | Marcado com , | Deixe um comentário

Mapas Temáticos Usando Leaflet

Leaflet é uma biblioteca open-source na linguagem JavaScript para mapas interativos desenvolvido por Vladimir Agafonkin, conforme o post anterior http://geobrainstorms.wordpress.com/2014/02/06/mapas-vetoriais-com-leaflet/ postado pelo Marcelo Ito.

geog0005

O Interactive Cloropleth Map é um mapa de calor que mostra as cores conforme a intensidade dos dados e como é baseado em JavaScript possibilita uma visualização dinâmica das cores. Este exemplo usará o exemplo contido no site para disponibilizar as cores do estado do Pará.

O primeiro passo será criar um arquivo GeoJSON das mesorregiões do estado no Quantum GIS …

geog0004

Depois de salvar o arquivo no formato GeoJSON é preciso transformá-lo em um arquivo JavaScript com a extensão .js . Para isso é preciso abrir o arquivo GeoJSON em um editor de texto de sua preferência e salvar este arquivo com a extensão .js (JavaScriptFile) e neste exemplo o arquivo será chamado de para.js . Abra este arquivo e insira uma variável JavaScript conforme o exemplo marcado em azul na imagem abaixo:

geog0011

Como este mapa é só um exemplo os nomes das variáveis não serão modificados para não alterarmos muito o código e por isso serão chamados conforme o original: statesData, density e name.

Em seguida, usando a página do site como exemplo mudamos o nome do arquivo apontando para o arquivo para.js que neste exemplo está na mesma pasta da página, as coordenadas geográficas (latitude e longitude) e o nível de zoom para 6 conforme a figura abaixo.

geog0007

O próximo passo foi alterar as cores e as intensidades conforme a variável density do arquivo para.js …

geog0008

Em seguida foi preciso alterar os rótulos da legenda…

geog0010

E traduzir o quadro de informações…

geog0124

O resultado foi um belo, prático leve e funcional exemplo do Interactive Cloropleth Maps do estado do Pará com o Leaflet…

geog0006

Para saber mais:

http://leafletjs.com/

http://leafletjs.com/examples/choropleth.html#interactive-choropleth-map

http://cloudmade.com/

http://www.openstreetmap.org

Publicado em Mapas | Deixe um comentário