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

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 Werkzeuge und Bibliotheken



Die Arbeit mit geografischen Daten und die Darstellung von Karten ist eine gefragte Aufgabe in modernen Java-Anwendungen: von Logistiksystemen über Aktivitätstracker bis hin zu Geoinformationsdiensten. In diesem Artikel betrachten wir die wichtigsten Bibliotheken und Werkzeuge für Java, die es ermöglichen, Geolokalisierungsdaten zu verarbeiten, mit Koordinaten zu arbeiten und Karten zu visualisieren. Sie erfahren, wie Sie diese Bibliotheken einbinden, und sehen Codebeispiele für typische Aufgaben.



1. GeoTools – leistungsstarke Geodaten-Bibliothek

GeoTools ist eine quelloffene (LGPL) Java-Bibliothek, die Werkzeuge für die Arbeit mit Geodaten bereitstellt. Sie unterstützt die Standards des Open Geospatial Consortium (OGC), das Lesen und Schreiben vieler Formate (Shapefile, GeoJSON, GML, PostGIS) und führt komplexe räumliche Operationen durch: Verschneidung, Pufferung, Koordinatentransformation.



Hauptfunktionen:

  • Unterstützung von über 30 Geodatenformaten.
  • Arbeit mit Koordinatensystemen (EPSG) und Projektionstransformation.
  • Filterung und Abfragen von Geodaten (CQL, ECQL).
  • Kartenvisualisierung über Swing (JMapPane).


Beispiel: Shapefile lesen und Anzahl der Objekte ausgeben

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("Anzahl der Objekte: " + featureSource.getCount());

// Karte anzeigen MapContent map = new MapContent(); map.setTitle("Meine Karte"); Style style = SLD.createSimpleStyle(featureSource.getSchema()); FeatureLayer layer = new FeatureLayer(featureSource, style); map.addLayer(layer); JMapFrame.showMap(map); }}

Für die Arbeit mit GeoTools fügen Sie die Maven-Abhängigkeit hinzu:

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


2. JMapViewer – leichtgewichtige Komponente für OpenStreetMap

JMapViewer ist eine einfache Java-Bibliothek zum Einbetten von OpenStreetMap-Karten in Swing-Anwendungen. Sie benötigt keine Verbindung zu externen APIs (außer zum Laden von Kacheln) und ist ideal für schnelles Prototyping.



Eigenschaften:

  • Unterstützung von Ebenen (Marker, Linien, Polygone).
  • Automatisches Laden von OSM-Kacheln.
  • Verarbeitung von Klicks und Mausbewegungen.


Beispiel: Karte mit Marker anzeigen

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

JMapViewer map = new JMapViewer(); map.setDisplayPosition(new Coordinate(55.7558, 37.6173), 10); // Moskau, Zoom 10

// Marker hinzufügen map.addMapMarker(new MapMarkerDot(55.7558, 37.6173));

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

Empfehlungen