13,208
edits
(Created page with "FlightGear can use '''flightplans''' stored in property-list xml files. == Property-list format == <syntaxhighlight lang="xml"> <?xml version="1.0"?> <PropertyList> <flight...") |
(→Related content: + Links to the source code) |
||
(10 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
FlightGear | FlightGear use a few different '''flightplan XML formats''' stored in property-list xml files. Due to different needs the flightplans used in the route manager and AI scenarios and have different formats. | ||
== | == AI flightplans == | ||
:''See also [[AI Scenarios#Flightplans and Their Waypoints]].'' | |||
These flightplans contain only waypoints. By tying an AI flightplan to an AI model in a scenario xml file, an AI scenario will be created. | |||
=== Waypoint tags === | |||
Each waypoint can contain the following tags: | |||
{| class="wikitable" | |||
! Tag !! Type !! Use !! Remarks | |||
|- | |||
| <code><name></code> || string || Waypoint name || The last waypoint use <code>EOF</code>, or if the AI model is to be deleted <code>END</code>. | |||
|- | |||
| <code><lat></code> || double || Latitude, decimal degrees || | |||
|- | |||
| <code><lon></code> || double || Longitude, decimal degrees || | |||
|- | |||
| <code><alt></code> || double || Altitude above mean sea level, feet || | |||
|- | |||
| <code><crossat></code> || double || Crossing altitude, feet || | |||
|- | |||
| <code><ktas></code> || double || True air speed, knots || | |||
|- | |||
| <code><on-ground></code> || bool || Set to <code>true</code> or <code>1</code> if on ground | |||
Set to <code>false</code> or <code>0</code> if in air or in a tunnel | |||
| | |||
|- | |||
| <code><gear-down></code> || double || <code>true</code> for gear down | |||
<code>false</code> for gear up | |||
| Or any number between 0 and 1 | |||
|- | |||
| <code><flaps-down></code> || double || <code>true</code> for flaps down | |||
<code>false</code> for flaps up | |||
| Or any number between 0 and 1 | |||
|} | |||
=== Example === | |||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
<?xml version="1.0"?> | <?xml version="1.0"?> | ||
<PropertyList> | <PropertyList> | ||
<flightplan> | <flightplan> | ||
<wpt> | |||
<name>First!</name> | |||
<lat>53.6762</lat> | |||
<lon>-1.39984</lon> | |||
<alt>1000</alt> | |||
<ktas>120</ktas> | |||
<on-ground>false</on-ground> | |||
<gear-down>1<gear-down> | |||
<flaps-down>0.25<flaps-down> | |||
</wpt> | |||
... | ... | ||
<wpt> | |||
<name>END</name> | |||
</wpt> | |||
</flightplan> | </flightplan> | ||
</PropertyList> | </PropertyList> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== | == Route manager flightplans == | ||
:''See also [[Route manager#Defining a Route]].'' | |||
Route manager waypoints are a bit more complex, for starters they contain departure and destination information and not just one type of waypoint. | |||
Note that the first and last waypoint are the departure and destination airports. | |||
There is also support for Level-D 767 SID:s and STAR:s in FlightGear. | |||
=== Departure and destination tags === | |||
{| class="wikitable" | |||
! Tag !! Type !! Use !! Remarks | |||
|- | |||
| <code><airport></code> || string || The ICAO identifier of the airport || | |||
|- | |||
| <code><sid></code> || string || Any available SID || | |||
|- | |||
| <code><star></code> || string || Any available STAR || | |||
|- | |||
| <code><transition></code> || string || || | |||
|- | |||
| <code><runway></code> || string || Departure or destination runway || | |||
|} | |||
=== Waypoint types and tags === | |||
{| class="wikitable" | |||
! Tag !! Type !! Use !! Remarks | |||
|- | |||
| <code><type></code> || string || Type of waypoint. Either <code>runway</code>, <code>navaid</code> or <code>offset-navaid</code> || | |||
|- | |||
| <code><alt-restrict></code> || string || || | |||
|- | |||
| <code><altitude-ft></code> || double || Altitude in feet || | |||
</ | |- | ||
| <code><ident></code> || string || If <code><type></code> is | |||
: <code>runway</code>: The departure or destination airport's runway number. Accompanied in the waypoint by the <code><icao></code> tag. | |||
: <code>navaid</code>: Any significant point along the route. Both airports, navaids and fixes. | |||
: <code>offset-navaid</code>: An point offset from a navaid by a bearing and distance. Note that true bearings are used here. | |||
| | |||
|- | |||
| <code><icao></code> || string || ICAO code of an airport || Used only if <code><type></code> is <code>runway</code> | |||
|- | |||
| <code><lon></code> || double || Longitude of the waypoint in decimal degrees || | |||
|- | |||
| <code><lat></code> || double || Latitude of the waypoint in decimal degrees || | |||
|- | |||
| <code><radial-deg></code> || double || True bearing from a navaid, fix or airport || {{inote|Radials on charts are magnetic!}} | |||
|- | |||
| <code><distance-nm></code> || double || Distance from a navaid, fix or airport || | |||
|} | |||
=== Example === | |||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
<?xml version="1.0"?> | |||
< | <PropertyList> | ||
< | <version type="int">2</version> | ||
< | <departure> | ||
</ | <airport type="string">KOAK</airport> | ||
<sid type="string">(none)</sid> | |||
<runway type="string">29</runway> | |||
</departure> | |||
<destination> | |||
<airport type="string">KSJC</airport> | |||
<star type="string">(none)</star> | |||
<transition type="string"></transition> | |||
<runway type="string">11</runway> | |||
</destination> | |||
<route> | |||
<wp> | |||
<type type="string">runway</type> | |||
<departure type="bool">true</departure> | |||
<generated type="bool">true</generated> | |||
<ident type="string">29</ident> | |||
<icao type="string">KOAK</icao> | |||
</wp> | |||
<wp n="1"> | |||
<type type="string">offset-navaid</type> | |||
<alt-restrict type="string">at</alt-restrict> | |||
<altitude-ft type="double">7500</altitude-ft> | |||
<ident type="string">SFO</ident> | |||
<lon type="double">-122.3738889</lon> | |||
<lat type="double">37.61947222</lat> | |||
<radial-deg type="double">88.22972768</radial-deg> | |||
<distance-nm type="double">16</distance-nm> | |||
</wp> | |||
<wp n="2"> | |||
<type type="string">navaid</type> | |||
<alt-restrict type="string">at</alt-restrict> | |||
<altitude-ft type="double">10000</altitude-ft> | |||
<ident type="string">MISON</ident> | |||
<lon type="double">-121.890306</lon> | |||
<lat type="double">37.496806</lat> | |||
</wp> | |||
<wp n="3"> | |||
<type type="string">runway</type> | |||
<arrival type="bool">true</arrival> | |||
<generated type="bool">true</generated> | |||
<ident type="string">11</ident> | |||
<icao type="string">KSJC</icao> | |||
</wp> | |||
</route> | |||
</PropertyList> | |||
</syntaxhighlight> | </syntaxhighlight> | ||
== Using the flightplans in FlightGear == | == Using the flightplans in FlightGear == | ||
=== Through the route manager === | === Through the route manager === | ||
{{main article|Route manager}} | |||
=== For AI models === | === For AI models === | ||
{{main article|AI Systems#AI Models}} | {{main article|AI Systems#AI Models}} | ||
== Related | == Related content == | ||
=== Wiki articles === | |||
* [[AI Systems]] | * [[AI Systems]] | ||
* [[ | * [[Howto:Create a flightplan]] – Contains no information whatsoever on using flightplans in FlightGear though. | ||
* [[Interactive traffic#An example of a traffic file]] – Not flightplans per see as they only cover cruise altitude and departure and destination airport. | |||
* [[List of Nasal extension functions#flightplan()]] | * [[List of Nasal extension functions#flightplan()]] | ||
* [[Nasal Flightplan]] | * [[Nasal Flightplan]] | ||
* [[PropertyList XML File]] | * [[PropertyList XML File]] | ||
* [[ | * [[UFO from the 'White Project' of the UNESCO]] | ||
=== Source code === | |||
* {{flightgear source|src/AIModel/AIFlightPlan.hxx}} | |||
* {{flightgear source|src/AIModel/AIFlightPlan.cxx}} | |||
* {{flightgear source|src/Navaids/FlightPlan.hxx}} | |||
* {{flightgear source|src/Navaids/FlightPlan.cxx}} | |||
[[Category:XML]] | |||
[[Category:Artificial intelligence]] | |||
[[Category:Autoflight]] |