Geolokalisierung und Karten in C# (.NET): Bibliotheken, Beispiele und Empfehlungen

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 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                    

Empfehlungen