Géolocalisation et cartes en C# (.NET) : bibliothèques, exemples et recommandations

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 C# (.NET) : aperçu des bibliothèques et outils



Travailler avec la géolocalisation et les cartes est une tâche courante dans les applications .NET modernes : du suivi des livreurs à la visualisation de données sur une carte. Dans cet article, nous allons passer en revue les principales bibliothèques et outils pour C# (.NET) qui vous aideront à implémenter des fonctionnalités de géopositionnement et d'affichage de cartes.



1. Outils intégrés de .NET : l'espace de noms Windows.Devices.Geolocation



Pour les applications UWP (Universal Windows Platform) dans .NET, une API intégrée est disponible pour obtenir la position actuelle de l'appareil. La classe principale est 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;}


Cette méthode retourne la latitude et la longitude de l'appareil. Important : son fonctionnement nécessite l'autorisation de l'utilisateur et un GPS/réseau activé.



2. Bibliothèque GeoCoordinate (System.Device.Location)



La classe GeoCoordinate de System.Device.Location est disponible pour les applications .NET Framework classiques (Windows Forms, WPF). Elle permet non seulement d'obtenir des coordonnées, mais aussi de calculer la distance entre deux points.



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); // en mètres}


Pour .NET Core / .NET 5+, cette bibliothèque n'est pas disponible — utilisez les alternatives décrites ci-dessous.



3. Travailler avec les cartes : MapControl (WPF/UWP)



Dans WPF et UWP, vous pouvez utiliser l'élément intégré MapControl de Windows.UI.Xaml.Controls.Maps. Il permet d'afficher les cartes Bing Maps (par défaut) ou de connecter des tuiles tierces.



<!-- Balisage XAML --><Maps:MapControl x:Name="MyMap"                  ZoomLevel="12"                  Center="55.7558, 37.6173" />


Pour ajouter des épingles (marqueurs), utilisez 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 pour .NET



Pour travailler avec Google Maps depuis C# (.NET Core / .NET 5+), utilisez la bibliothèque GoogleMapsApi (NuGet : GoogleMapsApi). Elle fournit une interface pratique pour le géocodage, le géocodage inverse et la construction d'itinéraires.



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);}


N'oubliez pas d'obtenir une clé API dans Google Cloud Console et d'activer la facturation (limite gratuite — 40 000 requêtes/mois).



5. Bibliothèque NetTopologySuite pour travailler avec la géométrie



Si vous avez besoin d'analyser des données géographiques (polygones, lignes, points), utilisez NetTopologySuite (NTS). Il s'agit d'un portage de la bibliothèque Java JTS pour .NET.



using NetTopol                    

Recommendations