Geolocalização e mapas em Java: visão geral de bibliotecas e ferramentas

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Geolocalização e mapas em Java: visão geral de ferramentas e bibliotecas



Trabalhar com dados geográficos e exibir mapas é uma tarefa demandada em aplicações Java modernas: desde sistemas logísticos até rastreadores de atividade e serviços de geoinformação. Neste artigo, vamos explorar as principais bibliotecas e ferramentas para Java que permitem processar dados de geolocalização, trabalhar com coordenadas e visualizar mapas. Você aprenderá como conectar essas bibliotecas e verá exemplos de código para tarefas típicas.



1. GeoTools — poderosa biblioteca geoespacial

GeoTools é uma biblioteca Java de código aberto (LGPL) que fornece ferramentas para trabalhar com dados geoespaciais. Ela suporta os padrões do Open Geospatial Consortium (OGC), leitura e escrita de vários formatos (Shapefile, GeoJSON, GML, PostGIS) e realiza operações espaciais complexas: interseção, bufferização, transformação de coordenadas.



Principais recursos:

  • Suporte a mais de 30 formatos de dados geoespaciais.
  • Trabalho com sistemas de coordenadas (EPSG) e transformação de projeções.
  • Filtragem e consultas a dados espaciais (CQL, ECQL).
  • Visualização de mapas via Swing (JMapPane).


Exemplo: leitura de Shapefile e exibição da contagem de feições

import org.geotools.data.FileDataStore;import org.geotools.data.FileDataStoreFinder;import org.geotools.data.simple.SimpleFeatureSource;import org.geotools.map.FeatureLayer;import org.geotools.map.MapContent;import org.geotools.styling.SLD;import org.geotools.styling.Style;import org.geotools.swing.JMapFrame;import java.io.File;

public class GeoToolsExample { public static void main(String[] args) throws Exception { File file = new File("path/to/your/file.shp"); FileDataStore store = FileDataStoreFinder.getDataStore(file); SimpleFeatureSource featureSource = store.getFeatureSource();

System.out.println("Quantidade de feições: " + featureSource.getCount());

// Exibindo o mapa MapContent map = new MapContent(); map.setTitle("Meu mapa"); Style style = SLD.createSimpleStyle(featureSource.getSchema()); FeatureLayer layer = new FeatureLayer(featureSource, style); map.addLayer(layer); JMapFrame.showMap(map); }}

Para trabalhar com GeoTools, adicione a dependência Maven:

<dependency>    <groupId>org.geotools</groupId>    <artifactId>gt-main</artifactId>    <version>30.2</version></dependency>


2. JMapViewer — componente leve para OpenStreetMap

JMapViewer é uma biblioteca Java simples para incorporar mapas do OpenStreetMap em aplicações Swing. Ela não requer conexão com APIs externas (exceto para carregar tiles) e é ideal para prototipagem rápida.



Características:

  • Suporte a camadas (marcadores, linhas, polígonos).
  • Carregamento automático de tiles OSM.
  • Tratamento de cliques e movimentos do mouse.


Exemplo: exibindo um mapa com um marcador

import org.openstreetmap.gui.jmapviewer.JMapViewer;import org.openstreetmap.gui.jmapviewer.MapMarkerDot;import org.openstreetmap.gui.jmapviewer.Coordinate;import javax.swing.*;import java.awt.*;

public class JMapViewerExample { public static void main(String[] args) { JFrame frame = new JFrame("Mapa OSM"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(800, 600);

JMapViewer map = new JMapViewer(); map.setDisplayPosition(new Coordinate(55.7558, 37.6173), 10); // Moscou, zoom 10

// Adicionando um marcador map.addMapMarker(new MapMarkerDot(55.7558, 37.6173));

frame.add(map, BorderLayout.CENTER); frame.setVisible(true);

Recommendations