GHCaveDraw: Spécifications techniques à l'usage des auteurs de logiciels de topographie
Le format GCP
Cet article est à l'usage des auteurs de logiciels topo tiers qui désirent développer une passerelle vers GHCaveDraw.
La section basepoints
Un fichier GCP comporte les éléments suivants
- Une description, facultative, dont chaque ligne débute par un #. Elle comporte typiquement le nom du logiciel utilisé pour la génération, le nom du réseau et la date/heure de création
- Une ligne contenant le mot-clé basepoints
- Une ligne, facultative, contenant la description des champs
- Une ligne de données par visée
- Une ligne contenant le mot-clé endbasepoints
Séparateurs de champs et commentaires
Le séparateur de champs est la tabulation (#9, \t).
Un commentaire peut être inséré. Il commence par un # en début de ligne
Signification des champs à exporter
Une ligne par visée
IDStation: (texte)
Nom de la station, eg: A630
Le nom de la station peut contenir des espaces (déconseillé), des tirets (sauf le premier caractère s'il s'agit d'un point topo), des underscores ( _ ), des apostrophes et des caractères alphanumériques.
Les espaces sont convertis en underscores
S'il s'agit d'une visée radiante, le faire précéder d'un tiret ( - ), eg: -A630
IDTerrain: (texte)
Classiquement le texte inscrit sur une étiquette. Ce champ peut être laissé vide
TypeStation: (nombre entier)
Mettre ce champ à 0 s'il s'agit d'une galerie, 7 s'il s'agit d'une topo de surface
Couleur: (nombre entier)
Ce champ est un entier dont la valeur est le résultat de la fonction RGBToColor.
TColor est un entier 32bits signé
// En Delphi / Pascal
function RGBToColor(R, G, B: Byte): TColor;
begin
Result := (B shl 16) or (G shl 8) or R;
end;
// En C/C++
int RGBToColor(const unsigned short R, G, B)
{
return (B << 16) | (G << 8) | R;
}
// En Basic
FUNCTION RGBToColor(R as Byte, G As Byte, B As Byte) As Long
RGBToColor = (B * 65536) + (G * 256) + R
END FUNCTION
PosExtr0: (coordonnées X, Y, Z)
Coordonnées XYZ de l'extrémité de départ de la visée
PosStation: (coordonnées X, Y, Z)
Coordonnées XYZ de l'extrémité d'arrivée de la visée ( = position du point topo)
PosPG: (coordonnées X, Y, Z)
Coordonnées XYZ d'une extrémité de la section transversale. Calculée avec les LRUD
La coordonnée Z est celle du point topo
PosPD:
Coordonnées XYZ de l'autre extrémité de la section transversale. Calculée avec les LRUD.
La coordonnée Z est celle du point topo
Pour une visée radiante, PosStation, PosPG et PosPD sont identiques.
Déclarations de type en Delphi / Free Pascal
type TIDBaseStation = type string;
type TPoint3Df = record
X: double;
Y: double;
Z: double;
end;
type TBaseStation = record
IDStation : TIDBaseStation;
//IDGroupePoints : TIDGroupePoints;
IDTerrain : string; // étiquette de terrain
TypeStation : TTypeStation;
Couleur : TColor;
PosExtr0 : TPoint3Df; // départ visée
PosStation : TPoint3Df; // coordonnées de référence
PosPG : TPoint3Df; //
PosPD : TPoint3Df;
Enabled : boolean; // activé par le MétaFiltre
end;
Déclarations de type en C / C++
/* ID de la station, ici du texte, pas forcément de l'Unicode d'ailleurs */
typedef TIDBaseStation char*;
/* Déclarations pour un point 3D */
typedef struct { double X;
double Y;
double Z; } TPoint3Df;
/* Déclaration de la structure pour un basepoint */
typedef struct {
TIDBaseStation IDStation;
short TypeStation; // Doit être mis à 0
char* IDTerrain;
long Couleur;
TPoint3Df PosExtr0;
TPoint3Df PosStation;
TPoint3Df PosPG;
TPoint3Df PosPD;
byte Enabled; // Doit être mis à 1
} TBaseStation;
Exemple de section basepoints
basepoints
# Parameters: IDStation; Caption; GHTopo TypeStation; integer Colour; Start shot, End shot, Left and Right coordinates
-100010 10 0 439997.00 3075916.00 663.00 439997.19 3075913.10 663.40 439997.19 3075913.10 663.00 439997.19 3075913.10 663.00
-100010 10 0 439997.00 3075916.00 663.00 439994.75 3075915.15 663.79 439994.75 3075915.15 663.00 439994.75 3075915.15 663.00
-100010 10 0 439997.00 3075916.00 663.00 439996.25 3075916.08 663.13 439996.25 3075916.08 663.00 439996.25 3075916.08 663.00
-100010 10 0 439997.00 3075916.00 663.00 439995.99 3075916.39 663.39 439995.99 3075916.39 663.00 439995.99 3075916.39 663.00
-100010 10 0 439997.00 3075916.00 663.00 439996.03 3075916.05 663.66 439996.03 3075916.05 663.00 439996.03 3075916.05 663.00
-100010 10 0 439997.00 3075916.00 663.00 439995.17 3075913.53 663.64 439995.17 3075913.53 663.00 439995.17 3075913.53 663.00
-A67 10 0 439992.42 3075906.20 662.41 439994.25 3075906.64 662.32 439994.25 3075906.64 662.41 439994.25 3075906.64 662.41
-A67 10 0 439992.42 3075906.20 662.41 439993.99 3075905.97 662.31 439993.99 3075905.97 662.41 439993.99 3075905.97 662.41
-A67 10 0 439992.42 3075906.20 662.41 439991.57 3075906.18 662.37 439991.57 3075906.18 662.41 439991.57 3075906.18 662.41
-A67 10 0 439992.42 3075906.20 662.41 439991.32 3075907.50 662.38 439991.32 3075907.50 662.41 439991.32 3075907.50 662.41
-A67 10 0 439992.42 3075906.20 662.41 439991.54 3075906.18 662.35 439991.54 3075906.18 662.41 439991.54 3075906.18 662.41
-A67 10 0 439992.42 3075906.20 662.41 439991.70 3075905.95 662.33 439991.70 3075905.95 662.41 439991.70 3075905.95 662.41
51 3075896.87 664.45
-LLANFAIRPWLL 10 0 439960.36 3075896.74 664.45 439961.65 3075895.55 663.24 439961.65 3075895.55 664.45 439961.65 3075895.55 664.45
-LLANFAIRPWLL 10 0 439960.36 3075896.74 664.45 439962.58 3075896.34 663.26 439962.58 3075896.34 664.45 439962.58 3075896.34 664.45
-LLANFAIRPWLL 10 0 439960.36 3075896.74 664.45 439962.65 3075899.30 664.71 439962.65 3075899.30 664.45 439962.65 3075899.30 664.45
-LLANFAIRPWLL 10 0 439960.36 3075896.74 664.45 439958.86 3075896.13 664.79 439958.86 3075896.13 664.45 439958.86 3075896.13 664.45
-LLANFAIRPWLL 10 0 439960.36 3075896.74 664.45 439961.91 3075899.52 664.82 439961.91 3075899.52 664.45 439961.91 3075899.52 664.45
100010 1.1 0 0 439997.00 3075916.00 663.00 439996.83 3075915.84 663.01 439998.31 3075914.84 663.00 439995.96 3075916.44 664.00 1.1
100060 1.6 0 0 439992.42 3075906.20 662.41 439990.10 3075903.77 661.43 439990.38 3075903.00 662.41 439989.52 3075905.38 662.41 1.6
100070 1.7 0 0 439990.10 3075903.77 661.43 439988.27 3075903.98 662.26 439989.63 3075901.98 661.43 439987.03 3075905.82 661.98 1.7
100080 1.8 0 0 439988.27 3075903.98 662.26 439987.48 3075901.09 662.22 439988.41 3075900.09 662.26 439985.70 3075903.01 664.29 1.8
# ....
100480 1.48 0 0 439935.14 3075957.87 666.76 439934.85 3075959.13 665.97 439934.11 3075958.96 666.14 439935.05 3075959.17 667.96 1.48
200010 2.1 0 0 439956.82 3075888.04 661.65 439953.03 3075892.73 663.78 439953.03 3075892.73 661.65 439953.03 3075892.73 661.65 2.1
300010 3.1 0 0 439950.56 3075896.21 666.62 439950.59 3075896.58 665.15 439950.59 3075896.58 666.62 439950.59 3075896.58 666.62 3.1
300020 3.2 0 0 439950.59 3075896.58 665.15 439948.78 3075901.34 657.09 439948.78 3075901.34 665.15 439948.78 3075901.34 665.15 3.2
400010 4.1 0 0 439954.17 3075889.36 664.88 439953.17 3075888.35 665.34 439953.68 3075887.89 664.88 439952.79 3075888.70 665.37 4.1
400020 4.2 0 0 439953.17 3075888.35 665.34 439951.98 3075886.94 667.37 439951.98 3075886.94 665.34 439951.98 3075886.94 665.83 4.2
A64 1.2 0 0 439996.83 3075915.84 663.01 439995.67 3075912.83 662.79 439996.06 3075912.39 663.01 439994.55 3075914.12 664.01 1.2
A65 1.3 0 0 439995.67 3075912.83 662.79 439993.20 3075912.25 663.18 439994.13 3075911.35 662.79 439992.76 3075912.68 663.87 1.3
A66 1.4 0 0 439993.20 3075912.25 663.18 439992.52 3075908.96 663.31 439993.85 3075908.79 663.18 439990.71 3075909.17 664.72 1.4
A67 1.5 0 0 439992.52 3075908.96 663.31 439992.42 3075906.20 662.41 439993.80 3075905.62 663.15 439990.94 3075906.82 664.43 1.5
LLANFAIRPWLL 1.21 0 0 439962.85 3075897.13 664.30 439960.36 3075896.74 664.45 439961.52 3075895.43 662.99 439957.86 3075899.55 664.30 1.21
endbasepoints
A découvrir aussi
Inscrivez-vous au blog
Soyez prévenu par email des prochaines mises à jour
Rejoignez les 30 autres membres