Géolocalisation et cartes en Java : aperçu des bibliothèques et outils

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Géolocalisation et cartes en Java : aperçu des outils et bibliothèques



Le travail avec les données géographiques et l'affichage de cartes est une tâche courante dans les applications Java modernes : des systèmes logistiques aux trackers d'activité et aux services géoinformatiques. Dans cet article, nous examinerons les bibliothèques et outils clés pour Java qui permettent de traiter les données de géolocalisation, de travailler avec les coordonnées et de visualiser des cartes. Vous apprendrez comment intégrer ces bibliothèques et verrez des exemples de code pour des tâches typiques.



1. GeoTools — une puissante bibliothèque géospatiale

GeoTools est une bibliothèque Java open source (LGPL) fournissant des outils pour travailler avec des données géospatiales. Elle prend en charge les normes de l'Open Geospatial Consortium (OGC), la lecture et l'écriture de nombreux formats (Shapefile, GeoJSON, GML, PostGIS) et effectue des opérations spatiales complexes : intersection, tampon, transformation de coordonnées.



Fonctionnalités principales :

  • Prise en charge de plus de 30 formats de données géographiques.
  • Travail avec les systèmes de coordonnées (EPSG) et transformation de projections.
  • Filtrage et requêtes sur les données spatiales (CQL, ECQL).
  • Visualisation de cartes via Swing (JMapPane).


Exemple : lecture d'un Shapefile et affichage du nombre d'objets

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("Nombre d'objets : " + featureSource.getCount());

// Affichage de la carte MapContent map = new MapContent(); map.setTitle("Ma carte"); Style style = SLD.createSimpleStyle(featureSource.getSchema()); FeatureLayer layer = new FeatureLayer(featureSource, style); map.addLayer(layer); JMapFrame.showMap(map); }}

Pour utiliser GeoTools, ajoutez la dépendance Maven :

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


2. JMapViewer — un composant léger pour OpenStreetMap

JMapViewer est une bibliothèque Java simple pour intégrer des cartes OpenStreetMap dans des applications Swing. Elle ne nécessite pas de connexion à des API externes (sauf pour le chargement des tuiles) et est idéale pour un prototypage rapide.



Caractéristiques :

  • Prise en charge des couches (marqueurs, lignes, polygones).
  • Chargement automatique des tuiles OSM.
  • Gestion des clics et des mouvements de souris.


Exemple : affichage d'une carte avec un marqueur

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("Carte 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

// Ajout d'un marqueur map.addMapMarker(new MapMarkerDot(55.7558, 37.6173));

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

Recommendations