Geolokalisierung und Karten in C# (.NET): Überblick über Bibliotheken und Werkzeuge
Die Arbeit mit Geolokalisierung und Karten ist eine gefragte Aufgabe in modernen .NET-Anwendungen – vom Tracking von Kurieren bis zur Visualisierung von Daten auf einer Karte. In diesem Artikel betrachten wir die wichtigsten Bibliotheken und Werkzeuge für C# (.NET), die Ihnen helfen, Funktionen zur Geopositionierung und Kartendarstellung zu implementieren.
1. Integrierte .NET-Mittel: der Namespace Windows.Devices.Geolocation
Für UWP-Anwendungen (Universal Windows Platform) steht in .NET eine integrierte API zum Abrufen des aktuellen Gerätestandorts zur Verfügung. Die Hauptklasse ist Geolocator.
using Windows.Devices.Geolocation;
public async Task<BasicGeoposition> GetCurrentPosition(){ var geolocator = new Geolocator(); geolocator.DesiredAccuracy = PositionAccuracy.High;
Geoposition pos = await geolocator.GetGeopositionAsync(); return pos.Coordinate.Point.Position;}Diese Methode gibt den Breiten- und Längengrad des Geräts zurück. Wichtig: Für die Funktion ist die Benutzererlaubnis sowie ein aktiviertes GPS/Netzwerk erforderlich.
2. Die Bibliothek GeoCoordinate (System.Device.Location)
Die Klasse GeoCoordinate aus System.Device.Location ist für klassische .NET Framework-Anwendungen (Windows Forms, WPF) verfügbar. Sie ermöglicht nicht nur das Abrufen von Koordinaten, sondern auch die Berechnung der Entfernung zwischen zwei Punkten.
using System.Device.Location;
public double CalculateDistance(double lat1, double lon1, double lat2, double lon2){ var coord1 = new GeoCoordinate(lat1, lon1); var coord2 = new GeoCoordinate(lat2, lon2); return coord1.GetDistanceTo(coord2); // in Metern}Für .NET Core / .NET 5+ ist diese Bibliothek nicht verfügbar – verwenden Sie die unten beschriebenen Alternativen.
3. Arbeiten mit Karten: MapControl (WPF/UWP)
In WPF und UWP können Sie das integrierte Element MapControl aus Windows.UI.Xaml.Controls.Maps verwenden. Es ermöglicht die Anzeige von Bing Maps (standardmäßig) oder das Einbinden von Drittanbieter-Kacheln.
<!-- XAML-Markup --><Maps:MapControl x:Name="MyMap" ZoomLevel="12" Center="55.7558, 37.6173" />Zum Setzen von Pushpins (Markierungen) verwenden Sie MapIcon:
using Windows.Devices.Geolocation;using Windows.UI.Xaml.Controls.Maps;
public void AddMarker(double latitude, double longitude, string title){ var pin = new MapIcon { Location = new Geopoint(new BasicGeoposition { Latitude = latitude, Longitude = longitude }), Title = title, NormalizedAnchorPoint = new Point(0.5, 1.0) }; MyMap.MapElements.Add(pin);}4. Google Maps API für .NET
Für die Arbeit mit Google Maps aus C# (.NET Core / .NET 5+) verwenden Sie die Bibliothek GoogleMapsApi (NuGet: GoogleMapsApi). Sie bietet eine benutzerfreundliche Schnittstelle für Geokodierung, umgekehrte Geokodierung und Routenplanung.
using GoogleMapsApi;using GoogleMapsApi.Entities.Geocoding.Request;using GoogleMapsApi.Entities.Geocoding.Response;
public async Task<GeocodingResponse> GeocodeAddress(string address){ var request = new GeocodingRequest { Address = address, ApiKey = "YOUR_API_KEY" }; var geocodingEngine = new GeocodingEngine(); return await geocodingEngine.GeocodeAsync(request);}Vergessen Sie nicht, einen API-Schlüssel in der Google Cloud Console zu erhalten und die Abrechnung zu aktivieren (kostenloses Limit: 40.000 Anfragen/Monat).
5. Die Bibliothek NetTopologySuite für die Arbeit mit Geometrie
Wenn Sie geografische Daten (Polygone, Linien, Punkte) analysieren müssen, verwenden Sie NetTopologySuite (NTS). Es ist ein Port der Java-Bibliothek JTS für .NET.
using NetTopol Auch in der Bibliothek
HTML-Parsing in Swift (iOS/macOS): Die Bibliothek SwiftSoup
Maschinelles Lernen mit C# (.NET): Überblick über Bibliotheken und Werkzeuge
PDF-Generierung in JavaScript: Die Bibliothek PDFKit
Kotlin Symbol Processing (KSP) für Kotlin: Komplettguide mit Beispielen
Rate Limiting in Swift: Verwaltung der Anfragehäufigkeit in iOS/macOS