Erstellen von Flugplänen
Moderator: JaBoG32 Stab
-
- Schaut öfter mal vorbei
- Beiträge: 29
- Registriert: 27. Aug 2005, 07:20
Erstellen von Flugplänen
Das manuelle Erstellen von Flugplänen artet ganz schön in Arbeit aus:
[url=http://img470.imageshack.us/my.php?imag ... 9cv.jpghkd][imghkd]http://img470.imageshack.us/img470/5108 ... 9cv.th.jpg[/imghkd][/urlhkd]
Die Daten sind ja in der Mission enthalten. Weiß von euch jemand, ob man an die Daten 'rankommt?
[url=http://img470.imageshack.us/my.php?imag ... 9cv.jpghkd][imghkd]http://img470.imageshack.us/img470/5108 ... 9cv.th.jpg[/imghkd][/urlhkd]
Die Daten sind ja in der Mission enthalten. Weiß von euch jemand, ob man an die Daten 'rankommt?
Also, wenn du eine .mis file im Texteditor öffnest erhälst du in etwa das:
[quotecd6]ÐÏࡱá > þÿ þÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿþÿÿÿþÿÿÿ
þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿR o o t E n t r y ÿÿÿÿÿÿÿÿ Yá¦Å @ L o c k O n _ M i s s i o n ÿÿÿÿÿÿÿÿÿÿÿÿ > ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ
! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ<LockOn_Mission MissionID="1"><Objects><Missions><Mission ID="1" version="0.96" Title="BJT1" StartTime="32400" RedCoalitionID="1" BlueCoalitionID="2" MeteoID="1" MissionGoalID="1" MissionOptionsID="1" LastMissionID="1" ReadOnly="0" MapPositionLeft="497965" MapPositionTop="-232012.3" MapPositionRight="579957.8" MapPositionBottom="-170525.3" EventLogID="1"/></Missions><Coalitions><Coalition ID="1"><Country ID="1"/></Coalition><Coalition ID="2"/></Coalitions><Countries><Country ID="1" CLSID="{EFADDFE6-9360-4523-8CAB-2D74182617FD}"><GroupCategory CLSID="{C168A850-3C0B-436a-95B5-C4A015552560}"><Group ID="1"/></GroupCategory></Country></Countries><Groups><Group ID="1" Name="AirgroupUSA01" RouteID="1"><SubGroup ID="1"/></Group></Groups><Routs><Route ID="1" StartTime="32400"><RoutePoint ID="1"/><RoutePoint ID="2"/></Route></Routs><RoutePoints><RoutePoint ID="1" Speed="483.1122" PositionID="1" RouteTaskID="1"/><RoutePoint ID="2" Speed="483.1122" PositionID="2" RouteTaskID="1"/></RoutePoints><Positions><Position ID="1" Latitude="-210533.09375" Longitude="532841.6875" Altitude="609.600036621094"/><Position ID="2" Latitude="-196573.09375" Longitude="522672.71875" Altitude="609.600036621094"/><Position ID="3"/></Positions><RouteTasks><RouteTask ID="1" CATID="{2D0C3C57-2AB3-48ee-A1C2-BE75934F76F6}" WorldTypeID="0"/></RouteTasks><Airports/><Ships/><Commanders><Commander ID="1" Name="Pilot1" SkillID="1"/></Commanders><Skills><Skill ID="1" WorldTypeID="5"/></Skills><PlayerOptions><PlayerOption ID="1" Immortal="1" CrashRecovery="1" CivTraffic="0" UnlimitedFuel="1" UnlimitedWeapons="0" EasyFlight="0" EasyRadar="0" RadioAssist="0" ExternalLabels="1" ExternalView="1" AwacsView="1" AircraftSwitching="1" AutoLockOn="0" AdvancedFlightModel="0" PadLock="1" MiniHUD="0" GEffects="2" AwacsViewFilter="7"/></PlayerOptions><SubGroups><SubGroup ID="1" Name="Enfield" IsHumanCrashed="0" TaskID="1" CallSignCLSID="{F55E6D97-9C9E-417a-A275-B23ABC556414}"><Unit CATID="{C168A850-3C0B-436a-95B5-C4A015552560}" ID="1" IsDead="0"/></SubGroup></SubGroups><Planes><Plane ID="1" CLSID="{8FDB2742-2283-450D-B417-CFC47774E8B6}" PositionID="3" CommanderID="1" FuelQuantity="4853" BoardNum="1" PaintSchemeCLSID="{D7FBDFAC-7CDA-4857-9999-CDC0F2AFD1CA}" WorldID="16777472" SUSPENDED="" MissionID="1"/></Planes><Payloads/><Cars/><Fortifications/><Tasks><Task ID="1" CatID="2" WorldTypeID="15"/></Tasks><TargetInfos/><WorldObjects/><Places/><LandObjects/><Weapons/><Meteos><Meteo ID="1" Temperature="20" Visibility="80" SeasonID="1" FogID="1" CloudsID="1"><AtmLayer ID="1" Height="0"/><AtmLayer ID="2" Height="2000"/><AtmLayer ID="3" Height="8000"/></Meteo></Meteos><Seasons><Season ID="1" CLSID="{E87084B2-8469-46F1-8FDB-71A2F73E97B6}"/></Seasons><Fogs><Fog ID="1" Density="0" Thickness="50"/></Fogs><Clouds><Cloud ID="1" Base="300" Density="0" Thickness="100"/></Clouds><AtmLayers><AtmLayer ID="1" Turbulance="0" WindID="1"/><AtmLayer ID="2" Turbulance="0" WindID="2"/><AtmLayer ID="3" Turbulance="0" WindID="3"/></AtmLayers><Winds><Wind ID="1" Speed="0" Direction="360"/><Wind ID="2" Speed="0" Direction="360"/><Wind ID="3" Speed="0" Direction="360"/></Winds><Precipitations/><MissionGoals><MissionGoal ID="1" Captured="0"/></MissionGoals><VictoryConditions/><MissionOptions><MissionOption ID="1" MissilesEffectiveness="50" WorldDensity="3" UserID="1" PlayerOptionsID="1" MissionFailuresID="1"/></MissionOptions><MissionFailures><MissionFailure ID="1" Probability="100"/></MissionFailures><EventLogs><EventLog ID="1"/></EventLogs><ShotEvents/><HitInfos/><TakeOffEvents/><LandEvents/><CrashEvents/><EjectionEvents/><RefuelingEvents/></Objects></LockOn_Mission>
[/quotecd6]
Kannst ja mal durchschauen und mit dem Editor rumexperimentieren
welche Daten du so findest. Ich denke die Koordinaten der Waypoints
sollten (in welcher form auch immer) auslesbar sein. Alles was du
brauchst sind die Koordinaten der Waypoints, Höhe und Speed
Ich habe auch schon mit der Idee eines Flightplaners gespielt, aber mir
fehlt die fähigkeit zu programmieren. Wenn Du die Daten gefunden hast
und auslesen kannst, kann ich Dir mit der nötigen Mathematik helfen. Um
genau zu sein, haben wir alle Formeln die du brauchst schon in unserem
ATC-Radar-Tool verbaut.
Melde Dich, wenn du was findest oder Hife brauchst.
Dirty
[quotecd6]ÐÏࡱá > þÿ þÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿþÿÿÿþÿÿÿ
þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿR o o t E n t r y ÿÿÿÿÿÿÿÿ Yá¦Å @ L o c k O n _ M i s s i o n ÿÿÿÿÿÿÿÿÿÿÿÿ > ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ
! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ<LockOn_Mission MissionID="1"><Objects><Missions><Mission ID="1" version="0.96" Title="BJT1" StartTime="32400" RedCoalitionID="1" BlueCoalitionID="2" MeteoID="1" MissionGoalID="1" MissionOptionsID="1" LastMissionID="1" ReadOnly="0" MapPositionLeft="497965" MapPositionTop="-232012.3" MapPositionRight="579957.8" MapPositionBottom="-170525.3" EventLogID="1"/></Missions><Coalitions><Coalition ID="1"><Country ID="1"/></Coalition><Coalition ID="2"/></Coalitions><Countries><Country ID="1" CLSID="{EFADDFE6-9360-4523-8CAB-2D74182617FD}"><GroupCategory CLSID="{C168A850-3C0B-436a-95B5-C4A015552560}"><Group ID="1"/></GroupCategory></Country></Countries><Groups><Group ID="1" Name="AirgroupUSA01" RouteID="1"><SubGroup ID="1"/></Group></Groups><Routs><Route ID="1" StartTime="32400"><RoutePoint ID="1"/><RoutePoint ID="2"/></Route></Routs><RoutePoints><RoutePoint ID="1" Speed="483.1122" PositionID="1" RouteTaskID="1"/><RoutePoint ID="2" Speed="483.1122" PositionID="2" RouteTaskID="1"/></RoutePoints><Positions><Position ID="1" Latitude="-210533.09375" Longitude="532841.6875" Altitude="609.600036621094"/><Position ID="2" Latitude="-196573.09375" Longitude="522672.71875" Altitude="609.600036621094"/><Position ID="3"/></Positions><RouteTasks><RouteTask ID="1" CATID="{2D0C3C57-2AB3-48ee-A1C2-BE75934F76F6}" WorldTypeID="0"/></RouteTasks><Airports/><Ships/><Commanders><Commander ID="1" Name="Pilot1" SkillID="1"/></Commanders><Skills><Skill ID="1" WorldTypeID="5"/></Skills><PlayerOptions><PlayerOption ID="1" Immortal="1" CrashRecovery="1" CivTraffic="0" UnlimitedFuel="1" UnlimitedWeapons="0" EasyFlight="0" EasyRadar="0" RadioAssist="0" ExternalLabels="1" ExternalView="1" AwacsView="1" AircraftSwitching="1" AutoLockOn="0" AdvancedFlightModel="0" PadLock="1" MiniHUD="0" GEffects="2" AwacsViewFilter="7"/></PlayerOptions><SubGroups><SubGroup ID="1" Name="Enfield" IsHumanCrashed="0" TaskID="1" CallSignCLSID="{F55E6D97-9C9E-417a-A275-B23ABC556414}"><Unit CATID="{C168A850-3C0B-436a-95B5-C4A015552560}" ID="1" IsDead="0"/></SubGroup></SubGroups><Planes><Plane ID="1" CLSID="{8FDB2742-2283-450D-B417-CFC47774E8B6}" PositionID="3" CommanderID="1" FuelQuantity="4853" BoardNum="1" PaintSchemeCLSID="{D7FBDFAC-7CDA-4857-9999-CDC0F2AFD1CA}" WorldID="16777472" SUSPENDED="" MissionID="1"/></Planes><Payloads/><Cars/><Fortifications/><Tasks><Task ID="1" CatID="2" WorldTypeID="15"/></Tasks><TargetInfos/><WorldObjects/><Places/><LandObjects/><Weapons/><Meteos><Meteo ID="1" Temperature="20" Visibility="80" SeasonID="1" FogID="1" CloudsID="1"><AtmLayer ID="1" Height="0"/><AtmLayer ID="2" Height="2000"/><AtmLayer ID="3" Height="8000"/></Meteo></Meteos><Seasons><Season ID="1" CLSID="{E87084B2-8469-46F1-8FDB-71A2F73E97B6}"/></Seasons><Fogs><Fog ID="1" Density="0" Thickness="50"/></Fogs><Clouds><Cloud ID="1" Base="300" Density="0" Thickness="100"/></Clouds><AtmLayers><AtmLayer ID="1" Turbulance="0" WindID="1"/><AtmLayer ID="2" Turbulance="0" WindID="2"/><AtmLayer ID="3" Turbulance="0" WindID="3"/></AtmLayers><Winds><Wind ID="1" Speed="0" Direction="360"/><Wind ID="2" Speed="0" Direction="360"/><Wind ID="3" Speed="0" Direction="360"/></Winds><Precipitations/><MissionGoals><MissionGoal ID="1" Captured="0"/></MissionGoals><VictoryConditions/><MissionOptions><MissionOption ID="1" MissilesEffectiveness="50" WorldDensity="3" UserID="1" PlayerOptionsID="1" MissionFailuresID="1"/></MissionOptions><MissionFailures><MissionFailure ID="1" Probability="100"/></MissionFailures><EventLogs><EventLog ID="1"/></EventLogs><ShotEvents/><HitInfos/><TakeOffEvents/><LandEvents/><CrashEvents/><EjectionEvents/><RefuelingEvents/></Objects></LockOn_Mission>
[/quotecd6]
Kannst ja mal durchschauen und mit dem Editor rumexperimentieren
welche Daten du so findest. Ich denke die Koordinaten der Waypoints
sollten (in welcher form auch immer) auslesbar sein. Alles was du
brauchst sind die Koordinaten der Waypoints, Höhe und Speed
Ich habe auch schon mit der Idee eines Flightplaners gespielt, aber mir
fehlt die fähigkeit zu programmieren. Wenn Du die Daten gefunden hast
und auslesen kannst, kann ich Dir mit der nötigen Mathematik helfen. Um
genau zu sein, haben wir alle Formeln die du brauchst schon in unserem
ATC-Radar-Tool verbaut.
Melde Dich, wenn du was findest oder Hife brauchst.
Dirty
It's not the speed that kills you,... it's the sudden stop!!!
-
- Schaut öfter mal vorbei
- Beiträge: 29
- Registriert: 27. Aug 2005, 07:20
ok. Für's erste kann ich mal das mis-File so umbauen, dass ein simples XML-File draus wird. Dann ist wohl alles da.
Ihr habt doch ausgiebig mit den Koordinaten in eurem ATC Tool herumgerechnet.
Wie komme ich auf die Koordinaten, wenn ich solche Positionsangaben habe:
[codec1w]<Position ID="1" Latitude="-164482.328125" Longitude="462246.375" Altitude="30"/>
<Position ID="2" Latitude="-168620.140625" Longitude="454734.59375" Altitude="700"/>
<Position ID="3" Latitude="-172678.796875" Longitude="466964.3125" Altitude="700"/>
[/codec1w]
Ihr habt doch ausgiebig mit den Koordinaten in eurem ATC Tool herumgerechnet.
Wie komme ich auf die Koordinaten, wenn ich solche Positionsangaben habe:
[codec1w]<Position ID="1" Latitude="-164482.328125" Longitude="462246.375" Altitude="30"/>
<Position ID="2" Latitude="-168620.140625" Longitude="454734.59375" Altitude="700"/>
<Position ID="3" Latitude="-172678.796875" Longitude="466964.3125" Altitude="700"/>
[/codec1w]
...dafür gibts 'ne "einfache" Formel. Zugegeben, so einfach ist die nicht, aber du sollst sie ja nicht verstehen, sondern nur anwenden Zillion sollte diese Formel haben und kann sie ja mal hier Posten.
Hintergrund:
Die Welt ist rund (wer hätt's gedacht?), deshalb rechnet man in RL mit sphärischer Geometrie (kompliziert!!!). Die LockOn Welt hingegen ist flach, deshalb gibt es diese LockOn Koordinaten (Einfach!!!). Der Ursprung liegt irgendwo in der Gegend um Simferopol. Kannst Dir mit ALT-Z (Deutsche Tastatur) in der Außenansicht die LO koordinaten einblenden lassen.
Mein Tipp:
Wenn du nicht unbedingt die RL Koordinaten brauchst, dann rechne einfach mit den LO Koordinaten. Genaueres kann ich, oder auch Zillion Dir gerne per TS erklären. Wer Pythagoras versteht, hat die halbe Miete!!
Ich find die Idee mit dem Flightplanner super, und würde gerne Helfen. Wir können uns ja mal im Public TS treffen.
Dirty
Hintergrund:
Die Welt ist rund (wer hätt's gedacht?), deshalb rechnet man in RL mit sphärischer Geometrie (kompliziert!!!). Die LockOn Welt hingegen ist flach, deshalb gibt es diese LockOn Koordinaten (Einfach!!!). Der Ursprung liegt irgendwo in der Gegend um Simferopol. Kannst Dir mit ALT-Z (Deutsche Tastatur) in der Außenansicht die LO koordinaten einblenden lassen.
Mein Tipp:
Wenn du nicht unbedingt die RL Koordinaten brauchst, dann rechne einfach mit den LO Koordinaten. Genaueres kann ich, oder auch Zillion Dir gerne per TS erklären. Wer Pythagoras versteht, hat die halbe Miete!!
Ich find die Idee mit dem Flightplanner super, und würde gerne Helfen. Wir können uns ja mal im Public TS treffen.
Dirty
It's not the speed that kills you,... it's the sudden stop!!!
Kannst du mir mal erklären wie du die .mis dateien in eine XML verwandelst ?
Hier die Umrechnung:
Die Formel von Lockon XZ zu lat/long und wieder zurück lautet wie folgt:
https://www.polymoon.org/tobi/privat/latlong2xz.zip
[quoteadu]
//original code by Valery from Eagle Dynaics=-=-=-=-=-=-
//-------------------------------------------------------------------------
//Variable Declarations:
[/coloradu]
ToDegree = 180/Math.PI;
zeroX = 5000000;
zeroZ = 6600000;
centerX = 11465000-zeroX;
centerZ = 6500000-zeroZ;
pn40x24_X = 4468608.57-zeroX; // point 40dgN : 24dgE
pn40x24_Z = 5730893.72-zeroZ;
pn48x24_X = 5357858.31-zeroX; // point 48dgN : 24dgE
pn48x24_Z = 5828649.53-zeroZ;
pn40x42_X = 4468608.57-zeroX; // point 40dgN : 42dgE
pn40x42_Z = 7269106.20-zeroZ;
pn48x42_X = 5357858.31-zeroX; // point 48dgN : 42dgE
pn48x42_Z = 7171350.00-zeroZ;
// distances from the circle center to 48dgN and 40dgN
lenNorth = Math.sqrt((pn48x24_X-centerX)*(pn48x24_X-centerX)+(pn48x24_Z-centerZ)*(pn48x24_Z-centerZ));
lenSouth = Math.sqrt((pn40x24_X-centerX)*(pn40x24_X-centerX)+(pn40x24_Z-centerZ)*(pn40x24_Z-centerZ));
lenN_S = lenSouth-lenNorth;
RealAngleMaxLongitude = Math.atan((pn40x24_Z-centerZ)/(pn40x24_X-centerX))*ToDegree;
// Map bounds. Degrees!
EndWest = 24;
EndEast = 42;
EndNorth = 48;
EndSouth = 40;
MiddleLongitude = (EndWest+EndEast)/2;
ToLengthN_S = (EndNorth-EndSouth)/lenN_S;
ToAngleW_E = (MiddleLongitude-EndWest)/RealAngleMaxLongitude;
//-----------------------------------------------------------------------------
//function from lat/long to XZ:[/coloradu]
function latlong2xz (inLongitudeGrad,inLatitudeGrad) {
var realAng = (inLongitudeGrad-MiddleLongitude)/ToAngleW_E/ToDegree;
var realLen = lenSouth-(inLatitudeGrad-EndSouth)/ToLengthN_S;
var outX = centerX-realLen*Math.cos(realAng);
var outZ = centerZ+realLen*Math.sin(realAng);
var returns = outX+":"+outZ;
return returns;
}
//-----------------------------------------------------------------------------
//function from XZ to lat/long:[/coloradu]
function xz2latlong (x,z) {
var realAng = Math.atan((z-centerZ)/(centerX-x))
var realLen = Math.sqrt((z-centerZ)*(z-centerZ)+(centerX-x)*(centerX-x))
var LongitudeGrad = realAng * ToAngleW_E * ToDegree + MiddleLongitude
var LatitudeGrad =(lenSouth-realLen) * ToLengthN_S + EndSouth
var returns = LatitudeGrad+":"+LongitudeGrad
return returns;
}
[/quoteadu]
Ich hoffe es hilft... ist in ActionScript umgewndelt... Wie Dirty schon sagt, ich verstehs auch nich so ganz aber ES FUNKTIONIERT...
Falls du LockOn Positionen mal mit ECHTEN Karten vergleichen willst musst du die lat/long auch noch in UTM Koordinaten umrechnen, dafür habe ich dann diese Formel und die hats wirklich in sich:
[/coloradu]
https://www.polymoon.org/tobi/privat/WSG842UTM.swf
^heisst eigentlich WGS84 und nicht WSG84
[quoteadu]/*
original code by
Paul Hastings paul@sustainableGIS.com
29-Aug-2005:
ported to ActionScript by
Tobias Houfek
ibot@snafu.de
zillion@virtual-jabog32.de
*/
// some static vars/required values
iLONGITUDE = 1-1; // cf arrays start at 1...
iLATITUDE = 2-1; // <tobi> Flash Arrays start 0
iEASTING = 1-1;
iNORTHING = 2-1;
//WGS84
semiMajorAxis = 6378137.0;
inverseFlattening = 298.257223563;
a = semiMajorAxis;
f = 1.00 / inverseFlattening;
// UTM Parameters
longitude1 = -177; // Longitude of initial central meridian (Zone one) = 177 degrees west longitude
zoneWidth = 6; // Zone width = 6 degrees
centralScaleFactor = 0.9996;
k0 = centralScaleFactor;
falseEasting = 500000; // False easting = 500,000m
falseNorthing = 0; // False northing in the northern hemisphere, southern = 10,000,000m
e2 = (2 * f) - (f * f); // Eccentricity
e = Math.sqrt(e2);
longitude0West = longitude1 - (zoneWidth * 1.5);
longitude0 = longitude0West + (zoneWidth * 0.5);
projectionName="UTM";
ellipsoidName="WGS84";
errMessages = new Object();
errMessages.NOT_ENOUGH_POINTS_MESSAGE = "ProjectionException: Less than 2 coordinates supplied";
errMessages.INVALID_PROJECTION_NAME_MESAGE = "ProjectionException: unknown projection";
errMessages.UTM_ZONE_NOT_DEFINED_MESSAGE = "ProjectionException: UTM zone not defined";
errMessages.LONGITUDE_OUT_OF_RANGE_MESSAGE = "ProjectionException: longitude out of range";
errMessages.LATITUDE_OUT_OF_RANGE_MESSAGE = "ProjectionException: latitude out of range";
function pow(a,b){
return Math.pow(a, b);
}//pow
function sec(value) {
return 1.0 / Math.cos(value);
} //sec
function toDegrees(radians){
return (radians / Math.PI) * 180.0;
} //toDegrees
function toRadians(degrees) {
return (degrees / 180.0) * Math.PI;
} // toRadians
function getProjectionName(){
var name="";
if (UTMzone == undefined)
trace(errMessages.UTM_ZONE_NOT_DEFINED_MESSAGE);
else {
name=projectionName+" (Zone"+utmZone+")";
return name;
}
}//getProjectionName
function getEllipsoidName(){
return ellipsoidName;
}//getEllipsoidName
function setEllipsoid(ellipsoid){
return EllipsoidName;
}//setEllipsoid
function getUTMzone(){
return UTMzone;
} //getUTMzone
// used for geographic to UTM, calculates somethings about UTM
function setUTMZone(longitude, latitude) {
// make these known to app
var thisZone=0;
var hemisphere="N"; // default hemisphere
if (Math.abs(longitude) > 180)
trace(errMessages.LONGITUDE_OUT_OF_RANGE_MESSAGE+": "+longitude);
if (Math.abs(latitude) > 90)
trace(errMessages.LATITUDE_OUT_OF_RANGE_MESSAGE+": "+latitude);
var thisZoneTest =Math.round(longitude)+180;
thisZone = Math.floor((thisZoneTest / zoneWidth) + 1);
centralMeridian = thisZone * zoneWidth + longitude0;
if (latitude < 0) {
hemisphere = "S";
falseNorthing = 10000000;
}
utmZone = thisZone + hemisphere;
//initErrorMessages();
} //setUTMzone
// used for UTM to geographic, need to know somethings about UTM
function initUTM(zone) {
// make these known to app
var hemisphere="N"; // default hemispehere
var thisZone=0;
if (zone.substr(-1,1) == "S") {
hemisphere="S";
falseNorthing = 10000000;
}
//------------------------Hope it works out------
//<tobi> OMG !! original:
//>>>>>thisZone=rereplace(zone,"N|S","","ALL");<<<<<<<<<
//Flashs string methods are really limited
if(zone.indexOf("N") != -1){
var zoneI=zone.indexOf("N");
}else if(zone.indexOf("S") != -1){
var zoneI=zone.indexOf("S");
}
thisZone = zone.slice(0,zoneI)
//-----------------------------------------------
centralMeridian = thisZone * zoneWidth + longitude0;
utmZone= thisZone + hemisphere;
//initErrorMessages();
} //getUTMzone
function getEasting() {
var easting=0.0;
term1 = (omega[3] / 6.0) * c[3] * (psi[2] - t[3]);
term2 = (omega[5] / 120.0) * c[5] * ( 4 * psi[4] * (1.0 - 6.0 * t[3]) + psi[3] * (1.0 + 8.0 * t[3]) - psi[2] * 2.0 * t[3] + t[5] );
term3 = (omega[7] / 5040.0) * c[7] * (61.0 - 479.0 * t[5] - t[7]);
eDash = (k0 * nu * omega[2] * c[2]) * (1 + term1 + term2 + term3);
easting = eDash + falseEasting;
return easting;
} //geteasting
function getNorthing() {
var northing =0.0;
term1 = (omega[3] / 2.0) * nu * s * c[2];
term2 = (omega[5] / 24.0) * nu * s * c[4] * (4.0 * psi[3] + psi[2] - t[3]);
term3 = (omega[7] / 720.0) * nu * s * c[6] * ( 8.0 * psi[5] * (11.0 - 24.0 * t[3]) - 28.0 * psi[4] * (1.0 - 6.0 * t[3]) + psi[3] * (1.0 - 32.0 * t[3]) - psi[2] * (2.0 * t[3]) + t[5] );
term4 = (omega[9] / 40320.0) * nu * s * c[8] * (1385.0 - 3111.0 * t[3] + 543.0 * t[5] - t[7]);
nDash = k0 * (m + term1 + term2 + term3 + term4);
northing = nDash + falseNorthing;
return northing;
}//getnorthing
function getLatitude() {
var latitude=0.0;
term1 = (tDash[2] / (k0 * rhoDash)) * (eDash * x[2] / 2.0);
term2 = (tDash[2] / (k0 * rhoDash)) * (eDash * x[4] / 24.0) * ( -4.0 * psiDash[3] + 9.0 * psiDash[2] * (1.0 - tDash[3]) + 12.0 * tDash[3] );
term3 = (tDash[2] / (k0 * rhoDash)) * (eDash * x[6] / 720.0) * ( 8.0 * psiDash[5] * (11.0 - 24.0 * tDash[3]) - 12.0 * psiDash[4] * (21.0 - 71.0 * tDash[3]) + 15.0 * psiDash[3] * (15.0 - 98.0 * tDash[3] + 15.0 * tDash[5]) + 180.0 * psiDash[2] * (5.0 * tDash[3] - 3.0 * tDash[5]) + 360.0 * tDash[5] );
term4 = (tDash[2] / (k0 * rhoDash)) * (eDash * x[8] / 40320.0) * (1385.0 + 3633.0 * tDash[3] + 4095.0 * tDash[5] + 1575.0 * tDash[7]);
latitude = phiDash - term1 + term2 - term3 + term4;
return toDegrees(latitude);
} //getLatitude
function getLongitude() {
var longitude=0.0;
var omegaL=0.0; // "global" omega is array
if (centralMeridian == undefined)
trace(errMessages.UTM_ZONE_NOT_DEFINED_MESSAGE);
term1 = x[2] * secDash;
term2 = (x[4] / 6.0) * secDash * (psiDash[2] + 2.0 * tDash[3]);
term3 = (x[6] / 120.0) * secDash * ( -4.0 * psiDash[4] * (1.0 - 6.0 * tDash[3]) + psiDash[3] * (9.0 - 68.0 * tDash[3]) + 72.0 * psiDash[2] * tDash[3] + 24.0 * tDash[5] );
term4 = (x[8] / 5040.0) * secDash * (61.0 + 662.0 * tDash[3] + 1320.0 * tDash[5] + 720.0 * tDash[7]);
omegaL = term1 - term2 + term3 - term4;
longitude = toRadians(centralMeridian) + omegaL;
return toDegrees(longitude);
} //getLongitude
function meridianDistance(phi) {
var A0 = 1.0 - (e2 / 4.0) - (3.0 * e2*e2 / 64.0) - (5.0 * e2*e2*e2 / 256.0);
var A2 = (3.0/8.0) * (e2 + e2*e2 / 4.0 + 15.0 * e2*e2*e2 / 128.0);
var A4 = (15.0/256.0) * (e2*e2 + 3.0 * e2*e2*e2 / 4.0);
var A6 = 35.0 * e2*e2*e2 / 3072.0;
var mM = 0.0;
mM = a * ( (A0 * phi) - A2 * Math.sin(2.0 * phi) + A4 * Math.sin(4.0 * phi) - A6 * Math.sin(6.0 * phi) );
return mM;
} //meridianDistance
function footPointLatitude(mM) {
var n = f / (2.0 - f);
var n2 = n*n;
var n3 = n2*n;
var n4 = n3*n;
var phiDash=0.0;
var G = a * (1.0 - n) * (1.0 - n2) * (1.0 + (9.0/4.0) * n2 + (225.0/64.0) * n4) * (Math.PI/180.0);
var sigma = (mM * Math.PI) / (180.0 * G);
phiDash = sigma + ((3.0 * n / 2.0) - (27.0 * n3 / 32.0)) * Math.sin(2.0 * sigma) + ((21.0 * n2 / 16.0) - (55.0 * n4 / 32.0)) * Math.sin(4.0 * sigma) + (151.0 * n3 / 96.0) * Math.sin(6.0 * sigma) + (1097.0 * n4 / 512.0) * Math.sin(8.0 * sigma);
return phiDash;
} //footPointLatitude
function RoC(s,returnWhat) {
var rho = a * (1.0 - e2) / pow(1.0 - (e2 * s), 1.5);
var nu = a / pow((1.0 - e2 * s), 0.5);
var psi = nu / rho;
if (returnWhat == "rho") return rho;
if (returnWhat == "Nu") return Nu;
if (returnWhat == "Psi") return psi;
} //RoC
function GeographicalToGrid(latitude, longitude) {
var latRadians = toRadians(latitude);
if (centralMeridian == undefined)
trace(errMessages.UTM_ZONE_NOT_DEFINED_MESSAGE);
// calculate cos^n(latitude) for n in (1..7)
c = new Array;
c[1] = 1.0;
c[2] = Math.cos(latRadians);
c[3] = c[2] * c[2];
c[4] = c[3] * c[2];
c[5] = c[4] * c[2];
c[6] = c[5] * c[2];
c[7] = c[6] * c[2];
c[8] = c[7] * c[2];
t = new Array;
t[1] = 1.0;
t[2] = Math.tan(latRadians);
t[3] = t[2] * t[2];
t[4] = t[3] * t[2];
t[5] = t[4] * t[2];
t[6] = t[5] * t[2];
t[7] = t[6] * t[2];
omega = new Array;
omega[1] = 1.0;
omega[2] = toRadians(longitude - centralMeridian);
omega[3] = omega[2] * omega[2];
omega[4] = omega[3] * omega[2];
omega[5] = omega[4] * omega[2];
omega[6] = omega[5] * omega[2];
omega[7] = omega[6] * omega[2];
omega[8] = omega[7] * omega[2];
omega[9] = omega[8] * omega[2];
s = Math.sin(latRadians);
nu = RoC(s*s,"Nu");
psi = new Array;
psi[1] = 1.0;
psi[2] = RoC(s*s,"Psi");
psi[3] = psi[2] * psi[2];
psi[4] = psi[3] * psi[2];
psi[5] = psi[4] * psi[2];
m = meridianDistance(latRadians);
} //GeographicalToGrid
function GridToGeographical(easting,northing) {
nDash = northing - falseNorthing;
m = nDash / k0;
phiDash = footPointLatitude(m);
tDash = new Array;
tDash[1] = 1.0;
tDash[2] = Math.tan(phiDash);
tDash[3] = tDash[2] * tDash[2];
tDash[4] = tDash[3] * tDash[2];
tDash[5] = tDash[4] * tDash[2];
tDash[6] = tDash[5] * tDash[2];
tDash[7] = tDash[6] * tDash[2];
sDash = Math.sin(phiDash);
rhoDash = RoC(sDash*sDash,"rho");
nuDash = RoC(sDash*sDash,"Nu");
psiDash = new Array;
psiDash[1] = 1.0;
psiDash[2] = RoC(sDash*sDash,"Psi");
psiDash[3] = psiDash[2] * psiDash[2];
psiDash[4] = psiDash[3] * psiDash[3];
psiDash[5] = psiDash[4] * psiDash[2];
eDash = easting - falseEasting;
x = new Array;
x[1] = 1.0;
x[2] = eDash / (k0 * nuDash);
x[3] = x[2] * x[2];
x[4] = x[3] * x[2];
x[5] = x[4] * x[2];
x[6] = x[5] * x[3];
x[7] = x[6] * x[2];
x[8] = x[7] * x[2];
secDash = sec(phiDash);
} // GridToGeographical
function getGridConvergence() {
var gamma = 0.0;
term1 = -omega[2] * s;
term2 = (omega[4] / 3.0) * s * c[3] * (2 * psi[3] - psi[2]);
term3 = (omega[6] / 15.0) * s * c[5] * (psi[5] * (11.0 - 24.0 * t[3]) - psi[4] * (11.0 - 36.0 * t[3]) + 2 * psi[3] * (1.0 - 7.0 * t[3]) + psi[2] * t[3]);
term4 = (omega[8] / 315.0) * s * c[7] * (17.0 - 26.0 * t[3] + 2.0 * t[5]);
gamma = term1 + term2 + term3 + term4;
return gamma;
} //getGridConvergence
function getPointScaleFactorGeo() {
// GeographicalToGrid
var k=0.0;
term1 = (omega[3] / 2.0) * psi[2] * c[3];
term2 = (omega[5] / 24.0) * c[5] * ( 4 * psi[4] * (1.0 - 6.0 * t[3]) + psi[3] * (1.0 + 24.0 * t[3]) - 4.0 * psi[2] * t[3] );
term3 = (omega[7] / 720.0) * c[7] * (61.0 - 148.0 * t[3] + 16.0 * t[5]);
k = k0 + k0 * term1 + k0 * term2 + k0 * term3;
return k;
} //getPointScaleFactorGeo
function getPointScaleFactorGrid() {
// GridToGeographical
var k=0.0;
var x = eDash*eDash / (k0*k0 * rhoDash * nuDash);
var x2 = x*x;
var x3 = x2*x;
term1 = x / 2.0;
term2 = (x2 / 24.0) * ( 4.0 * psiDash[2] * (1.0 - 6.0 * tDash[3]) - 3.0 * (1.0 - 16.0 * tDash[3]) - 24.0 * tDash[3] / psiDash[2] );
term3 = x3 / 720.0;
k = k0 + k0 * term1 + k0 * term2 + k0 * term3;
return k;
} //getPointScaleFactor
function projectionToGeographic(points){
//var i = 0;
for (var i=0; i<points.length; i++) {
if (points.length < 2) {
trace(errMessages.NOT_ENOUGH_POINTS_MESSAGE+": "+i);
}
GridToGeographical(points[iEASTING], points[iNORTHING]);
points[iLONGITUDE] = getLongitude();
points[iLATITUDE] = getLatitude();
}
return points;
} //projectionToGeographic
function geographicToProjection(points){
//var i = 0;
for (var i=0; i<points.length; i++) {
if (points.length < 2) {
trace(errMessages.NOT_ENOUGH_POINTS_MESSAGE+": "+i);
}
GeographicalToGrid(points[iLATITUDE], points[iLONGITUDE]);
points[iEASTING] = getEasting();
points[iNORTHING] = getNorthing();
}
return points;
} //geographicToProjection
//hier wird nur meine Flash datei vorbereitet
locations = new Array;
locations[0]="Philadelphia;18N;-75.25,39.96"
locations[1]="Torshavn;29N;-6.79,62.09"
locations[2]="Mbandaka;34N;18.25,0.09"
locations[3]="Bangkok;47N;100.52,13.75"
locations[4]="Chumporn;47N;99.07,10.65"
locations[5]="Hobart;55S;147.14,-42.68"
locations[6]="Melbourne;55S;145.02,-37.76"
locations[7]="Adelaide;54S;138.48,-34.66"
locations[8]="Alice Springs;53S;133.84,-23.55"
locations[9]="Darwin;52S;130.81,-12.29"
locations[10]="Brisbane;56S;153.05,-27.42"
locations[11]="Freemantle;50S;115.92,-32.03"
locations[12]="Perth;50S;115.85,-31.95"
locations[13]="Shackleton Ice Shelf;47S;100.30,-67.79"
locations[14]="Astrolabe Glacier;54S;140.28,-66.78"
locations[15]="Dibble Iceberg Tongue;53S;134.75,-65.27"
locations[16]="Thompson Glacier;51S;123.62,-66.78"
locations[17]="Humboldt Mountains;32S;11.44,-72.07"
locationsCombo.addItem("Philadelphia");
locationsCombo.addItem("Torshavn");
locationsCombo.addItem("Mbandaka");
locationsCombo.addItem("Bangkok");
locationsCombo.addItem("Chumporn");
locationsCombo.addItem("Hobart");
locationsCombo.addItem("Melbourne");
locationsCombo.addItem("Adelaide");
locationsCombo.addItem("Alice Springs");
locationsCombo.addItem("Darwin");
locationsCombo.addItem("Brisbane");
locationsCombo.addItem("Freemantle");
locationsCombo.addItem("Perth");
locationsCombo.addItem("Shackleton Ice Shelf");
locationsCombo.addItem("Astrolabe Glacier");
locationsCombo.addItem("Dibble Iceberg Tongue");
locationsCombo.addItem("Thompson Glacier");
locationsCombo.addItem("Humboldt Mountains");
[/coloradu]
//hier wird dann erst die ganze Grütze aufgerufen
function calculate() {
var indexer = locationsCombo.getSelectedIndex();
var PData = locations[indexer].split(";");
var placename=Pdata[0];
var orgZone=Pdata[1];
var somePoints=Pdata[2];
var somePointsSplit=somePoints.split(",");
latlong = new Array;
latlong.push(somePointsSplit);
testPoints = new Array;
testPoints.push(somePointsSplit);
setUTMZone(latlong[0][0],latlong[0][1]); //get UTM zone from this lat/long
newUTMPoints=geographicToProjection(testPoints);
gC=getGridConvergence();
// now lets round trip those UTM points
newLLpoints= new Array;
x=newUTMPoints[0];
newLLpoints[0]=x[0];
newLLpoints[1]=x[1];
testPoints= new Array;
testPoints[0] = new Array;
testPoints[0][0]=newLLpoints[0];
testPoints[0][1]=newLLpoints[1];
initUTM(UTMzone);
newLLPoints=projectiontoGeographic(testPoints);
Xresult = latlong[0][0];
Yresult = latlong[0][1];
}[/coloradu]
[/quoteadu]
PS: Wenn ihr wollt bauen wir ein klick auf die Karte, mache mission und Flugplan Programm, da hätte ich Spass dran...
Hier die Umrechnung:
Die Formel von Lockon XZ zu lat/long und wieder zurück lautet wie folgt:
https://www.polymoon.org/tobi/privat/latlong2xz.zip
[quoteadu]
//original code by Valery from Eagle Dynaics=-=-=-=-=-=-
//-------------------------------------------------------------------------
//Variable Declarations:
[/coloradu]
ToDegree = 180/Math.PI;
zeroX = 5000000;
zeroZ = 6600000;
centerX = 11465000-zeroX;
centerZ = 6500000-zeroZ;
pn40x24_X = 4468608.57-zeroX; // point 40dgN : 24dgE
pn40x24_Z = 5730893.72-zeroZ;
pn48x24_X = 5357858.31-zeroX; // point 48dgN : 24dgE
pn48x24_Z = 5828649.53-zeroZ;
pn40x42_X = 4468608.57-zeroX; // point 40dgN : 42dgE
pn40x42_Z = 7269106.20-zeroZ;
pn48x42_X = 5357858.31-zeroX; // point 48dgN : 42dgE
pn48x42_Z = 7171350.00-zeroZ;
// distances from the circle center to 48dgN and 40dgN
lenNorth = Math.sqrt((pn48x24_X-centerX)*(pn48x24_X-centerX)+(pn48x24_Z-centerZ)*(pn48x24_Z-centerZ));
lenSouth = Math.sqrt((pn40x24_X-centerX)*(pn40x24_X-centerX)+(pn40x24_Z-centerZ)*(pn40x24_Z-centerZ));
lenN_S = lenSouth-lenNorth;
RealAngleMaxLongitude = Math.atan((pn40x24_Z-centerZ)/(pn40x24_X-centerX))*ToDegree;
// Map bounds. Degrees!
EndWest = 24;
EndEast = 42;
EndNorth = 48;
EndSouth = 40;
MiddleLongitude = (EndWest+EndEast)/2;
ToLengthN_S = (EndNorth-EndSouth)/lenN_S;
ToAngleW_E = (MiddleLongitude-EndWest)/RealAngleMaxLongitude;
//-----------------------------------------------------------------------------
//function from lat/long to XZ:[/coloradu]
function latlong2xz (inLongitudeGrad,inLatitudeGrad) {
var realAng = (inLongitudeGrad-MiddleLongitude)/ToAngleW_E/ToDegree;
var realLen = lenSouth-(inLatitudeGrad-EndSouth)/ToLengthN_S;
var outX = centerX-realLen*Math.cos(realAng);
var outZ = centerZ+realLen*Math.sin(realAng);
var returns = outX+":"+outZ;
return returns;
}
//-----------------------------------------------------------------------------
//function from XZ to lat/long:[/coloradu]
function xz2latlong (x,z) {
var realAng = Math.atan((z-centerZ)/(centerX-x))
var realLen = Math.sqrt((z-centerZ)*(z-centerZ)+(centerX-x)*(centerX-x))
var LongitudeGrad = realAng * ToAngleW_E * ToDegree + MiddleLongitude
var LatitudeGrad =(lenSouth-realLen) * ToLengthN_S + EndSouth
var returns = LatitudeGrad+":"+LongitudeGrad
return returns;
}
[/quoteadu]
Ich hoffe es hilft... ist in ActionScript umgewndelt... Wie Dirty schon sagt, ich verstehs auch nich so ganz aber ES FUNKTIONIERT...
Falls du LockOn Positionen mal mit ECHTEN Karten vergleichen willst musst du die lat/long auch noch in UTM Koordinaten umrechnen, dafür habe ich dann diese Formel und die hats wirklich in sich:
[/coloradu]
https://www.polymoon.org/tobi/privat/WSG842UTM.swf
^heisst eigentlich WGS84 und nicht WSG84
[quoteadu]/*
original code by
Paul Hastings paul@sustainableGIS.com
29-Aug-2005:
ported to ActionScript by
Tobias Houfek
ibot@snafu.de
zillion@virtual-jabog32.de
*/
// some static vars/required values
iLONGITUDE = 1-1; // cf arrays start at 1...
iLATITUDE = 2-1; // <tobi> Flash Arrays start 0
iEASTING = 1-1;
iNORTHING = 2-1;
//WGS84
semiMajorAxis = 6378137.0;
inverseFlattening = 298.257223563;
a = semiMajorAxis;
f = 1.00 / inverseFlattening;
// UTM Parameters
longitude1 = -177; // Longitude of initial central meridian (Zone one) = 177 degrees west longitude
zoneWidth = 6; // Zone width = 6 degrees
centralScaleFactor = 0.9996;
k0 = centralScaleFactor;
falseEasting = 500000; // False easting = 500,000m
falseNorthing = 0; // False northing in the northern hemisphere, southern = 10,000,000m
e2 = (2 * f) - (f * f); // Eccentricity
e = Math.sqrt(e2);
longitude0West = longitude1 - (zoneWidth * 1.5);
longitude0 = longitude0West + (zoneWidth * 0.5);
projectionName="UTM";
ellipsoidName="WGS84";
errMessages = new Object();
errMessages.NOT_ENOUGH_POINTS_MESSAGE = "ProjectionException: Less than 2 coordinates supplied";
errMessages.INVALID_PROJECTION_NAME_MESAGE = "ProjectionException: unknown projection";
errMessages.UTM_ZONE_NOT_DEFINED_MESSAGE = "ProjectionException: UTM zone not defined";
errMessages.LONGITUDE_OUT_OF_RANGE_MESSAGE = "ProjectionException: longitude out of range";
errMessages.LATITUDE_OUT_OF_RANGE_MESSAGE = "ProjectionException: latitude out of range";
function pow(a,b){
return Math.pow(a, b);
}//pow
function sec(value) {
return 1.0 / Math.cos(value);
} //sec
function toDegrees(radians){
return (radians / Math.PI) * 180.0;
} //toDegrees
function toRadians(degrees) {
return (degrees / 180.0) * Math.PI;
} // toRadians
function getProjectionName(){
var name="";
if (UTMzone == undefined)
trace(errMessages.UTM_ZONE_NOT_DEFINED_MESSAGE);
else {
name=projectionName+" (Zone"+utmZone+")";
return name;
}
}//getProjectionName
function getEllipsoidName(){
return ellipsoidName;
}//getEllipsoidName
function setEllipsoid(ellipsoid){
return EllipsoidName;
}//setEllipsoid
function getUTMzone(){
return UTMzone;
} //getUTMzone
// used for geographic to UTM, calculates somethings about UTM
function setUTMZone(longitude, latitude) {
// make these known to app
var thisZone=0;
var hemisphere="N"; // default hemisphere
if (Math.abs(longitude) > 180)
trace(errMessages.LONGITUDE_OUT_OF_RANGE_MESSAGE+": "+longitude);
if (Math.abs(latitude) > 90)
trace(errMessages.LATITUDE_OUT_OF_RANGE_MESSAGE+": "+latitude);
var thisZoneTest =Math.round(longitude)+180;
thisZone = Math.floor((thisZoneTest / zoneWidth) + 1);
centralMeridian = thisZone * zoneWidth + longitude0;
if (latitude < 0) {
hemisphere = "S";
falseNorthing = 10000000;
}
utmZone = thisZone + hemisphere;
//initErrorMessages();
} //setUTMzone
// used for UTM to geographic, need to know somethings about UTM
function initUTM(zone) {
// make these known to app
var hemisphere="N"; // default hemispehere
var thisZone=0;
if (zone.substr(-1,1) == "S") {
hemisphere="S";
falseNorthing = 10000000;
}
//------------------------Hope it works out------
//<tobi> OMG !! original:
//>>>>>thisZone=rereplace(zone,"N|S","","ALL");<<<<<<<<<
//Flashs string methods are really limited
if(zone.indexOf("N") != -1){
var zoneI=zone.indexOf("N");
}else if(zone.indexOf("S") != -1){
var zoneI=zone.indexOf("S");
}
thisZone = zone.slice(0,zoneI)
//-----------------------------------------------
centralMeridian = thisZone * zoneWidth + longitude0;
utmZone= thisZone + hemisphere;
//initErrorMessages();
} //getUTMzone
function getEasting() {
var easting=0.0;
term1 = (omega[3] / 6.0) * c[3] * (psi[2] - t[3]);
term2 = (omega[5] / 120.0) * c[5] * ( 4 * psi[4] * (1.0 - 6.0 * t[3]) + psi[3] * (1.0 + 8.0 * t[3]) - psi[2] * 2.0 * t[3] + t[5] );
term3 = (omega[7] / 5040.0) * c[7] * (61.0 - 479.0 * t[5] - t[7]);
eDash = (k0 * nu * omega[2] * c[2]) * (1 + term1 + term2 + term3);
easting = eDash + falseEasting;
return easting;
} //geteasting
function getNorthing() {
var northing =0.0;
term1 = (omega[3] / 2.0) * nu * s * c[2];
term2 = (omega[5] / 24.0) * nu * s * c[4] * (4.0 * psi[3] + psi[2] - t[3]);
term3 = (omega[7] / 720.0) * nu * s * c[6] * ( 8.0 * psi[5] * (11.0 - 24.0 * t[3]) - 28.0 * psi[4] * (1.0 - 6.0 * t[3]) + psi[3] * (1.0 - 32.0 * t[3]) - psi[2] * (2.0 * t[3]) + t[5] );
term4 = (omega[9] / 40320.0) * nu * s * c[8] * (1385.0 - 3111.0 * t[3] + 543.0 * t[5] - t[7]);
nDash = k0 * (m + term1 + term2 + term3 + term4);
northing = nDash + falseNorthing;
return northing;
}//getnorthing
function getLatitude() {
var latitude=0.0;
term1 = (tDash[2] / (k0 * rhoDash)) * (eDash * x[2] / 2.0);
term2 = (tDash[2] / (k0 * rhoDash)) * (eDash * x[4] / 24.0) * ( -4.0 * psiDash[3] + 9.0 * psiDash[2] * (1.0 - tDash[3]) + 12.0 * tDash[3] );
term3 = (tDash[2] / (k0 * rhoDash)) * (eDash * x[6] / 720.0) * ( 8.0 * psiDash[5] * (11.0 - 24.0 * tDash[3]) - 12.0 * psiDash[4] * (21.0 - 71.0 * tDash[3]) + 15.0 * psiDash[3] * (15.0 - 98.0 * tDash[3] + 15.0 * tDash[5]) + 180.0 * psiDash[2] * (5.0 * tDash[3] - 3.0 * tDash[5]) + 360.0 * tDash[5] );
term4 = (tDash[2] / (k0 * rhoDash)) * (eDash * x[8] / 40320.0) * (1385.0 + 3633.0 * tDash[3] + 4095.0 * tDash[5] + 1575.0 * tDash[7]);
latitude = phiDash - term1 + term2 - term3 + term4;
return toDegrees(latitude);
} //getLatitude
function getLongitude() {
var longitude=0.0;
var omegaL=0.0; // "global" omega is array
if (centralMeridian == undefined)
trace(errMessages.UTM_ZONE_NOT_DEFINED_MESSAGE);
term1 = x[2] * secDash;
term2 = (x[4] / 6.0) * secDash * (psiDash[2] + 2.0 * tDash[3]);
term3 = (x[6] / 120.0) * secDash * ( -4.0 * psiDash[4] * (1.0 - 6.0 * tDash[3]) + psiDash[3] * (9.0 - 68.0 * tDash[3]) + 72.0 * psiDash[2] * tDash[3] + 24.0 * tDash[5] );
term4 = (x[8] / 5040.0) * secDash * (61.0 + 662.0 * tDash[3] + 1320.0 * tDash[5] + 720.0 * tDash[7]);
omegaL = term1 - term2 + term3 - term4;
longitude = toRadians(centralMeridian) + omegaL;
return toDegrees(longitude);
} //getLongitude
function meridianDistance(phi) {
var A0 = 1.0 - (e2 / 4.0) - (3.0 * e2*e2 / 64.0) - (5.0 * e2*e2*e2 / 256.0);
var A2 = (3.0/8.0) * (e2 + e2*e2 / 4.0 + 15.0 * e2*e2*e2 / 128.0);
var A4 = (15.0/256.0) * (e2*e2 + 3.0 * e2*e2*e2 / 4.0);
var A6 = 35.0 * e2*e2*e2 / 3072.0;
var mM = 0.0;
mM = a * ( (A0 * phi) - A2 * Math.sin(2.0 * phi) + A4 * Math.sin(4.0 * phi) - A6 * Math.sin(6.0 * phi) );
return mM;
} //meridianDistance
function footPointLatitude(mM) {
var n = f / (2.0 - f);
var n2 = n*n;
var n3 = n2*n;
var n4 = n3*n;
var phiDash=0.0;
var G = a * (1.0 - n) * (1.0 - n2) * (1.0 + (9.0/4.0) * n2 + (225.0/64.0) * n4) * (Math.PI/180.0);
var sigma = (mM * Math.PI) / (180.0 * G);
phiDash = sigma + ((3.0 * n / 2.0) - (27.0 * n3 / 32.0)) * Math.sin(2.0 * sigma) + ((21.0 * n2 / 16.0) - (55.0 * n4 / 32.0)) * Math.sin(4.0 * sigma) + (151.0 * n3 / 96.0) * Math.sin(6.0 * sigma) + (1097.0 * n4 / 512.0) * Math.sin(8.0 * sigma);
return phiDash;
} //footPointLatitude
function RoC(s,returnWhat) {
var rho = a * (1.0 - e2) / pow(1.0 - (e2 * s), 1.5);
var nu = a / pow((1.0 - e2 * s), 0.5);
var psi = nu / rho;
if (returnWhat == "rho") return rho;
if (returnWhat == "Nu") return Nu;
if (returnWhat == "Psi") return psi;
} //RoC
function GeographicalToGrid(latitude, longitude) {
var latRadians = toRadians(latitude);
if (centralMeridian == undefined)
trace(errMessages.UTM_ZONE_NOT_DEFINED_MESSAGE);
// calculate cos^n(latitude) for n in (1..7)
c = new Array;
c[1] = 1.0;
c[2] = Math.cos(latRadians);
c[3] = c[2] * c[2];
c[4] = c[3] * c[2];
c[5] = c[4] * c[2];
c[6] = c[5] * c[2];
c[7] = c[6] * c[2];
c[8] = c[7] * c[2];
t = new Array;
t[1] = 1.0;
t[2] = Math.tan(latRadians);
t[3] = t[2] * t[2];
t[4] = t[3] * t[2];
t[5] = t[4] * t[2];
t[6] = t[5] * t[2];
t[7] = t[6] * t[2];
omega = new Array;
omega[1] = 1.0;
omega[2] = toRadians(longitude - centralMeridian);
omega[3] = omega[2] * omega[2];
omega[4] = omega[3] * omega[2];
omega[5] = omega[4] * omega[2];
omega[6] = omega[5] * omega[2];
omega[7] = omega[6] * omega[2];
omega[8] = omega[7] * omega[2];
omega[9] = omega[8] * omega[2];
s = Math.sin(latRadians);
nu = RoC(s*s,"Nu");
psi = new Array;
psi[1] = 1.0;
psi[2] = RoC(s*s,"Psi");
psi[3] = psi[2] * psi[2];
psi[4] = psi[3] * psi[2];
psi[5] = psi[4] * psi[2];
m = meridianDistance(latRadians);
} //GeographicalToGrid
function GridToGeographical(easting,northing) {
nDash = northing - falseNorthing;
m = nDash / k0;
phiDash = footPointLatitude(m);
tDash = new Array;
tDash[1] = 1.0;
tDash[2] = Math.tan(phiDash);
tDash[3] = tDash[2] * tDash[2];
tDash[4] = tDash[3] * tDash[2];
tDash[5] = tDash[4] * tDash[2];
tDash[6] = tDash[5] * tDash[2];
tDash[7] = tDash[6] * tDash[2];
sDash = Math.sin(phiDash);
rhoDash = RoC(sDash*sDash,"rho");
nuDash = RoC(sDash*sDash,"Nu");
psiDash = new Array;
psiDash[1] = 1.0;
psiDash[2] = RoC(sDash*sDash,"Psi");
psiDash[3] = psiDash[2] * psiDash[2];
psiDash[4] = psiDash[3] * psiDash[3];
psiDash[5] = psiDash[4] * psiDash[2];
eDash = easting - falseEasting;
x = new Array;
x[1] = 1.0;
x[2] = eDash / (k0 * nuDash);
x[3] = x[2] * x[2];
x[4] = x[3] * x[2];
x[5] = x[4] * x[2];
x[6] = x[5] * x[3];
x[7] = x[6] * x[2];
x[8] = x[7] * x[2];
secDash = sec(phiDash);
} // GridToGeographical
function getGridConvergence() {
var gamma = 0.0;
term1 = -omega[2] * s;
term2 = (omega[4] / 3.0) * s * c[3] * (2 * psi[3] - psi[2]);
term3 = (omega[6] / 15.0) * s * c[5] * (psi[5] * (11.0 - 24.0 * t[3]) - psi[4] * (11.0 - 36.0 * t[3]) + 2 * psi[3] * (1.0 - 7.0 * t[3]) + psi[2] * t[3]);
term4 = (omega[8] / 315.0) * s * c[7] * (17.0 - 26.0 * t[3] + 2.0 * t[5]);
gamma = term1 + term2 + term3 + term4;
return gamma;
} //getGridConvergence
function getPointScaleFactorGeo() {
// GeographicalToGrid
var k=0.0;
term1 = (omega[3] / 2.0) * psi[2] * c[3];
term2 = (omega[5] / 24.0) * c[5] * ( 4 * psi[4] * (1.0 - 6.0 * t[3]) + psi[3] * (1.0 + 24.0 * t[3]) - 4.0 * psi[2] * t[3] );
term3 = (omega[7] / 720.0) * c[7] * (61.0 - 148.0 * t[3] + 16.0 * t[5]);
k = k0 + k0 * term1 + k0 * term2 + k0 * term3;
return k;
} //getPointScaleFactorGeo
function getPointScaleFactorGrid() {
// GridToGeographical
var k=0.0;
var x = eDash*eDash / (k0*k0 * rhoDash * nuDash);
var x2 = x*x;
var x3 = x2*x;
term1 = x / 2.0;
term2 = (x2 / 24.0) * ( 4.0 * psiDash[2] * (1.0 - 6.0 * tDash[3]) - 3.0 * (1.0 - 16.0 * tDash[3]) - 24.0 * tDash[3] / psiDash[2] );
term3 = x3 / 720.0;
k = k0 + k0 * term1 + k0 * term2 + k0 * term3;
return k;
} //getPointScaleFactor
function projectionToGeographic(points){
//var i = 0;
for (var i=0; i<points.length; i++) {
if (points.length < 2) {
trace(errMessages.NOT_ENOUGH_POINTS_MESSAGE+": "+i);
}
GridToGeographical(points[iEASTING], points[iNORTHING]);
points[iLONGITUDE] = getLongitude();
points[iLATITUDE] = getLatitude();
}
return points;
} //projectionToGeographic
function geographicToProjection(points){
//var i = 0;
for (var i=0; i<points.length; i++) {
if (points.length < 2) {
trace(errMessages.NOT_ENOUGH_POINTS_MESSAGE+": "+i);
}
GeographicalToGrid(points[iLATITUDE], points[iLONGITUDE]);
points[iEASTING] = getEasting();
points[iNORTHING] = getNorthing();
}
return points;
} //geographicToProjection
//hier wird nur meine Flash datei vorbereitet
locations = new Array;
locations[0]="Philadelphia;18N;-75.25,39.96"
locations[1]="Torshavn;29N;-6.79,62.09"
locations[2]="Mbandaka;34N;18.25,0.09"
locations[3]="Bangkok;47N;100.52,13.75"
locations[4]="Chumporn;47N;99.07,10.65"
locations[5]="Hobart;55S;147.14,-42.68"
locations[6]="Melbourne;55S;145.02,-37.76"
locations[7]="Adelaide;54S;138.48,-34.66"
locations[8]="Alice Springs;53S;133.84,-23.55"
locations[9]="Darwin;52S;130.81,-12.29"
locations[10]="Brisbane;56S;153.05,-27.42"
locations[11]="Freemantle;50S;115.92,-32.03"
locations[12]="Perth;50S;115.85,-31.95"
locations[13]="Shackleton Ice Shelf;47S;100.30,-67.79"
locations[14]="Astrolabe Glacier;54S;140.28,-66.78"
locations[15]="Dibble Iceberg Tongue;53S;134.75,-65.27"
locations[16]="Thompson Glacier;51S;123.62,-66.78"
locations[17]="Humboldt Mountains;32S;11.44,-72.07"
locationsCombo.addItem("Philadelphia");
locationsCombo.addItem("Torshavn");
locationsCombo.addItem("Mbandaka");
locationsCombo.addItem("Bangkok");
locationsCombo.addItem("Chumporn");
locationsCombo.addItem("Hobart");
locationsCombo.addItem("Melbourne");
locationsCombo.addItem("Adelaide");
locationsCombo.addItem("Alice Springs");
locationsCombo.addItem("Darwin");
locationsCombo.addItem("Brisbane");
locationsCombo.addItem("Freemantle");
locationsCombo.addItem("Perth");
locationsCombo.addItem("Shackleton Ice Shelf");
locationsCombo.addItem("Astrolabe Glacier");
locationsCombo.addItem("Dibble Iceberg Tongue");
locationsCombo.addItem("Thompson Glacier");
locationsCombo.addItem("Humboldt Mountains");
[/coloradu]
//hier wird dann erst die ganze Grütze aufgerufen
function calculate() {
var indexer = locationsCombo.getSelectedIndex();
var PData = locations[indexer].split(";");
var placename=Pdata[0];
var orgZone=Pdata[1];
var somePoints=Pdata[2];
var somePointsSplit=somePoints.split(",");
latlong = new Array;
latlong.push(somePointsSplit);
testPoints = new Array;
testPoints.push(somePointsSplit);
setUTMZone(latlong[0][0],latlong[0][1]); //get UTM zone from this lat/long
newUTMPoints=geographicToProjection(testPoints);
gC=getGridConvergence();
// now lets round trip those UTM points
newLLpoints= new Array;
x=newUTMPoints[0];
newLLpoints[0]=x[0];
newLLpoints[1]=x[1];
testPoints= new Array;
testPoints[0] = new Array;
testPoints[0][0]=newLLpoints[0];
testPoints[0][1]=newLLpoints[1];
initUTM(UTMzone);
newLLPoints=projectiontoGeographic(testPoints);
Xresult = latlong[0][0];
Yresult = latlong[0][1];
}[/coloradu]
[/quoteadu]
PS: Wenn ihr wollt bauen wir ein klick auf die Karte, mache mission und Flugplan Programm, da hätte ich Spass dran...
- JaBoG32_Laud
- Professional
- Beiträge: 5240
- Registriert: 24. Nov 2003, 14:05
-
- Schaut öfter mal vorbei
- Beiträge: 29
- Registriert: 27. Aug 2005, 07:20
JaBoG32_Zillion hat geschrieben:Kannst du mir mal erklären wie du die .mis dateien in eine XML verwandelst ?[/quotemyk]
Da hat mich Dirty 'drauf gebracht: Die mis-Datei enthält ab einer bestimmten Stelle nur noch ASCII-Zeichen:
- [*myk]Suche einen String in der Form "[bmyk]<LockOn_Mission[/bmyk] MissionID="1">"[/*:mmyk]
[*myk]Speichere ab da alles in eine Datei[/*:mmyk]
[*myk]Diese ist dann schon als XML lesbar[/*:mmyk][/listmyk]
Ich mach' das momentan halt von Hand. Ist aber mit dem richtigen Editor sehr einfach.
Danke für die Formeln. Ich bin erst mal platt!!!!
Habe diesen Monat noch viel zu tun, aber im nächsten Monat würde ich mich mal der Sache annehmen.
-
- Site Admin
- Beiträge: 6858
- Registriert: 15. Jun 2003, 16:43
Ich persönlich hab noch nie mit XML gearbeitet, aber soweit Ich weiß bietet php schöne XML Parserfunktionen. Evtl. ist da was dabei, dass dir die Arbeit erleichtern würde?
https://de2.php.net/manual/de/ref.xml.php
EDIT: Geh am Anfang auf jeden Fall mit substr() über das Logfile und lass die ersten paar Zeichen weg... Dieses doofe Binärzeugsel könnte glaub sonst etliche Parse-Error hervorrufen.
https://de2.php.net/manual/de/ref.xml.php
EDIT: Geh am Anfang auf jeden Fall mit substr() über das Logfile und lass die ersten paar Zeichen weg... Dieses doofe Binärzeugsel könnte glaub sonst etliche Parse-Error hervorrufen.
2. JaBoG32 "Fighting Wildcats"
Gruß, Chrissi aka Kichi
Our Dreams are Wings
Gruß, Chrissi aka Kichi
Our Dreams are Wings
-
- Schaut öfter mal vorbei
- Beiträge: 29
- Registriert: 27. Aug 2005, 07:20
JaBoG32_Chrissi hat geschrieben:Ich persönlich hab noch nie mit XML gearbeitet, aber soweit Ich weiß bietet php schöne XML Parserfunktionen. Evtl. ist da was dabei, dass dir die Arbeit erleichtern würde? [/quotewjo]
Ich auch nicht
Die Frage der Programmiersprache habe ich auch noch nicht geklärt. Da ich kein Windows-Programmierer bin, ist es mir eigentlich egal. Sollte 'Standard' sein. Können wir gerne mal zusammen diskutieren, was hier Sinn macht.
[listwjo][*wjo]Zum einen ist die Parserfunktion für XML der Punkt (wobei ich mir keine Sprache, d.h. Entwicklungsumgebung, mehr denken kann, die da heute noch nichts bietet)[/*:mwjo]
[*wjo]Aber dann ist da noch die Reportausgabe: das Ganze soll ja einigermaßen formatiert und druckbar sein.[/*:mwjo]
[*wjo]Dann wäre da noch die Frage, ob das Ganze auch Online laufen können muss. Seh' ich noch nicht. Aber wenn ich mir ansehe, was ihr alles auf die Beine gestellt habt (Respekt!), dann ist die Vorstellung prickelnd, auf einer Seite eures Lockon-Servers einen Button zu drücken und den Flugplan eines Piloten der aktuellen Mission sich anzeigen lassen zu können... 8) [/*:mwjo][/listwjo]