• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

(Spoiler): MGMCalc: 3 Betriebssysteme zwei Ergebnisse

Hi,

ich habe mit MGM Calc ein Script geschrieben um Cachekoordinaten zu errechnen. Lasse ich es laufen, erhalte ich auf dem PDA und WinXP das gleiche falsche Ergebnis. Auf dem Win2k Rechner läuft das Programm korrekt (zumindest sagt der Geochecker das).

hier der Code:
Erklärung zu den Variablen:
AN=A Nordwert,
AE=A Ostwert,
BN=...

ABD -> Distanz A - B
ABB -> Richtung A-B

WHA = Winkelhalbierende C-A-B
WHA = Winkelhalbierende A-B-C

Code:
VAR AN,AE,BN,BE,CN,CE,
    DN,DE,EN,EE,ZN,ZE,
    ACD,ACB,BCD,BCB,ABD,ABB,BAD,BAB,
    ADD,ADB,BDD,BDB,DED,DEB,
    WHA,WHB,LAT,LON;
AN=°N 50 53.584;
AE=°E 7 6.638;
BN=°N 50 54.548;
BE=°E7 8.336;
CN=°N 50 53.817;
CE=°E 7 9.646;
CP(AN,AE,BN,BE,ABD,ABB);
CP(AN,AE,CN,CE,ACD,ACB);
CP(BN,BE,CN,CE,BCD,BCB);
CP(BN,BE,AN,AE,BAD,BAB);
WHA=((ACB-ABB)/2)+ABB;
WHB=((BCB-BAB)/2)+BAB;
->ABD:2, ' ', ABB:2;
->BAD:2, ' ', BAB:2;
KreuzPeilung(AN,AE,WHA,BN,BE,WHB,DN,DE);
KreuzPeilung(AN,AE,ABB,DN,DE,(ABB+270),EN,EE);
CP(DN,DE,EN,EE,DED,DEB);
CBP(DN,DE,0,DED,ZN,ZE);
->wgps(ZN,ZE);
OLAT=ZN;
OLON=ZE;

Die Peilung von A nach B ergibt 0 und einen Kurs von 44.98° die Peilung von B nach A ergibt eine Entfernung von 2673.46 m 228.06° dementsprechend müsste ABB= 48.06° sein.

Der Ostwert ist richtig, der Nordwert stimmt nicht.

Ich verstehe nicht warum die erste Peilung nicht funktioniert...

Gruß

Udo
 
Hallo,

habe dein Script mal nach Mopsos 0.0.10 konvertiert:
Code:
program Test;

VAR AN,AE,BN,BE,CN,CE,
    DN,DE,EN,EE,ZN,ZE,
    ACD,ACB,BCD,BCB,ABD,ABB,BAD,BAB,
    ADD,ADB,BDD,BDB,DED,DEB,
    WHA,WHB,LAT,LON: real;
    b: boolean;
    d: real;
    
begin    
AN:='N 50 53.584';
AE:='E 7 6.638';
BN:='N 50 54.548';
BE:='E 7 8.336';
CN:='N 50 53.817';
CE:='E 7 9.646';

b:=CalcProjection(AN,AE,BN,BE,ABD,ABB);
b:=CalcProjection(AN,AE,CN,CE,ACD,ACB);
b:=CalcProjection(BN,BE,CN,CE,BCD,BCB);
b:=CalcProjection(BN,BE,AN,AE,BAD,BAB);
WHA:=((ACB-ABB)/2)+ABB;
WHB:=((BCB-BAB)/2)+BAB;
writeln(ABD:10:2, ABB:7:2);
writeln(BAD:10:2, BAB:7:2);
writeln;
KreuzPeilung(AN,AE,WHA,BN,BE,WHB,DN,DE);
KreuzPeilung(AN,AE,ABB,DN,DE,(ABB+270),EN,EE);
b:=CalcProjection(DN,DE,EN,EE,DED,DEB);
MakeProjection(DN,DE,DED,0,ZN,ZE);
writeln(WGS84(ZN,ZE));
end.

da erhalte ich das Ergebnis
Code:
   2675.44  48.07
   2675.44 228.09

N 50° 54.4005 E 7° 8.3272
Und auf dem PDA und WinXP rechner kommt das selbe raus.

Bei der Konvertierung des MGMcalc C-Source nach Pascal-Source für Mopsos habe ich aber ein paar Veränderungen gemacht. Müsste mir noch mal den C-Source anschauen ob da einen nicht initialisierte Variable rum hängt. Schalt doch mal den Debug modus an
Code:
debug=1;
Und gib mir mal die Ergebnisse auf den unterschiedlichen Plattformen.

KDB
 
Oben