Geolokalisierung und Karten in Java: Bibliotheken, APIs und Codebeispiele

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Geolokalisierung und Karten in Java: Überblick über Bibliotheken und Werkzeuge

Java bietet leistungsstarke Werkzeuge für die Arbeit mit Geodaten, die Erstellung von Karten und die Implementierung von Geolokalisierung. In diesem Artikel betrachten wir die wichtigsten Bibliotheken und APIs, die die Integration von Kartendiensten in Java-Anwendungen ermöglichen: von Desktop- bis hin zu Web- und Mobilprojekten.



1. GeoTools – Grundlage der Geodatenanalyse

GeoTools ist eine quelloffene Bibliothek (LGPL) für die Arbeit mit Geodaten in Java. Sie unterstützt die Standards des Open Geospatial Consortium (OGC) und ermöglicht das Lesen/Schreiben von Formaten wie Shapefile, GeoJSON, KML, PostGIS sowie die Durchführung von Raumabfragen.



Hauptfunktionen:

  • Lesen und Schreiben von Vektor- und Rasterformaten
  • Koordinatensysteme (CRS) und Transformationen
  • Geometrische Operationen (Pufferung, Überschneidung, Vereinigung)
  • Visualisierung über Swing/JavaFX (JMapPane)
  • Integration mit PostGIS, MySQL Spatial


Beispiel: Laden und Anzeigen eines Punktes auf der Karte

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) { // Erstellen eines Punktes (Breitengrad, Längengrad) GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory(); Point point = geometryFactory.createPoint(new Coordinate(37.62, 55.75)); // Moskau

// Karte erstellen und Ebene hinzufügen MapContent map = new MapContent(); map.setTitle("Mein Punkt");

// Fenster anzeigen (zusätzliche Stilanpassung erforderlich) JMapFrame.showMap(map); }}

Hinweis: Für eine vollständige Visualisierung müssen ein Ebenenstil und eine Basiskarte (z. B. über WMS) hinzugefügt werden.



2. JMapViewer – Einbettung von OpenStreetMap

JMapViewer ist eine leichtgewichtige Bibliothek zur Anzeige von OpenStreetMap-Kacheln in Swing-Anwendungen. Ideal für die schnelle Integration einer Karte in eine Desktop-Anwendung.



Beispiel: Karte mit Markierung

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("Meine Karte"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(800, 600);

JMapViewer map = new JMapViewer(); // Zentrum und Zoom setzen (Koordinaten von Moskau) map.setDisplayPosition(new org.openstreetmap.gui.jmapviewer.Coordinate(55.75, 37.62), 10); // Markierung hinzufügen map.addMapMarker(new MapMarkerDot(55.75, 37.62));

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

Die Bibliothek lädt automatisch Kacheln von OpenStreetMap. Für die Nutzung müssen jmapviewer.jar und log4j eingebunden werden.



3. Google Maps Java Client – Server-seitige Integration

Für Webanwendungen (Spring Boot, Jakarta EE) ist der Google Maps Services Java Client praktisch. Er bietet APIs für Geokodierung, Routenplanung, Entfernungsmatrix und Abruf von Ortsdaten.



Beispiel: Geokodierung einer 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

Empfehlungen