Géolocalisation et cartes en Java : bibliothèques, API et exemples de code

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 bibliothèques et outils

Java offre des outils puissants pour travailler avec des données géospatiales, construire des cartes et implémenter la géolocalisation. Dans cet article, nous examinerons les bibliothèques et API clés qui permettent d'intégrer des services cartographiques dans des applications Java : des projets de bureau aux projets web et mobiles.



1. GeoTools — la base de l'analyse géospatiale

GeoTools est une bibliothèque open source (LGPL) pour travailler avec des données géographiques en Java. Elle prend en charge les normes de l'Open Geospatial Consortium (OGC) et permet de lire/écrire les formats Shapefile, GeoJSON, KML, PostGIS, ainsi que d'effectuer des requêtes spatiales.



Fonctionnalités principales :

  • Lecture et écriture de formats vectoriels et raster
  • Systèmes de coordonnées (CRS) et transformations
  • Opérations géométriques (tampon, intersection, union)
  • Visualisation via Swing/JavaFX (JMapPane)
  • Intégration avec PostGIS, MySQL Spatial


Exemple : chargement et affichage d'un point sur une carte

import org.geotools.geometry.jts.JTSFactoryFinder;import org.geotools.map.MapContent;import org.geotools.swing.JMapFrame;import org.locationtech.jts.geom.Coordinate;import org.locationtech.jts.geom.GeometryFactory;import org.locationtech.jts.geom.Point;

public class GeoToolsDemo { public static void main(String[] args) { // Créer un point (latitude, longitude) GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory(); Point point = geometryFactory.createPoint(new Coordinate(37.62, 55.75)); // Moscou

// Créer une carte et ajouter une couche MapContent map = new MapContent(); map.setTitle("Mon point");

// Afficher la fenêtre (une configuration de style supplémentaire est requise) JMapFrame.showMap(map); }}

Remarque : Pour une visualisation complète, il faudra ajouter un style de couche et une carte de base (par exemple via WMS).



2. JMapViewer — intégration d'OpenStreetMap

JMapViewer est une bibliothèque légère pour afficher les tuiles OpenStreetMap dans des applications Swing. Idéale pour une intégration rapide d'une carte dans une application de bureau.



Exemple : carte avec un marqueur

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

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

JMapViewer map = new JMapViewer(); // Définir le centre et le zoom (coordonnées de Moscou) map.setDisplayPosition(new org.openstreetmap.gui.jmapviewer.Coordinate(55.75, 37.62), 10); // Ajouter un marqueur map.addMapMarker(new MapMarkerDot(55.75, 37.62));

frame.add(map); frame.setVisible(true); }}

La bibliothèque charge automatiquement les tuiles depuis OpenStreetMap. Pour l'utiliser, vous devez inclure jmapviewer.jar et log4j.



3. Google Maps Java Client — intégration côté serveur

Pour les applications web (Spring Boot, Jakarta EE), il est pratique d'utiliser le Google Maps Services Java Client. Il fournit des API pour le géocodage, le calcul d'itinéraires, la matrice de distances et l'obtention de données sur les lieux.



Exemple : géocodage d'une adresse

import com.google.maps.GeoApiContext;import com.google.maps.GeocodingApi;import com.google.maps.model.GeocodingResult;

public class GeocodingExample { public static void main(String[] args) throws Exception { GeoApiContext context = new GeoApiContext.Builder() .apiKey("YOUR_API_KEY") .build();

GeocodingResult[] results = GeocodingApi.geocode(context

Recommendations