Convers3 PDF
Convers3 PDF
Convers3 PDF
CONVERSAPI3.DLL .............................................................................................................................................................................6
3.1
ENUMERATIONS .................................................................................................................................................................................6
3.1.1
Units ........................................................................................................................................................................................6
3.1.2
Mridiens ..................................................................................................................................................................................6
3.2
CLASSE LOCATION.............................................................................................................................................................................6
3.2.1
Donnes membres .....................................................................................................................................................................6
3.2.2
Mthodes ...................................................................................................................................................................................6
3.2.3
Exemple .....................................................................................................................................................................................7
3.3
STRUCTURE PROJECTIONTYPE ...........................................................................................................................................................7
3.3.1
Donnes Membres .....................................................................................................................................................................7
3.3.2
Exemple .....................................................................................................................................................................................8
3.4
CLASSE CONVERSION ........................................................................................................................................................................8
3.4.1
Donnes membres .....................................................................................................................................................................8
3.4.2
Mthodes ...................................................................................................................................................................................8
3.5
UTILISATION DE CONVERSAPI3.DLL EN C# .....................................................................................................................................11
3.6
UTILISATION DE CONVERSAPI3.DLL AVEC EXCEL ...........................................................................................................................12
3.7
TYPES DE PROJECTIONS RECONNUES PAR CONVERSAPI3.DLL ..........................................................................................................13
1 Installation de Convers
Excutez Convers3.msi.
Convers ncessite le framework .NET 3.5, il est donc possible que celui-ci soit tlcharg pendant linstallation de Convers.
2 Utilisation de Convers
Convers est un logiciel de conversion de coordonnes gographiques qui permet de convertir des coordonnes exprimes en
Latitude/Longitude dans diffrents systmes godsiques ou bien en X/Y dans diffrentes projections.
2.1
Fentre principale
La fentre principale de Convers permet deffectuer les conversions proprement dites. Elle est spare en 2 zones distinctes : Dpart et
Arrive. La zone Dpart permet de saisir les coordonnes convertir et certains paramtres, la zone Arrive est utilise pour afficher les
coordonnes converties. Au milieu se trouve une zone permettant de slectionner une ventuelle grille de conversion. Au lancement de
Convers, les options valides sont celles correspondant la dernire conversion effectue.
Format
Degrs Minutes Secondes
Degrs Minutes
Degrs dcimaux
Grades
Radians
Exemple
443517.634"
4435.294
445882317
49.5424796gr
0.7782115
Saisie
44.3517634
44.35294
44.5882317
49.5424796
0.7782115
On peut alors saisir les coordonnes convertir, que Convers convertit automatiquement au fur et mesure de la saisie, si les donnes
saisies sont correctes. En cas derreur de saisie, des indications apparaissent droite de la valeur errone.
2.2
Paramtrage
Convers est livr avec la plupart des ellipsodes couramment utilises, les systmes godsiques : 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 ellipsodes, systmes godsiques et projections peuvent tre ajouts pour correspondre vos
besoins. Les donnes sont stockes dans une base de donnes Access qui se trouve dans le mme dossier que Convers : Convers.mdb
2.2.1 Ellipsodes
Le bouton Ellipsodes affiche une boite de dialogue permettant lajout, la modification et la suppression dellipsodes. Cette boite de
dialogue contient les paramtres ncessaires la dfinition dun ellipsode.
Nom abrg
Nom complet
Demi grand axe (A)
Demi petit axe (B)
Aplatissement inverse (1/F)
2 boutons droite des zones de saisie de B et 1/F permettent de choisir la valeur saisir, A, B, et 1/F tant lis par une relation
mathmatique. Selon les documentations, on trouve les valeurs de A et B ou de A et 1/F.
Le bouton Nouveau cre un nouvel ellipsode. Il faut saisir un nom abrg qui doit tre unique.
Le bouton Supprimer supprime lellipsode slectionn.
Le bouton Enregistrer enregistre les modifications.
Le bouton Annuler annule les modifications.
Pour utiliser les transformations 7 paramtres, il faut cocher la case Conversion 7 paramtres.
Les rotations entre les systmes doivent tre saisis selon la convention IERS (les axes du systme darrive sont ramens parallles aux
axes du systme de dpart). La plupart des logiciels SIG et des rcepteurs GPS utilisent un convention diffrente (les signes de Rx, Ry et
Rz sont alors inverss)
Le bouton Nouveau cre un nouveau systme godsique. Il faut saisir un nom abrg qui doit tre unique.
3
2.2.3 Projections
Le bouton Projections affiche une boite de dialogue permettant lajout, la modification et la suppression de projections. Cette boite de
dialogue contient les paramtres ncessaires la dfinition dune projection.
Nom abrg
Nom complet
Systme godsique
Type de projection
Paramtres
Certains paramtres des projections sont des angles. Convers adopte les conventions de saisie suivantes pour la notation des angles dans
cette boite de dialogue :
Angle en degrs minutes secondes
Angle en degrs minutes
Angle en degrs dcimaux
Angle en grades
Angle en radians
2.3
Tableau de conversions
Ce tableau permet deffectuer des conversions en nombre. Le principe de saisie est le mme que pour la fentre principale, laffichage peut
tre soit format soit brut, selon que la case Affichage format soit coche ou non. Le rsultat saffiche automatiquement lorsque les
valeurs ncessaires ont t saisies. Le rsultat sera Err en cas derreur de saisie ou de valeurs errones. Il est possible de copier (Ctrl +
C) ou de coller (Ctrl + V) des donnes partir dun autre logiciel. En cas dutilisation dune grille de conversion, la marque 9 apparatra
pour chaque ligne ayant utilis la grille.
Le bouton Ouvrir ouvre un fichier csv dont le format est le suivant :
1re ligne : Depart;code;unit;[mridien]
2me ligne : Arrivee;code;unit;[mridien]
3me ligne (facultative) : Grille ;grille de conversion
3me ou 4me ligne et suivantes : donnes
Depart et Arrivee (sans accents) sont des mots rservs et doivent figurer en tte des 1re et 2me lignes.
Code est le nom abrg de la projection ou du systme godsique de dpart ou darrive.
Units : 0 = Degrs Minutes Secondes
1 = Degrs Minutes
2 = Degrs dcimaux
3 = Grades
4 = Radians
5 = Mtres
6 = Kilomtres
Mridiens (uniquement si le code correspond un systme godsique) :
1 = Greenwich
2 = Paris
Grille : nom de la grille de conversion utiliser, par exemple NTF_RGF93.
4
2.4
Cette fonctionnalit permet de sauvegarder la totalit des paramtres de Convers, ellipsodes, systmes godsiques et projections dans un
fichier xml. Elle sert essentiellement aux utilisateurs de ConversApi3.dll (voir plus bas) qui ainsi pourront dfinir la configuration
ncessaire leurs applications avec Convers et utiliser ConversApi3.dll de manire totalement autonome grce sa fonction
dinitialisation partir dun fichier xml.
3 ConversApi3.dll
Convers est livr avec ConversApi3.dll afin de permettre lutilisation 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#. Pour les applications en 64 bits,
une version x64 de ConversApi3.dll est disponible dans C:\Program Files\Convers\x64\ConversApix64.zip.
ConversApi3.dll contient un ensemble de classes dcrites ci-dessous. Le namespace se nomme ConversApi.
3.1
Enumrations
Ces numrations dfinissent les units utilises pour exprimer les coordonnes et les mridiens de rfrence.
3.1.1 Units
enum Units { DMS, DMN, DDEC, GRAD, RAD, MT, KM };
DMS
DMN
DDEC
GRAD
RAD
MT
KM
:
:
:
:
:
:
:
3.1.2 Mridiens
enum Meridians { NONE, GREENWICH, PARIS };
NONE
GREENWICH
PARIS
3.2
Classe Location
Cette classe correspond la reprsentation dun point avec son systme de coordonnes et ses units. Elle permet le formatage des
coordonnes selon les conventions en vigueur.
:
:
:
:
:
:
:
:
:
:
Longitude si le point est exprim en Latitude / Longitude. X si le point est exprim en X /Y.
Latitude si le point est exprim en Latitude / Longitude. Y si le point est exprim en X /Y.
Zone si le point reprsente des coordonnes UTM.
Dsignateur si le point reprsente des coordonnes UTM.
Nom abrg du systme godsique ou de la projection correspondant au point.
Unit dans laquelle est exprim le point
Mridien de rfrence du point sil est exprim en Latitude / Longitude.
Longitude ou X format avec la mthode Format()
Latitude ou Y format avec la mthode Format()
Zone et dsignateur formats avec la mthode Format()
3.2.2 Mthodes
Location()
Constructeur par dfaut.
Location(double xLon, double yLat, String key, Units unit, Meridians mer)
Constructeur utilis pour un point exprim en Latitude / Longitude.
6
double xLon
double yLat
String key
Units unit
Meridians mer
:
:
:
:
:
Longitude.
Latitude.
Nom abrg du systme godsique.
Unit.
Mridien de rfrence.
:
:
:
:
X.
Y.
Nom abrg de la projection.
Unit.
Location(double xLon, double yLat, int zone, char designator, String key, Units unit)
Constructeur utilis pour un point exprim en X/Y avec zone (UTM)
double xLon
double yLat
int zone
char designator
String key
Units unit
:
:
:
:
:
:
X.
Y.
Zone UTM.
Dsignateur UTM.
Nom abrg de la projection.
Unit.
Si on ne connait pas le dsignateur, il est possible de renseigner uniquement la zone, positive pour lhmisphre Nord, ngative
pour lhmisphre Sud, et de positionner le dsignateur '\0'.
Location(Location from)
Constructeur partir dun autre objet Location.
Location from
: Objet dorigine
3.2.3 Exemple
Location loc1 = new Location(5.47307, 45.38582, "WGS84", Units.DMS, Meridians.GREENWICH);
Location loc2 = new Location(869.269, 2078.565, "LT2E", Units.KM);
Location loc3 = new Location(717540, 5058899, 31, '\0', "UTMWGS84", Units.MT);
loc1. Format(conv);
Console.WriteLine(loc1.sYLat + "
Les systmes godsiques et projections "WGS84", "LT2E", "UTMWGS84" doivent avoir t dfinis dans lobjet conv (voir la
description de la classe Conversion).
3.3
Structure ProjectionType
Cette structure donne des informations sur les paramtres des types de projections.
String Name
String[] Param
La classe Conversion contient une liste de ProjectionType permettant dobtenir les informations sur toutes les projections reconnues par
ConversApi3.dll.
3.3.2 Exemple
foreach (ProjectionType pt in Conv.ProjectionTypes)
{
Console.WriteLine(pt.Key + " " + pt.Name);
foreach (String str in pt.Param)
Console.WriteLine(str);
}
3.4
Classe Conversion
Cette classe permet deffectuer les conversions de coordonnes. Elle doit tre initialise soit partir dun fichier xml soit laide de
mthodes permettant de dfinir tous les paramtres ncessaires. Elle possde galement plusieurs mthodes utilitaires. Les mthodes
gnrent des exceptions avec une description explicite en cas derreur.
Avant de pouvoir effectuer des conversions, il est ncessaire de paramtrer lobjet Conversion, soit avec la mthode ReadXml, soit avec
les mthodes dajout dellipsodes (AddEllipsoid), de systmes godsiques (AddDatum), et de projections (AddProjection).
Les ellipsodes devront tre ajouts avant les systmes godsiques et les systmes godsiques avant les projections, ceci afin de garantir
la cohrence des donnes.
3.4.2 Mthodes
Conversion()
Constructeur.
void AddEllipsoid(String key, String descr)
Ajoute un ellipsode.
: Nom abrg de lellipsode.
: Paramtres sous la forme [nom];[a];[b];[1/f]
String key
String descr
nom
a
b
1/f
:
:
:
:
Si b est diffrent de 0 alors 1/f doit tre gal 0 et rciproquement, ces 2 valeurs tant dpendantes lune de lautre.
void AddEllipsoid(String key, String name, double a, double b, double invF)
Ajoute un ellipsode.
String
String
double
double
double
key
name
a
b
invF
:
:
:
:
:
Si b est diffrent de 0 alors 1/f doit tre gal 0 et rciproquement, ces 2 valeurs tant dpendantes lune de lautre.
8
String key
String descr
nom
ellipsode
tx, ty, tz
rx, ry, rz
echelle
:
:
:
:
:
Pour les transformations 3 paramtres, il suffit de renseigner nom, ellipsode, tx, ty, tz.
void AddDatum(String key, String name, String ellips, double tx, double ty, double tz)
Ajoute un systme godsique pour des transformations 3 paramtres.
String
String
String
double
key
name
ellips
tx, ty, tz
:
:
:
:
void AddDatum(String key, String name, String ellips, double tx, double ty, double tz,
double rx, double ry, double rz, double scale)
Ajoute un systme godsique pour des transformations 7 paramtres.
String
String
String
double
double
double
key
: Nom abrg du systme godsique.
name
: Nom complet du systme godsique.
ellips
: Nom abrg de lellipsode de rfrence.
tx, ty, tz : Translations en X, Y, Z en mtres.
rx, ry, rz : Rotations en X, Y, Z en secondes dangle.
scale
: Facteur dchelle en ppm (parties par million).
:
:
:
:
:
:
Les paramtres doivent tre dans lordre spcifi pour chaque projection (Voir en 3.5). Les valeurs des paramtres doivent
respecter les conventions de saisie dtailles en 2.2.3.
void AddProjection(String key, String name, String typeProj, String datum, String []param)
Ajoute une projection.
String
String
String
String
String
key
name
typeProj
datum
[]param
:
:
:
:
:
Les paramtres doivent tre dans lordre spcifi pour chaque projection (Voir en 3.5). Les valeurs des paramtres doivent
respecter les conventions de saisie dtailles en 2.2.3.
void LoadGrid(String file)
Charge une grille de conversion.
: Chemin complet de la grille charger.
String file
void Clear()
Rinitialise lobjet Conversion. Efface les ellipsodes, systmes godsiques, projections et systme godsique de rfrence.
bool Convert(Location from, Location to, String grid = )
Effectue une conversion.
Location from
Location to
String grid
: Position convertir.
: Position convertie.
: Nom de la grille de conversion
: Nom abrg.
Valeur de retour : true si le nom abrg correspond un systme godsique, false sinon.
bool IsEllippsoid(String key)
Dtermine si le nom abrg key correspond un ellipsode dj dfini dans lobjet Conversion.
String key
: Nom abrg.
: Nom abrg.
Valeur de retour : true si le nom abrg correspond une projection, false sinon.
bool IsGrid(String grid)
Dtermine si la grille de nom grid est charge en mmoire.
String grid : Nom de la grille de conversion.
10
Valeur de retour : true si le nom abrg correspond une projection avec calcul de zone automatique, false sinon.
3.5
Utilisation de ConversApi3.dll en C#
Cet exemple est fourni avec Convers3, il souvre avec Visual Studio (2008 et suivants) : Menu Dmarrer de Windows, Convers 3,
Exemples, C#, Exemple.sln.
using
using
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Text;
System.IO;
ConversApi;
namespace Exemple
{
class Program
{
static void Main(string[] args)
{
Conversion Conv = new Conversion();
if (File.Exists("Convers.xml")) // Configuration partir d'un fichier xml
{
Conv.ReadXml("Convers.xml");
}
else // Configuration manuelle
11
{
// Ajout des ellipsodes
Conv.AddEllipsoid("WGS84", "WGS 1984", 6378137, 6356752.314245, 0);
Conv.AddEllipsoid("CLRK80IGN", "Clarke 1880 IGN", 6378249, 6356515, 0);
// Ajout des systmes godsiques
Conv.AddDatum("WGS84", "World Geodetic System 1984", "WGS84", 0, 0, 0);
Conv.AddDatum("NTF", "Nouvelle Triangulation Franaise", "CLRK80IGN", -168, -60, 320);
// Ajout des projections
Conv.AddProjection("UTM.WGS84", "Universal Transverse Mercator / WGS84;UTM;WGS84;0.9996");
Conv.AddProjection("LT2E", "Lambert France zone II tendue;LAMBCC2;NTF;45.5356108;47.4145652;
2.2014025;52g;6e5;2.2e6");
}
// Point convertir en Lambert II tendu (kilomtres)
Location from = new Location(869.269, 2078.565, "LT2E", Units.KM);
// Rsultat en Lat / Lon WGS84 (degrs minutes secondes, Greenwich)
Location to = new Location(0,0,"WGS84",Units.DMS,Meridians.GREENWICH);
// Conversion et affichage du rsultat
Conv.Convert(from, ref to);
from.Format(Conv);
to.Format(Conv);
Console.WriteLine("Lambert II tendu : X = {0} Y = {1}", from.sXLon, from.sYLat);
Console.WriteLine("WGS84
: {0} {1}", to.sYLat, to.sXLon);
// Conversion en UTM
to.Key = "UTM.WGS84";
to.Unit = Units.MT;
to.Mer = Meridians.NONE;
Conv.Convert(from, ref to);
to.Format(Conv);
Console.WriteLine("UTM / WGS84
Console.Read();
}
}
}
3.6
Il est possible dutiliser ConversApi3.dll en VBA avec Excel. Avant toute utilisation des classes de ConversApi3.dll il peut tre ncessaire
de la rfrencer dans Excel bien que normalement le rfrencement se fasse de manire automatique lors de linstallation de Convers3.
Pour cela, ouvrir le module Visual Basic dExcel puis procder au rfrencement grce au menu Outil Rfrences afin de rfrencer
C:\Program Files\Convers3\ConversApi3.tlb. Une fois le rfrencement effectu, laccs aux fonctionnalits de ConversApi3.dll sera
possible.
Lexemple suivant est fourni avec Convers3. Pour louvrir : Menu Dmarrer de Windows, Convers 3, Exemples, Excel, Exemple.xls. A
partir de la version 2007 dExcel il faut activer les macros aprs louverture du fichier. Selon lendroit o Convers3 sera install, il faudra
peut-tre modifier le chemin du fichier Convers.xml pass en paramtre la fonction ReadXml. En cas derreur dinitialisation la fonction
renverra 99 pour les coordonnes converties. Un exemple de conversion avec grille NTV2 est galement fourni.
' Variables globales
Dim Init As Integer
Dim conv As New ConversApi3.Conversion
Public Function ConversCoords3(ByVal d1 As Range, ByVal lpszFrom As String, ByVal iUnit1 As Integer, ByVal iMer1 As
Integer, ByVal lpszTo As String, ByVal iUnit2 As Integer, ByVal iMer2 As Integer) As Variant
' Dclarations
Dim loc1 As New ConversApi3.Location
Dim loc2 As New ConversApi3.Location
' Initialisation partir de Convers.xml, ne faire qu'une seule fois
If Init = 0 Then
12
3.7
: EQUIRECT
: Mridien central, Latitude d'origine, X l'origine (m), Y l'origine (m).
Laborde Madagascar
Code type
Paramtres
: LABORDE
: Facteur d'chelle, Azimut, Mridien central, Latitude d'origine, X l'origine (m), Y l'origine (m).
: LAMBCC2
: 1er parallle scant, 2nd parallle scant, Latitude dorigine, Mridien central, X lorigine (m), Y lorigine (m).
: LAMBCC1
: Facteur d'chelle l'origine, Mridien central, Latitude d'origine, X l'origine (m), Y l'origine (m)
: LAMB72
: 1er parallle scant, 2nd parallle scant, Latitude dorigine, Mridien central, X lorigine (m), Y lorigine (m).
: LAMBCT
: Facteur d'chelle l'origine, Mridien central, Latitude d'origine, X l'origine (m), Y l'origine (m).
: MEROBLIQA
13
Paramtres
: Facteur d'chelle, Latitude 1er point, Longitude 1er point, Latitude 2me point, Longitude 2me point, Latitude
d'origine, X l'origine (m);Y l'origine (m)
: MEROBLIQB
: Facteur d'chelle, Azimut, Mridien central, Latitude d'origine, X l'origine (m), Y l'origine (m)
Mercator Transverse
Code type
Paramtres
: MERTRANS
: Facteur d'chelle, Mridien central, Latitude d'origine, X l'origine (m), Y l'origine (m)
Miller Cylindrique
Code type
Paramtres
: MILLER
: Mridien central, X l'origine (m), Y l'origine (m).
Strographique Equatoriale
Code type
Paramtres
: STEREQUA
: Facteur d'chelle, Mridien central, X l'origine (m), Y l'origine (m)
Strographique Oblique
Code type
Paramtres
: STEROBLIQ
: Facteur d'chelle, Mridien central, Latitude d'origine, X l'origine (m), Y l'origine (m)
: SWISS
: Mridien central, Latitude d'origine, X l'origine (m), Y l'origine (m)
: UTM
: Facteur dchelle.
: UTMZONE
: Facteur dchelle, Zone (Nord > 0, Sud < 0).
14