Conversion de Coordonnées Géographiques
Conversion de Coordonnées Géographiques
1
1 Installation de Convers
Exécutez [Link].
Convers nécessite le framework .NET 3.5, il est donc possible que celui-ci soit téléchargé pendant l’installation de Convers.
2 Utilisation de Convers
Convers est un logiciel de conversion de coordonnées géographiques qui permet de convertir des coordonnées exprimées en
Latitude/Longitude dans différents systèmes géodésiques ou bien en X/Y dans différentes projections.
La fenêtre principale de Convers permet d’effectuer les conversions proprement dites. Elle est séparée en 2 zones distinctes : Départ et
Arrivée. La zone Départ permet de saisir les coordonnées à convertir et certains paramètres, la zone Arrivée est utilisée pour afficher les
coordonnées converties. Au milieu se trouve une zone permettant de sélectionner une éventuelle grille de conversion. Au lancement de
Convers, les options validées sont celles correspondant à la dernière conversion effectuée.
Les latitudes Nord seront positives et les latitudes Sud négatives (de –90° à 90° ou de –100gr à 100 gr).
Les longitudes Est seront positives et les longitudes Ouest négatives (de –180° à 180° ou de –200gr à 200gr).
Les zones UTM Nord seront positives et les zones UTM Sud négatives (de -60 à 60).
Sélectionner le système géodésique ou la projection correspondant aux coordonnées à convertir dans la liste intitulée Départ. Convers
affiche alors automatiquement le type des données à saisir : Latitude/Longitude ou X/Y en fonction de la sélection.
Sélectionner le système géodésique ou la projection correspondant aux coordonnées converties dans la liste intitulée Arrivée.
Si les données sont de type Latitude/Longitude, choisir l’unité des angles et le méridien d’origine (Greenwich ou Paris) dans le cadre
intitulé Paramètres avant de commencer la saisie. Dans le cas ou l’on a saisi des valeurs avant de choisir l’unité des angles, Convers
n’effectue aucune conversion d’angles.
Si les données sont de type X/Y, choisir l’unité des distances dans le dans le cadre intitulé Paramètres avant de commencer la saisie. Dans
le cas ou l’on a saisi des valeurs avant de choisir l’unité des distances, Convers n’effectue aucune conversion de distance.
Plusieurs unités sont à votre disposition pour saisir les latitudes et longitudes. Le tableau suivant récapitule ces possibilités.
L’exemple considère le même angle de 44°35’17.634" converti en différentes unités.
On peut alors saisir les coordonnées à convertir, que Convers convertit automatiquement au fur et à mesure de la saisie, si les données
saisies sont correctes. En cas d’erreur de saisie, des indications apparaissent à droite de la valeur erronée.
Les coordonnées s’affichent en Latitude/Longitude ou en X/Y selon la sélection effectuée dans la liste Arrivée.
Il est possible de sélectionner l’unité d’affichage des angles ou des distances et le méridien d’origine dans le cadre intitulé Unités (la
conversion se fait automatiquement) et le méridien d’origine (Greenwich ou Paris) dans le cadre intitulé Origine.
2
2.1.4 Conversions par grille
Pour les conversions entre certains systèmes géodésiques, il existe des grilles prédéfinies, permettant un calcul plus précis. Convers3
permet l’utilisation de ces grilles. Pour effectuer une conversion par grille, il suffit de sélectionner la grille souhaitée dans la liste
déroulante, le nom de la grille se composant du nom abrégé des systèmes géodésiques concernés séparés par _. Par exemple pour passer de
NTF à RGF93 ou de Lambert II étendu à Lambert 93, on peut utiliser la grille NTF_RGF93. La conversion est possible dans les deux sens.
Si la grille correspond aux données à convertir, et que le point concerné se trouve dans la zone délimitée par la grille alors cette dernière
est utilisée et l’indication 9 s’affiche à droite de la grille. Dans le cas contraire, la conversion est réalisée par la méthode standard et
aucune indication de s’affiche.
Il est possible d’ajouter de nouvelles grilles en fonctions de vos besoins, Convers3 acceptant les grilles au format NTV2 (extension .gsb).
L’ajout se fait simplement en renommant le fichier .gsb selon la convention précisée plus haut et en le copiant dans le répertoire de
Convers3, C:\Program Files\Convers3. Il faut ensuite relancer Convers3.
2.2 Paramétrage
Convers est livré avec la plupart des ellipsoïdes couramment utilisées, les systèmes géodésiques : WGS84, ED50, NTF, RGF93 et les
projections : Lambert (zones I, II, II étendu, III, IV), Lambert Carto (zones I, II, III), Lambert 93 (y compris les zones CC42 à CC50),
UTM / WGS84, UTM / ED50. D'autres ellipsoïdes, systèmes géodésiques et projections peuvent être ajoutés pour correspondre à vos
besoins. Les données sont stockées dans une base de données Access qui se trouve dans le même dossier que Convers : [Link]
2.2.1 Ellipsoïdes
Le bouton Ellipsoïdes affiche une boite de dialogue permettant l’ajout, la modification et la suppression d’ellipsoïdes. Cette boite de
dialogue contient les paramètres nécessaires à la définition d’un ellipsoïde.
2 boutons à droite des zones de saisie de B et 1/F permettent de choisir la valeur à saisir, A, B, et 1/F étant liés par une relation
mathématique. Selon les documentations, on trouve les valeurs de A et B ou de A et 1/F.
Le bouton Nouveau crée un nouvel ellipsoïde. Il faut saisir un nom abrégé qui doit être unique.
Le bouton Supprimer supprime l’ellipsoïde sélectionné.
Le bouton Enregistrer enregistre les modifications.
Le bouton Annuler annule les modifications.
Le bouton Datums affiche une boite de dialogue permettant l’ajout, la modification et la suppression de systèmes géodésiques. Cette boite
de dialogue contient les paramètres nécessaires à la définition d’un système géodésique.
Pour utiliser les transformations à 7 paramètres, il faut cocher la case ‘Conversion à 7 paramètres’.
Les rotations entre les systèmes doivent être saisis selon la convention IERS (les axes du système d’arrivée sont ramenés parallèles aux
axes du système de départ). La plupart des logiciels SIG et des récepteurs GPS utilisent un convention différente (les signes de Rx, Ry et
Rz sont alors inversés)
Le bouton Nouveau crée un nouveau système géodésique. Il faut saisir un nom abrégé qui doit être unique.
3
Le bouton Supprimer supprime le système géodésique sélectionné.
Le bouton Enregistrer enregistre les modifications.
Le bouton Annuler annule les modifications.
2.2.3 Projections
Le bouton Projections affiche une boite de dialogue permettant l’ajout, la modification et la suppression de projections. Cette boite de
dialogue contient les paramètres nécessaires à la définition d’une projection.
Certains paramètres des projections sont des angles. Convers adopte les conventions de saisie suivantes pour la notation des angles dans
cette boite de dialogue :
Le bouton Nouveau crée une nouvelle projection. Il faut saisir un nom abrégé qui doit être unique.
Le bouton Supprimer supprime la projection sélectionnée.
Le bouton Enregistrer enregistre les modifications.
Le bouton Annuler annule les modifications.
Ce tableau permet d’effectuer des conversions en nombre. Le principe de saisie est le même que pour la fenêtre principale, l’affichage peut
être soit formaté soit brut, selon que la case « Affichage formaté » soit cochée ou non. Le résultat s’affiche automatiquement lorsque les
valeurs nécessaires ont été saisies. Le résultat sera « Err » en cas d’erreur de saisie ou de valeurs erronées. Il est possible de copier (Ctrl +
C) ou de coller (Ctrl + V) des données à partir d’un autre logiciel. En cas d’utilisation d’une grille de conversion, la marque 9 apparaîtra
pour chaque ligne ayant utilisé la grille.
Depart et Arrivee (sans accents) sont des mots réservés et doivent figurer en tête des 1ère et 2ème lignes.
4
Les données sont dans l’ordre suivant :
Si le code correspond à un système géodésique : Latitude ;Longitude
Si le code correspond à une projection sans zone : X ;Y
Si le code correspond à une projection avec zone : X ;Y ;Zone
Depart;UTM.WGS84;5
Arrivee;WGS84;0;1
500000;5500;31
500100;550100;31
Le bouton Enregistrer enregistre un fichier csv. Le format est le même que celui saisi précédemment avec en plus le résultat des calculs
qui peuvent être formatés ou bruts.
Depart;UTM.WGS84;5
Arrivee;WGS84;0;1
500000;5500000;31;N 49°39'09.2";E 003°00'00.0"
500100;5500100;31;N 49°39'12.4";E 003°00'05.0"
Cette fonctionnalité permet de sauvegarder la totalité des paramètres de Convers, ellipsoïdes, systèmes géodésiques et projections dans un
fichier xml. Elle sert essentiellement aux utilisateurs de [Link] (voir plus bas) qui ainsi pourront définir la configuration
nécessaire à leurs applications avec Convers et utiliser [Link] de manière totalement autonome grâce à sa fonction
d’initialisation à partir d’un fichier xml.
5
3 [Link]
Convers est livré avec [Link] afin de permettre l’utilisation de son moteur de calcul pour effectuer des conversions dans vos
propres applications en .Net. Un exemple est fourni en C# dans C:\Program Files\Convers\Exemples\C#.
3.1 Enumérations
Ces énumérations définissent les unités utilisées pour exprimer les coordonnées et les méridiens de référence.
3.1.1 Unités
3.1.2 Méridiens
Cette classe correspond à la représentation d’un point avec son système de coordonnées et ses unités. Elle permet le formatage des
coordonnées selon les conventions en vigueur.
double XLon : Longitude si le point est exprimé en Latitude / Longitude. X si le point est exprimé en X /Y.
double YLat : Latitude si le point est exprimé en Latitude / Longitude. Y si le point est exprimé en X /Y.
int Zone : Zone si le point représente des coordonnées UTM.
char Designator : Désignateur si le point représente des coordonnées UTM.
String Key : Nom abrégé du système géodésique ou de la projection correspondant au point.
Units Unit : Unité dans laquelle est exprimé le point
Meridians Mer : Méridien de référence du point s’il est exprimé en Latitude / Longitude.
String sXLon : Longitude ou X formaté avec la méthode Format()
String sYLat : Latitude ou Y formaté avec la méthode Format()
String sZone : Zone et désignateur formatés avec la méthode Format()
3.2.2 Méthodes
Location()
Location(double xLon, double yLat, String key, Units unit, Meridians mer)
6
double xLon : Longitude.
double yLat : Latitude.
String key : Nom abrégé du système géodésique.
Units unit : Unité.
Meridians mer : Méridien de référence.
double xLon : X.
double yLat : Y.
String key : Nom abrégé de la projection.
Units unit : Unité.
Location(double xLon, double yLat, int zone, char designator, String key, Units unit)
double xLon : X.
double yLat : Y.
int zone : Zone UTM.
char designator : Désignateur UTM.
String key : Nom abrégé de la projection.
Units unit : Unité.
Si on ne connait pas le désignateur, il est possible de renseigner uniquement la zone, positive pour l’hémisphère Nord, négative
pour l’hémisphère Sud, et de positionner le désignateur à '\0'.
Location(Location from)
Formatte l’affichage des coordonnées selon les normes en vigueur pour chaque type de données.
3.2.3 Exemple
loc1. Format(conv);
[Link]([Link] + " " + [Link]); // N 45°34'54.7" E 005°23'43.3"
Les systèmes géodésiques et projections "WGS84", "LT2E", "UTMWGS84" doivent avoir été définis dans l’objet conv (voir la
description de la classe Conversion).
Cette structure donne des informations sur les paramètres des types de projections.
7
String[] Param : Nom des paramètres de la projection.
La classe Conversion contient une liste de ProjectionType permettant d’obtenir les informations sur toutes les projections reconnues par
[Link].
3.3.2 Exemple
Cette classe permet d’effectuer les conversions de coordonnées. Elle doit être initialisée soit à partir d’un fichier xml soit à l’aide de
méthodes permettant de définir tous les paramètres nécessaires. Elle possède également plusieurs méthodes utilitaires. Les méthodes
génèrent des exceptions avec une description explicite en cas d’erreur.
Avant de pouvoir effectuer des conversions, il est nécessaire de paramétrer l’objet Conversion, soit avec la méthode ReadXml, soit avec
les méthodes d’ajout d’ellipsoïdes (AddEllipsoid), de systèmes géodésiques (AddDatum), de projections (AddProjection) et de définition
du système géodésique de référence (SetRefDatum).
Les ellipsoïdes devront être ajoutés avant les systèmes géodésiques et les systèmes géodésiques avant les projections, ceci afin de garantir
la cohérence des données. Le système géodésique de référence ne pourra être défini que s’il a été ajouté.
3.4.2 Méthodes
Conversion()
Constructeur.
Ajoute un ellipsoïde.
Si b est différent de 0 alors 1/f doit être égal à 0 et réciproquement, ces 2 valeurs étant dépendantes l’une de l’autre.
Ajoute un ellipsoïde.
Si b est différent de 0 alors 1/f doit être égal à 0 et réciproquement, ces 2 valeurs étant dépendantes l’une de l’autre.
8
void AddDatum(String key, String descr)
Pour les transformations à 3 paramètres, il suffit de renseigner nom, ellipsoïde, tx, ty, tz.
void AddDatum(String key, String name, String ellips, double tx, double ty, double tz)
void AddDatum(String key, String name, String ellips, double tx, double ty, double tz,
double rx, double ry, double rz, double scale)
Les paramètres doivent être dans l’ordre spécifié pour chaque projection (Voir en 3.5). Les valeurs des paramètres doivent
respecter les conventions de saisie détaillées en 2.2.3.
void AddProjection(String key, String name, String typeProj, String datum, String []param)
9
Les paramètres doivent être dans l’ordre spécifié pour chaque projection (Voir en 3.5). Les valeurs des paramètres doivent
respecter les conventions de saisie détaillées en 2.2.3.
void Clear()
Réinitialise l’objet Conversion. Efface les ellipsoïdes, systèmes géodésiques, projections et système géodésique de référence.
La variable from doit contenir les coordonnées du point à convertir (XLon et YLat), le nom abrégé du système géodésique ou de
la projection dans laquelle sont exprimées les coordonnées (Key), l’unité (Unit), le méridien de référence (Mer) s’il s’agit de
coordonnées en Latitude / Longitude, la zone (Zone) s’il s’agit de coordonnées UTM.
La variable to doit contenir le nom abrégé du système géodésique ou de la projection dans laquelle serontt exprimées les
coordonnées (Key), l’unité (Unit), le méridien de référence (Mer) s’il s’agit de coordonnées en Latitude / Longitude. Au retour,
les coordonnées (XLon et YLat) seront renseignées, ainsi que la zone et le désignateur s’il s’agit de coordonnées UTM.
public void Convert(Location from, Location to, String grid, out bool useGrid)
Détermine si le nom abrégé key correspond à un système géodésique déjà défini dans l’objet Conversion.
Valeur de retour : true si le nom abrégé correspond à un système géodésique, false sinon.
Détermine si le nom abrégé key correspond à un ellipsoïde déjà défini dans l’objet Conversion.
Détermine si le nom abrégé key correspond à une projection déjà définie dans l’objet Conversion.
10
Valeur de retour : true si le nom abrégé correspond à une projection, false sinon.
Si la projection ne correspond pas à une projection avec calcul de zone automatique, minZone et maxZone vaudront 0.
Valeur de retour : true si le nom abrégé correspond à une projection avec calcul de zone automatique, false sinon.
Ce fichier peut être obtenu en utilisant la sauvegarde au format xml de Convers (Voir 2.4)
Valeur de retour : true si le nom abrégé correspond à une projection avec calcul de zone automatique, false sinon.
3.4.3 Exemple
using System;
using [Link];
using [Link];
using [Link];
using [Link];
using ConversApi;
namespace Exemple
{
class Program
{
static void Main(string[] args)
{
Conversion Conv = new Conversion();
11
[Link]("CLRK80IGN", "Clarke 1880 IGN", 6378249, 6356515, 0);
// Conversion en UTM
[Link] = "UTM.WGS84";
[Link] = [Link];
[Link] = [Link];
[Link]();
}
}
}
Laborde Madagascar
12
Mercator Oblique (Hotine) type B
Mercator Transverse
Suisse
13