<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.flightgear.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=David.megginson</id>
	<title>FlightGear wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.flightgear.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=David.megginson"/>
	<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/Special:Contributions/David.megginson"/>
	<updated>2026-06-13T12:07:39Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.6</generator>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Using_FlightGear_with_an_EFB&amp;diff=141157</id>
		<title>Howto:Using FlightGear with an EFB</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Using_FlightGear_with_an_EFB&amp;diff=141157"/>
		<updated>2025-01-01T17:42:00Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: Update protocol options for changes in FlightGear code 2024-12.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An '''Electronic Flight Bag''' (EFB) is an application that includes maps, weight-and-balance, and other tools that used to exist physically in a pilot's flight bag. The best-known EFB applications available on consumer mobile devices include [https://foreflight.com/ ForeFlight] ($$, iOS only, global), [https://www.garmin.com/en-CA/aviation/garminpilot/overview/ Garmin Pilot] ($$, Android and iOS, global), [https://flttrack.fltplan.com/FltPlanInfo/FltPlan_Go-Android-iPad_Info.html FltPlan Go] (cost-free, Android and iOS, Canada/U.S./Caribbean), and [https://www.apps4av.com/ Avare] (cost-free, Android only, U.S. only). Note that U.S. coverage typically overlaps slightly into southern Canada and northern Mexico.&lt;br /&gt;
&lt;br /&gt;
FlightGear can feed data to most EFB applications to replace real GPS data in plane, so you can use your tablet for a moving map and flight planner beside your computer, just like you would in a real cockpit.&lt;br /&gt;
&lt;br /&gt;
The instructions in this article are tested with FltPlan Go (because it's cost-free), but have been used in the past with Garmin Pilot as well, and should also work at least with ForeFlight.&lt;br /&gt;
&lt;br /&gt;
== Configuring FlightGear ==&lt;br /&gt;
&lt;br /&gt;
The necessary protocol files already exist in FlightGear, so all you need to do is add the following two lines to your $HOME/.fgfsrc file or to the &amp;quot;Additional Settings&amp;quot; subsection of &amp;quot;Settings&amp;quot; in the visual launcher:&lt;br /&gt;
&lt;br /&gt;
 --generic=socket,broadcast,10,255.255.255.255,49002,udp,foreflight-xatt&lt;br /&gt;
 --generic=socket,broadcast,1,255.255.255.255,49002,udp,foreflight-xgps&lt;br /&gt;
&lt;br /&gt;
'''Note:''' for older versions of FlightGear (before December 2024), you might need to try one of the following instead:&lt;br /&gt;
&lt;br /&gt;
 --generic=socket,out,10,255.255.255.255,49002,udp,foreflight-xatt&lt;br /&gt;
 --generic=socket,out,1,255.255.255.255,49002,udp,foreflight-xgps&lt;br /&gt;
&lt;br /&gt;
or for even older versions,&lt;br /&gt;
&lt;br /&gt;
 --generic=broadcast,out,10,255.255.255.255,49002,foreflight-xgps&lt;br /&gt;
 --generic=broadcast,out,10,255.255.255.255,49002,foreflight-xatt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuring your EFB==&lt;br /&gt;
&lt;br /&gt;
[[File:FltPlan Go settings.jpg|thumb|80px|FltPlan Go External settings to connect with FlightGear]]&lt;br /&gt;
[[File:FltPlan Go map page.jpg|thumb|80px|Moving map showing a FlightGear flight over a Canadian VNC (Sectional).]]&lt;br /&gt;
&lt;br /&gt;
Your mobile device ''must'' be connected to the same network as the computer running FlightGear. The following instructions apply to FltPlan Go, but the process for other EFBs will be similar (follow the instructions for connecting to X-Plane).&lt;br /&gt;
&lt;br /&gt;
Go to the &amp;quot;External&amp;quot; side tab for FltPlan Go, and select &amp;quot;X-Plane&amp;quot; or &amp;quot;ForeFlight&amp;quot; under &amp;quot;Simulators&amp;quot;. Then start FlightGear (in the same network), and wait for the altitude, latitude, longitude, course, and speed information to appear in the fields to the right: these will confirm that you have made a connection.&lt;br /&gt;
&lt;br /&gt;
You can now navigate to other tabs, such as the moving map or airport diagrams and instrument procedures, and see your aircraft position live.&lt;br /&gt;
&lt;br /&gt;
==Related content==&lt;br /&gt;
&lt;br /&gt;
*[[Generic protocol]]&lt;br /&gt;
*[[Interfacing FlightGear]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Interfacing protocols| ]]&lt;br /&gt;
[[Category:FlightGear]]&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Americas_Scenery&amp;diff=141120</id>
		<title>Americas Scenery</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Americas_Scenery&amp;diff=141120"/>
		<updated>2024-12-22T19:32:12Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Custom scenery covering all of the Americas (and some islands politically or geographically associated with them including Greenland, Iceland, Bermuda, the Falklands/Malvinas, the Galapagos, the Hawaiian Islands, Easter Island, and the South Sandwich and South Georgia Islands). You can download using a (zoomable) map here:&lt;br /&gt;
&lt;br /&gt;
https://davidmegginson.github.io/fgfs-scenery-build/&lt;br /&gt;
&lt;br /&gt;
This scenery has detailed coastlines and waterways, together with basic roads, railroads, and powerline rights-of-way, all from OpenStreetMap (to be supplemented by [[osm2city]]). The airports come from a more-recent snapshot of the X-Plane Scenery Gateway, so they are more up-to-date than the ones in the default FlightGear distro, and there are many more of them. It was begun in 2022, and version 1.0 was released in January 2024.&lt;br /&gt;
&lt;br /&gt;
== Adding 3D models and osm2city ==&lt;br /&gt;
&lt;br /&gt;
To make 3D models and osm2city (roads, buildings, and powerlines) appear, you need to run a script once after installation to generate symbolic links to the TerraSync scenery.  For Unix-based operating systems (like Linux or MacOS), run gen-symlinks.sh once from the directory where it appears; for Windows, run gen-symlinks.bat (not tested, since the scenery creator does not use Windows). You will also need to have TerraSync enabled to that the models get downloaded and updated.&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
File:Vancouver BC evening.png|Downtown Vancouver BC at dusk, facing north, with Kitsilano in the foreground and Stanley Park on the left.&lt;br /&gt;
File:Grand-canyon.jpg|The Grand Canyon, Arizona, USA.&lt;br /&gt;
File:Ipanema.jpg|thumb|Flying over Ipanema, Rio de Janiero at night.&lt;br /&gt;
File:Jasper BC Rocky Mountains.png|SAR DHC-3 Otter flying through the Rocky Mountains near Jasper AB (CYJA).&lt;br /&gt;
File:Miami Beach FL hazy afternoon.png|Piper Cub flying along Miami Beach on a hazy afternoon.&lt;br /&gt;
File:Goderich ON winter.png|Cessna 140 approaching a frozen-over Georgian Bay (Lake Huron) in winter, near Goderich ON (CYGD).&lt;br /&gt;
File:Falklands.jpg|The Falklands/Malvinas in the South Atlantic.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Scenery in North America]]&lt;br /&gt;
[[Category:Custom scenery]]&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=FlightGear_Americas_Scenery_(custom)&amp;diff=141119</id>
		<title>FlightGear Americas Scenery (custom)</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=FlightGear_Americas_Scenery_(custom)&amp;diff=141119"/>
		<updated>2024-12-22T18:44:26Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: David.megginson moved page FlightGear Americas Scenery (custom) to Americas Scenery: &amp;quot;FlightGear&amp;quot; is redundant&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Americas Scenery]]&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Americas_Scenery&amp;diff=141118</id>
		<title>Americas Scenery</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Americas_Scenery&amp;diff=141118"/>
		<updated>2024-12-22T18:44:26Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: David.megginson moved page FlightGear Americas Scenery (custom) to Americas Scenery: &amp;quot;FlightGear&amp;quot; is redundant&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Custom scenery covering all of the Americas (and some islands politically or geographically associated with them including Greenland, Iceland, Bermuda, the Falklands/Malvinas, the Galapagos, the Hawaiian Islands, Easter Island, and the South Sandwich and South Georgia Islands). You can download using a (zoomable) map here:&lt;br /&gt;
&lt;br /&gt;
https://davidmegginson.github.io/fgfs-scenery-build/&lt;br /&gt;
&lt;br /&gt;
This scenery has detailed coastlines and waterways, together with basic roads, railroads, and powerline rights-of-way, all from OpenStreetMap (to be supplemented by [[osm2city]]). The airports come from a more-recent snapshot of the X-Plane Scenery Gateway, so they are more up-to-date than the ones in the default FlightGear distro, and there are many more of them. It was begun in 2022, and version 1.0 was release in January 2024.&lt;br /&gt;
&lt;br /&gt;
== Adding 3D models and osm2city ==&lt;br /&gt;
&lt;br /&gt;
To make 3D models and osm2city (roads, buildings, and powerlines) appear, you need to run a script once after installation to generate symbolic links to the TerraSync scenery.  For Unix-based operating systems (like Linux or MacOS), run gen-symlinks.sh once from the directory where it appears; for Windows, run gen-symlinks.bat (not tested, since the scenery creator does not use Windows). You will also need to have TerraSync enabled to that the models get downloaded and updated.&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
File:Vancouver BC evening.png|Downtown Vancouver BC at dusk, facing north, with Kitsilano in the foreground and Stanley Park on the left.&lt;br /&gt;
File:Grand-canyon.jpg|The Grand Canyon, Arizona, USA.&lt;br /&gt;
File:Ipanema.jpg|thumb|Flying over Ipanema, Rio de Janiero at night.&lt;br /&gt;
File:Jasper BC Rocky Mountains.png|SAR DHC-3 Otter flying through the Rocky Mountains near Jasper AB (CYJA).&lt;br /&gt;
File:Miami Beach FL hazy afternoon.png|Piper Cub flying along Miami Beach on a hazy afternoon.&lt;br /&gt;
File:Goderich ON winter.png|Cessna 140 approaching a frozen-over Georgian Bay (Lake Huron) in winter, near Goderich ON (CYGD).&lt;br /&gt;
File:Falklands.jpg|The Falklands/Malvinas in the South Atlantic.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Scenery in North America]]&lt;br /&gt;
[[Category:Custom scenery]]&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Tile_Index_Scheme&amp;diff=140208</id>
		<title>Tile Index Scheme</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Tile_Index_Scheme&amp;diff=140208"/>
		<updated>2024-08-05T22:21:22Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: Added complete Python script based on code snippets in article&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Scenery]] in [[FlightGear]] is composed of tiles, each associated with a '''tile index'''.&lt;br /&gt;
The tiles are cut so that none of them is excessively large or small compared to other tiles regarding their actual size on the earth surface.&lt;br /&gt;
&lt;br /&gt;
Each tile is defined by the geodetic coordinates of its southwest corner and it extends in degrees of geodetic latitude and longitude.&lt;br /&gt;
We will refer to the latitude, longitude of the southwest corner as lat, lon.&lt;br /&gt;
However, the index calculations should also work with any other position inside the tile.&lt;br /&gt;
&lt;br /&gt;
The authoritative source for the tile index scheme is the definition of the class &amp;lt;code&amp;gt;SGBucket&amp;lt;/code&amp;gt; in SimGear (&amp;lt;code&amp;gt;simgear/bucket/newbucket.{hxx, cxx}&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Calculating the Tile Index ==&lt;br /&gt;
&lt;br /&gt;
The tile index is composed of four parts&lt;br /&gt;
&lt;br /&gt;
* base longitude index (-180...179)&lt;br /&gt;
* base latitude index (-90...89),&lt;br /&gt;
* longitude offset (0...7), and&lt;br /&gt;
* latitude offset (0...7).&lt;br /&gt;
&lt;br /&gt;
Each degree of latitude is split up into 8 rows of tiles.  Each tile spans 1/8th degree (0.125 degrees of latitude).&lt;br /&gt;
Therefore the base latitude index and offset are directly derived from lat using the &amp;lt;code&amp;gt;floor&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;trunc&amp;lt;/code&amp;gt; functions:&lt;br /&gt;
&lt;br /&gt;
  base_y = floor(lat)&lt;br /&gt;
  y = trunc((lat - base_y) * 8)&lt;br /&gt;
&lt;br /&gt;
floor &amp;amp; trunc explained: http://www.cplusplus.com/reference/cmath/trunc/&lt;br /&gt;
&lt;br /&gt;
The tiling in east-west direction is more complex.&lt;br /&gt;
As the meridians converge towards the pole, the width of tile columns must be adapted based on latitude, as the following table shows (taken from &amp;lt;code&amp;gt;sg_bucket_span&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;simgear/bucket/newbucket.hxx&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Latitude Range&lt;br /&gt;
! Tile Width (deg)&lt;br /&gt;
|-&lt;br /&gt;
| 89 ≤ lat &amp;lt; 90&lt;br /&gt;
| 12&lt;br /&gt;
|-&lt;br /&gt;
| 86 ≤ lat &amp;lt;  89&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| 83 ≤ lat &amp;lt;  86&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| 76 ≤ lat &amp;lt;  83&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| 62 ≤ lat &amp;lt;  76&lt;br /&gt;
| 0.5&lt;br /&gt;
|-&lt;br /&gt;
| 22 ≤ lat &amp;lt;  62&lt;br /&gt;
| 0.25&lt;br /&gt;
|-&amp;quot;&amp;quot;&amp;quot; Calculate a FlightGear scenery tile index from a latitude and longitude&lt;br /&gt;
&lt;br /&gt;
USAGE:&lt;br /&gt;
&lt;br /&gt;
  $ python flightgear-tile.py LAT LON&lt;br /&gt;
&lt;br /&gt;
Will print the index to standard output.&lt;br /&gt;
&lt;br /&gt;
David Megginson, 2024-08-05 (Public Domain)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
from math import floor, trunc&lt;br /&gt;
import sys&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Table of tile widths for various latitudes&lt;br /&gt;
TILE_WIDTHS = (&lt;br /&gt;
    (89, 90, 12,),&lt;br /&gt;
    (86, 89, 4,),&lt;br /&gt;
    (83, 86, 2,),&lt;br /&gt;
    (76, 83, 1,),&lt;br /&gt;
    (62, 76, 0.5,),&lt;br /&gt;
    (22, 62, 0.25,),&lt;br /&gt;
    (-22, 22, 0.125,),&lt;br /&gt;
    (-62, -22, 0.25,),&lt;br /&gt;
    (-76, -62, 0.5,),&lt;br /&gt;
    (-83, -76, 1,),&lt;br /&gt;
    (-86, -83, 2,),&lt;br /&gt;
    (-89, -86, 4,),&lt;br /&gt;
    (-90, -89, 12,),&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
def get_tile_width (lat):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot; Calculate the tile width for a latitude &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    for entry in TILE_WIDTHS:&lt;br /&gt;
        if lat &amp;gt;= entry[0]:&lt;br /&gt;
            return entry[2]&lt;br /&gt;
    raise Exception(&amp;quot;Latitude out of range&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
def calculate_tile_index (lat, lon):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot; Calculate the index for a lat/lon &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    tile_width = get_tile_width(lat)&lt;br /&gt;
    base_y = floor(lat)&lt;br /&gt;
    y = trunc((lat - base_y) * 8)&lt;br /&gt;
    base_x = floor(floor(lon / tile_width) * tile_width)&lt;br /&gt;
    x = floor((lon - base_x) / tile_width)&lt;br /&gt;
    index = ((base_x + 180) &amp;lt;&amp;lt; 14) + ((base_y + 90) &amp;lt;&amp;lt; 6) + (y &amp;lt;&amp;lt; 3) + x&lt;br /&gt;
&lt;br /&gt;
    return index&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Script entry point&lt;br /&gt;
#&lt;br /&gt;
if __name__ == '__main__':&lt;br /&gt;
    if len(sys.argv) != 3:&lt;br /&gt;
        print(&amp;quot;Usage: {} LAT LON&amp;quot;.format(sys.argv[0]), file=sys.stderr)&lt;br /&gt;
        exit(2)&lt;br /&gt;
    lat = float(sys.argv[1])&lt;br /&gt;
    lon = float(sys.argv[2])&lt;br /&gt;
    if lat &amp;lt; -90 or lat &amp;gt; 90:&lt;br /&gt;
        print(&amp;quot;Latitude {} out of range&amp;quot;.format(lat))&lt;br /&gt;
        exit(1)&lt;br /&gt;
    if lon &amp;lt; -180 or lat &amp;gt; 180:&lt;br /&gt;
        print(&amp;quot;Longitude {} out of range&amp;quot;.format(lon))&lt;br /&gt;
        exit(1)&lt;br /&gt;
    print(calculate_tile_index(lat, lon))&lt;br /&gt;
    exit(0)&lt;br /&gt;
&lt;br /&gt;
| -22  ≤ lat &amp;lt;  22&lt;br /&gt;
| 0.125&lt;br /&gt;
|-&lt;br /&gt;
| -62  ≤ lat &amp;lt;  -22&lt;br /&gt;
| 0.25&lt;br /&gt;
|-&lt;br /&gt;
| -76 ≤ lat &amp;lt;  -62&lt;br /&gt;
| 0.5&lt;br /&gt;
|-&lt;br /&gt;
| -83 ≤ lat &amp;lt;  -76&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| -86 ≤ lat &amp;lt;  -83&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| -89 ≤ lat &amp;lt;  -86&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| -90 ≤ lat &amp;lt; -89&lt;br /&gt;
| 12&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that in latitudes north of N83 or south of S83 tiles span more than a single degree of latitude.&lt;br /&gt;
The naive code for determining the base longitude index is therefore&lt;br /&gt;
&lt;br /&gt;
  base_x=floor(floor(lon / tile_width) * tile_width)&lt;br /&gt;
  x=floor((lon - base_x) / tile_width)&lt;br /&gt;
&lt;br /&gt;
The final tile index is found by composing the base offsets and indices into a bit-field:&lt;br /&gt;
&lt;br /&gt;
  index=((lon + 180) &amp;lt;&amp;lt; 14) + ((lat + 90) &amp;lt;&amp;lt; 6) + (y &amp;lt;&amp;lt; 3) + x&lt;br /&gt;
&lt;br /&gt;
So here is the final code for calculating the index (using the width from the table above for &amp;lt;code&amp;gt;tile_width&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
  base_y = floor(lat)&lt;br /&gt;
  y = trunc((lat - base_y) * 8)&lt;br /&gt;
  base_x = floor(floor(lon / tile_width) * tile_width)&lt;br /&gt;
  x = floor((lon - base_x) / tile_width)&lt;br /&gt;
&lt;br /&gt;
=== Python script ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot; Calculate a FlightGear scenery tile index from a latitude and longitude&lt;br /&gt;
&lt;br /&gt;
USAGE:&lt;br /&gt;
&lt;br /&gt;
  $ python flightgear-tile.py LAT LON&lt;br /&gt;
&lt;br /&gt;
Will print the index to standard output.&lt;br /&gt;
&lt;br /&gt;
David Megginson, 2024-08-05 (Public Domain)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
from math import floor, trunc&lt;br /&gt;
import sys&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Table of tile widths for various latitudes&lt;br /&gt;
TILE_WIDTHS = (&lt;br /&gt;
    (89, 90, 12,),&lt;br /&gt;
    (86, 89, 4,),&lt;br /&gt;
    (83, 86, 2,),&lt;br /&gt;
    (76, 83, 1,),&lt;br /&gt;
    (62, 76, 0.5,),&lt;br /&gt;
    (22, 62, 0.25,),&lt;br /&gt;
    (-22, 22, 0.125,),&lt;br /&gt;
    (-62, -22, 0.25,),&lt;br /&gt;
    (-76, -62, 0.5,),&lt;br /&gt;
    (-83, -76, 1,),&lt;br /&gt;
    (-86, -83, 2,),&lt;br /&gt;
    (-89, -86, 4,),&lt;br /&gt;
    (-90, -89, 12,),&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
def get_tile_width (lat):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot; Calculate the tile width for a latitude &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    for entry in TILE_WIDTHS:&lt;br /&gt;
        if lat &amp;gt;= entry[0]:&lt;br /&gt;
            return entry[2]&lt;br /&gt;
    raise Exception(&amp;quot;Latitude out of range&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
def calculate_tile_index (lat, lon):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot; Calculate the index for a lat/lon &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    tile_width = get_tile_width(lat)&lt;br /&gt;
    base_y = floor(lat)&lt;br /&gt;
    y = trunc((lat - base_y) * 8)&lt;br /&gt;
    base_x = floor(floor(lon / tile_width) * tile_width)&lt;br /&gt;
    x = floor((lon - base_x) / tile_width)&lt;br /&gt;
    index = ((base_x + 180) &amp;lt;&amp;lt; 14) + ((base_y + 90) &amp;lt;&amp;lt; 6) + (y &amp;lt;&amp;lt; 3) + x&lt;br /&gt;
&lt;br /&gt;
    return index&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Script entry point&lt;br /&gt;
#&lt;br /&gt;
if __name__ == '__main__':&lt;br /&gt;
    if len(sys.argv) != 3:&lt;br /&gt;
        print(&amp;quot;Usage: {} LAT LON&amp;quot;.format(sys.argv[0]), file=sys.stderr)&lt;br /&gt;
        exit(2)&lt;br /&gt;
    lat = float(sys.argv[1])&lt;br /&gt;
    lon = float(sys.argv[2])&lt;br /&gt;
    if lat &amp;lt; -90 or lat &amp;gt; 90:&lt;br /&gt;
        print(&amp;quot;Latitude {} out of range&amp;quot;.format(lat))&lt;br /&gt;
        exit(1)&lt;br /&gt;
    if lon &amp;lt; -180 or lat &amp;gt; 180:&lt;br /&gt;
        print(&amp;quot;Longitude {} out of range&amp;quot;.format(lon))&lt;br /&gt;
        exit(1)&lt;br /&gt;
    print(calculate_tile_index(lat, lon))&lt;br /&gt;
    exit(0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Terra}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Scenery enhancement]]&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Americas_Scenery&amp;diff=138955</id>
		<title>Americas Scenery</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Americas_Scenery&amp;diff=138955"/>
		<updated>2024-01-12T19:44:23Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Custom scenery covering all of the Americas (and some islands politically or geographically associated with them including Greenland, Iceland, Bermuda, the Falklands/Malvinas, the Galapagos, the Hawaiian Islands, Easter Island, and the South Sandwich and South Georgia Islands). You can download using a (zoomable) map here:&lt;br /&gt;
&lt;br /&gt;
https://davidmegginson.github.io/fgfs-scenery-build/&lt;br /&gt;
&lt;br /&gt;
This scenery has detailed coastlines and waterways, together with basic roads, railroads, and powerline rights-of-way, all from OpenStreetMap (to be supplemented by [[osm2city]]). The airports come from a more-recent snapshot of the X-Plane Scenery Gateway, so they are more up-to-date than the ones in the default FlightGear distro, and there are many more of them. It was begun in 2022, and version 1.0 was release in January 2024.&lt;br /&gt;
&lt;br /&gt;
== Adding 3D models and osm2city ==&lt;br /&gt;
&lt;br /&gt;
To make 3D models and osm2city (roads, buildings, and powerlines) appear, you need to run a script once after installation to generate symbolic links to the TerraSync scenery.  For Unix-based operating systems (like Linux or MacOS), run gen-symlinks.sh once from the directory where it appears; for Windows, run gen-symlinks.bat (not tested, since the scenery creator does not use Windows). You will also need to have TerraSync enabled to that the models get downloaded and updated.&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
File:Vancouver BC evening.png|Downtown Vancouver BC at dusk, facing north, with Kitsilano in the foreground and Stanley Park on the left.&lt;br /&gt;
File:Grand-canyon.jpg|The Grand Canyon, Arizona, USA.&lt;br /&gt;
File:Ipanema.jpg|thumb|Flying over Ipanema, Rio de Janiero at night.&lt;br /&gt;
File:Jasper BC Rocky Mountains.png|SAR DHC-3 Otter flying through the Rocky Mountains near Jasper AB (CYJA).&lt;br /&gt;
File:Miami Beach FL hazy afternoon.png|Piper Cub flying along Miami Beach on a hazy afternoon.&lt;br /&gt;
File:Goderich ON winter.png|Cessna 140 approaching a frozen-over Georgian Bay (Lake Huron) in winter, near Goderich ON (CYGD).&lt;br /&gt;
File:Falklands.jpg|The Falklands/Malvinas in the South Atlantic.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Scenery in North America]]&lt;br /&gt;
[[Category:Custom scenery]]&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Americas_Scenery&amp;diff=138954</id>
		<title>Americas Scenery</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Americas_Scenery&amp;diff=138954"/>
		<updated>2024-01-12T19:43:38Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Custom scenery covering all of the Americas (and some islands politically or geographically associated with them including Greenland, Iceland, Bermuda, the Falklands/Malvinas, the Galapagos, the Hawaiian Islands, Easter Island, and the South Sandwich and South Georgia Islands).&lt;br /&gt;
&lt;br /&gt;
https://davidmegginson.github.io/fgfs-scenery-build/&lt;br /&gt;
&lt;br /&gt;
This scenery has detailed coastlines and waterways, together with basic roads, railroads, and powerline rights-of-way, all from OpenStreetMap (to be supplemented by [[osm2city]]). The airports come from a more-recent snapshot of the X-Plane Scenery Gateway, so they are more up-to-date than the ones in the default FlightGear distro, and there are many more of them. It was begun in 2022, and version 1.0 was release in January 2024.&lt;br /&gt;
&lt;br /&gt;
== Adding 3D models and osm2city ==&lt;br /&gt;
&lt;br /&gt;
To make 3D models and osm2city (roads, buildings, and powerlines) appear, you need to run a script once after installation to generate symbolic links to the TerraSync scenery.  For Unix-based operating systems (like Linux or MacOS), run gen-symlinks.sh once from the directory where it appears; for Windows, run gen-symlinks.bat (not tested, since the scenery creator does not use Windows). You will also need to have TerraSync enabled to that the models get downloaded and updated.&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
File:Vancouver BC evening.png|Downtown Vancouver BC at dusk, facing north, with Kitsilano in the foreground and Stanley Park on the left.&lt;br /&gt;
File:Grand-canyon.jpg|The Grand Canyon, Arizona, USA.&lt;br /&gt;
File:Ipanema.jpg|thumb|Flying over Ipanema, Rio de Janiero at night.&lt;br /&gt;
File:Jasper BC Rocky Mountains.png|SAR DHC-3 Otter flying through the Rocky Mountains near Jasper AB (CYJA).&lt;br /&gt;
File:Miami Beach FL hazy afternoon.png|Piper Cub flying along Miami Beach on a hazy afternoon.&lt;br /&gt;
File:Goderich ON winter.png|Cessna 140 approaching a frozen-over Georgian Bay (Lake Huron) in winter, near Goderich ON (CYGD).&lt;br /&gt;
File:Falklands.jpg|The Falklands/Malvinas in the South Atlantic.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Scenery in North America]]&lt;br /&gt;
[[Category:Custom scenery]]&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Americas_Scenery&amp;diff=138953</id>
		<title>Americas Scenery</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Americas_Scenery&amp;diff=138953"/>
		<updated>2024-01-12T19:43:05Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: Installation note&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Custom scenery covering all of the Americas (and some islands politically or geographically associated with them including Greenland, Iceland, Bermuda, the Falklands/Malvinas, the Galapagos, the Hawaiian Islands, Easter Island, and the South Sandwich and South Georgia Islands).&lt;br /&gt;
&lt;br /&gt;
https://davidmegginson.github.io/fgfs-scenery-build/&lt;br /&gt;
&lt;br /&gt;
This scenery has detailed coastlines and waterways, together with basic roads, railroads, and powerline rights-of-way, all from OpenStreetMap (to be supplemented by [[osm2city]]). The airports come from a more-recent snapshot of the X-Plane Scenery Gateway, so they are more up-to-date than the ones in the default FlightGear distro, and there are many more of them. It was begun in 2022, and version 1.0 was release in January 2024.&lt;br /&gt;
&lt;br /&gt;
== Adding 3D models and osm2city ==&lt;br /&gt;
&lt;br /&gt;
To make 3D models and osm2city (roads, buildings, and powerlines) appear, you need to run a script once after installation to generate symbolic links to the TerraSync scenery.  For Unix-based operating systems (like Linux or MacOS), run ``gen-symlinks.sh`` once from the directory where it appears; for Windows, run ``gen-symlinks.bat`` (not tested, since the scenery creator does not use Windows). You will also need to have TerraSync enabled to that the models get downloaded and updated.&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
File:Vancouver BC evening.png|Downtown Vancouver BC at dusk, facing north, with Kitsilano in the foreground and Stanley Park on the left.&lt;br /&gt;
File:Grand-canyon.jpg|The Grand Canyon, Arizona, USA.&lt;br /&gt;
File:Ipanema.jpg|thumb|Flying over Ipanema, Rio de Janiero at night.&lt;br /&gt;
File:Jasper BC Rocky Mountains.png|SAR DHC-3 Otter flying through the Rocky Mountains near Jasper AB (CYJA).&lt;br /&gt;
File:Miami Beach FL hazy afternoon.png|Piper Cub flying along Miami Beach on a hazy afternoon.&lt;br /&gt;
File:Goderich ON winter.png|Cessna 140 approaching a frozen-over Georgian Bay (Lake Huron) in winter, near Goderich ON (CYGD).&lt;br /&gt;
File:Falklands.jpg|The Falklands/Malvinas in the South Atlantic.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Scenery in North America]]&lt;br /&gt;
[[Category:Custom scenery]]&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Suggested_custom_scenery&amp;diff=138952</id>
		<title>Suggested custom scenery</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Suggested_custom_scenery&amp;diff=138952"/>
		<updated>2024-01-12T19:39:35Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: /* New scenery for the Americas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Besides the official TerraSync scenery that is automatically synced while FlightGear is running, there are a number of custom sceneries available, created by users for beautifying some specific areas of the scenery. This page is a list of some '''suggested custom scenery''' for downloading and visiting. This list can not be complete as custom sceneries might come and go. It's worth to search the forum for additional custom sceneries. &lt;br /&gt;
&lt;br /&gt;
FlightGear [[Changelog 2020.3#2020.3.7|2020.3.7]] and later will ''automatically'' download buildings, roads, pylons, and other objects, based on Open Street Map (OSM) data - see [[OSM2City 1st Worldbuild|OSM2City 1st world build]]. You don't have to download OSM2City custom sceneries for these anymore. (March 2021)&lt;br /&gt;
&lt;br /&gt;
'''Quick update, March 2020/May 2020:''' &lt;br /&gt;
&lt;br /&gt;
* See '''[[Suggested_airports]]''' for a quick list of featured airports situated in well developed regions, with links to OSM2City scenery. It's suitable for newcomers to start at to explore surrounding regions. (March 2020)&lt;br /&gt;
&lt;br /&gt;
* '''[[Project3000]]''' adds a lot of clutter and buildings to airports which do not have models or details. It's a must have. It is planned to be integrated into the FG core eventually. [https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=27688 Forum thread]. (March 2020)&lt;br /&gt;
&lt;br /&gt;
* '''OSM2City scenery''' buildings, roads, pylons, and other objects, for the whole planet is now on TerraSync, and ''automatically downloaded'' by FlightGear [[Changelog 2020.3#2020.3.7|2020.3.7 and later]]. The current OSM2City output on TerraSync is from the [[Osm2city_worldbuild|1st world build of OSM2City]] scenery ([https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=35581 forum thread]). Custom sceneries for countries and regions are available [[Areas_populated_with_osm2city_scenery|'''here''']]. Note: Old custom sceneries (before March 2021) will contain folders for OSM2City output like Buildings, Roads or Pylons with outdated and obsolete objects. These folders will override the new higher quality and faster rendering objects from TerraSync. Remember to remove these from your custom scenery folder list! If your custom scenery contains sub-folders that are not obsolete, like Terrain, you can leave these alone and only delete OSM2City sub-folders in your custom scenery folder. There are some OSM2City custom sceneries that are not obsolete - these have builds of OSM2City with different options from the 1st worldbuild - for example, custom scenery with auto-generation on in areas without good OSM coverage like the Hawaii custom scenery. (March 2021)&lt;br /&gt;
&lt;br /&gt;
* '''[[:Category:Scenery_enhancement_projects|Custom terrain &amp;amp; region definition projects]]''': There are ongoing scenery enhancement projects to update both regional definitions and terrain in large areas like the [[Australia_Custom_Scenery|Australia]] (regional definitions are planned to be added to FG core). This a partial list, search the '''[https://forum.flightgear.org/viewforum.php?f=5 scenery forum]''' for details. Some of the output of projects like Hawaii terrain has already been integrated into Terrasync. (March 2020)&lt;br /&gt;
&lt;br /&gt;
* Status of terrain in Terrasync: Terrasync scenery which is automatically downloaded has high resolution terrain. All of Europe currently has high resolution terrain from CORINE data. A lot of old pre-world scenery 2 should be obsolete. (March 2020)&lt;br /&gt;
&lt;br /&gt;
* ''Status of next generation of scenery technology: World Scenery 3.0'': There is ongoing work being done towards WS 3.0 which will use [[Virtual Planet Builder]] (VPB) toolchain from the Open Scene Graph project, whose scenegraph is already used in Flightgear. A prototype of the world scenery technology is available in the FlightGear next branch, and an example scenery for the current prototype is available (March 2021). For more information see the [[World_Scenery_3.0_roadmap|World Scenery 3.0 Roadmap]]. To help with the WS 3.0 effort contact the team via the &amp;quot;[[Mailing lists|fg-devel]]&amp;quot; mailing list. &lt;br /&gt;
* ''Status of next world-build of scenery: World Scenery 3.x'': There is ongoing work towards the next world build - see the the [[World Scenery 3.0 roadmap]].  Contributing land cover and terrain data currently used in custom sceneries to the central repository when it's established in future will help get work into WS 3.0. It is intended for there to be a way to contribute improvements back to a central source. For example, a landcover shapefile server. People who have generated higher quality landcover and terrain for custom sceneries from multiple sources should keep in touch with WS 3.0 development to get their contributions in the next world build. Clipped landcover shapefiles from various sources used for WS 2.0 have been available for a while and re-generated in preparation for a new world scenery build, see [https://sourceforge.net/p/flightgear/mailman/message/36730169/ this] mailinglist post. WS3 development is organised via the &amp;quot;[[Mailing lists|fg-devel]]&amp;quot; mailing list. (March 2021)&lt;br /&gt;
&lt;br /&gt;
* Status of terrain in custom sceneries: The page as it stands is missing almost all custom terrain. Some old island custom sceneries have been merged into the automatically downloaded sceneries terrasync. [[User:Wlbragg#Kansas_Custom_Scenery|Kansas/Midwest]] and [[US-Tennessee_Custom_Scenery|Tennessee]] are two examples of custom sceneries that aren't obsolete (March 2020).&lt;br /&gt;
&lt;br /&gt;
:: ''If you are the creator of an island scenery you can add it to [[TerraSync]] by contacting the flightgear-devel [[Mailing_lists|mailing list]]''.&lt;br /&gt;
&lt;br /&gt;
* Status of regional definitions in FG core: Areas with regional definitions and materials which use recent engine features, that are in areas with reasonably high resolution terrain, have ''extremely'' high fidelity at high settings. ''The following list is not comprehensive''. It's just off the top of my head. &lt;br /&gt;
::''Areas with regional definitions and materials that were updated with recent features like overlays and have high resolution terrain'': &lt;br /&gt;
:::Hawaii, Norway, Iceland, Sweden, Mediterranean landscapes (Spain, Sicily, Portugal, southern Italy, Greece). &lt;br /&gt;
::''Areas with partial overlays and developed scenery with high resolution terrain'': &lt;br /&gt;
:::Swizerland, Alps (in many countries), central Europe &amp;amp; England, Corsica. &lt;br /&gt;
::''Well developed areas with regional definitions that predate overlays'': &lt;br /&gt;
:::Alaska, Caribbean Islands, Bermuda, South America (lower res terrain), Grand Canyon, California (USA), Mojave Desert (lower res terrain than Europe), Madagascar (lower res terrain than Europe).&lt;br /&gt;
::''Somewhat recently developed areas:'' &lt;br /&gt;
:::South Africa in places (lower res terrain), Dubai, Mediterranean part of Africa.&lt;br /&gt;
&lt;br /&gt;
:: ''If you are the author of an existing scenery that has regional definitions and/or GPL compatible textures that are an improvement to what is present in [[FGData]] ([[Howto:Regional_texturing#Guidelines|Checklist]]), you can add it to FGData by having it reviewed and merged. Regional definitions can be merged even when the terrain part cannot be merged until a rebuild of the complete landmass is done.''&lt;br /&gt;
&lt;br /&gt;
== New scenery for the Americas (January 2024) ==&lt;br /&gt;
&lt;br /&gt;
[[File:Cygd-c140-winter.jpg|thumb|New FlightGear Americas scenery, approaching Georgian Bay (Lake Huron) in winter. Note the detail for inland water.]]&lt;br /&gt;
New scenery is available for all of the Americas, including islands geographically or politically associated with them (such as Greenland, the Hawaiian Islands, Bermuda, and the Galapagos). This is intended to replace the current default TerraGear scenery as soon as we're ready to rebuild osm2city for it. The scenery includes many more airports (5-10x as many as the default scenery, most with correct taxiways and aprons), detailed inland water, and detailed 30m digital elevations. See [[FlightGear Americas Scenery (custom)]] for download details.&lt;br /&gt;
&lt;br /&gt;
This scenery is suitable for use as a default to fill in the gaps between some of the more-detailed custom-scenery areas listed below.&lt;br /&gt;
&lt;br /&gt;
== Custom scenery that is not obsolete (May 2021) ==&lt;br /&gt;
&lt;br /&gt;
''This is only a fraction of available scenery (May 2021). Search the [https://forum.flightgear.org/viewforum.php?f=5 scenery forum] for more.''&lt;br /&gt;
&lt;br /&gt;
''See [[Howto:Install_scenery|How to install custom scenery packages]].''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''USA, Tennessee:''' custom scenery for Tennessee by [[User:Scttgs|Scott Giese]](xDraconianx). This is very high resolution scenery created to test potential resolution &amp;amp; performance for the next world scenery build. See the [https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=35521 forum thread] for feedback and more info. See the [[US-Tennessee_Custom_Scenery|wiki page]] for downloads. (March 2020)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
File:US-Tennessee-EastCentral.jpg&lt;br /&gt;
File:US-Tennessee-West.jpg&lt;br /&gt;
File:US-Tennessee-East.jpg&lt;br /&gt;
File:US-Tennessee-WestCentral.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''USA, Kansas &amp;amp; Ohio:''' custom scenery for the entire states of Kansas and Ohio created by [[User:Wlbragg|Wlbragg]]. This high resolution scenery includes textures. See the [[User:Wlbragg#Kansas_Custom_Scenery|wiki page]] for downloads and info. (March 2020)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
File:Kansas_Scenery_Two.jpg&lt;br /&gt;
File:KDAY_James_M._Cox_Dayton_International_Airport.jpg&lt;br /&gt;
File:Kansas_Scenery_One.jpg&lt;br /&gt;
File:Kansas_Scenery_Three.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Scandinavia''': custom scenery covering Scandinavian countries such as Norway, Sweden, and Finland by [[User:D-ECHO|D-ECHO]]. Norway and Sweden have some of the most detailed regional definitions using recent engine features. This custom scenery project further improves it by mainly adding more detailed land type classification, digital elevation data, as well as updated airports. As of March 2020 it updates parts of these countries. See the [[Scandinavia Custom Scenery]] page for download and details.&lt;br /&gt;
&lt;br /&gt;
* '''USA, Pennsylvania, New Jersey, and New York City''': custom scenery for these Eastern US states by montagdude. See [https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=38041 forum thread]. Contains custom terrain, OSM2City, and custom materials. (September 2020)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
File:Ec135-manhattan.jpg&lt;br /&gt;
File:Pa28-wilkes-barre.jpg&lt;br /&gt;
File:C182s-atlantic-city.jpg&lt;br /&gt;
File:Dr400-philadelphia.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''USA, Virginia, Maryland, Delaware, and the District of Columbia''': custom scenery for these Mid-Atlantic US states by montagdude. See [https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=37322 forum thread]. Contains custom terrain, OSM2City, and custom materials. (April 2020)&lt;br /&gt;
&lt;br /&gt;
* '''USA, Rhode Island and southeastern Massachusetts''': custom scenery for Rhode Island and southeastern parts of the state of Massachusetts by montagdude. See [https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=36977 forum thread]. Contains OSM2City. (March 2020)&lt;br /&gt;
&lt;br /&gt;
* '''USA, Champaign, Chicago, Milwaukee and surrounding areas''': custom scenery for Champaign, Bloomington, Chicago, Milwaukee and northern Illinois by pb321. See [https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=39209 forum thread] and to report issues. Contains OSM2City and (optional) color corrected USGS orthophotos. (May 2021)&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
File:KPWK-Chicago_Executive.jpg&lt;br /&gt;
File:ChicagoAM-OrthoCropped.jpg&lt;br /&gt;
File:Approaching KMKE.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''USA, Oshkosh, Green Bay, U.P. of Michigan and surrounding areas''': custom scenery for Oshkosh, Appleton, Green Bay and the central Upper Peninsula of Michigan by pb321. See [https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=39264 forum thread] and to report issues. Contains OSM2City and (optional) color corrected USGS orthophotos. (May 2021)&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
File:GreenBayNorth.jpg&lt;br /&gt;
File:Near Houghton MIa.jpg&lt;br /&gt;
File:MarquetteA.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Venezuela: [[Project Venezuela]]:''' custom scenery for Venezuela by [[User:Legoboyvdlp|J. Redpath]], with improved airport layouts, and objects at several airports. Highly improved over TerraSync status. (March 2020)&lt;br /&gt;
&lt;br /&gt;
* '''Canary Islands:''' custom scenery for the Canary Islands by [[User:D-ECHO|D-ECHO]] with improved terrain, objects, vegetation, building, reworked airports, mostly with buildings and furniture.  Check out the [[Canary_Islands_Custom_Scenery|wiki page]]. (March 2020)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
GCLP-1.jpg&lt;br /&gt;
GCLP-2.jpg&lt;br /&gt;
GCLP-3.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Argentina''':  OSM-based custom scenery for Argentina and parts of Chile and Uruguay by Barta.&amp;lt;br/&amp;gt;Updated airports, landcover from OSM polygons, line data and objects using Osm2City. Updated frequently!&amp;lt;br/&amp;gt;Downloads:&lt;br /&gt;
:: All output: [http://scenery.bartatech.net/ http://scenery.bartatech.net/] . As of July 2020 these areas are available: Santiago (including Valparaiso), Mendoza, Buenos Aires, complete Rosario area. The other parts only have terrain (no roads, buildings etc). The server will eventually contain all of the sceneries in the southern cone of South America: Argentina, Chile, Uruguay.&lt;br /&gt;
::: It's possible to use the [http://scenery.bartatech.net/ scenery.bartatech.net] server directly as a Terrasync server. Just use the following in the [[FlightGear_Qt_launcher|launcher]] or .fgfsrc file: &lt;br /&gt;
::: ''--prop:/sim/terrasync/http-server=&amp;lt;nowiki&amp;gt;http://scenery.bartatech.net/&amp;lt;/nowiki&amp;gt;''&lt;br /&gt;
:: Buenos Aires province: https://github.com/bartacruz/scenery-6040 &lt;br /&gt;
:: Cuyo Area + Santiago: https://github.com/bartacruz/scenery-cuyo&lt;br /&gt;
&lt;br /&gt;
* '''USA, Florida''': custom scenery for Florida by [[User:Legoboyvdlp|J. Redpath]] with both terrain and OSM2City. It also covers the [[Space Shuttle]] landing site at [[Shuttle_Landing_Facility|KTTS]]. See the [https://github.com/legoboyvdlp/Florida-fg-CustomScenery repository] downloads section for the [https://github.com/legoboyvdlp/Florida-fg-CustomScenery/archive/master.zip zip-file].&lt;br /&gt;
&lt;br /&gt;
* '''London, England''': custom scenery by [[User:Legoboyvdlp|J. Redpath]] for the London area including an improved Gatwick Airport (ICAO: EGKK). See the [https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=37444 forum thread] and [https://github.com/legoboyvdlp/London-fg-CustomScenery repository] downloads section for the [https://github.com/legoboyvdlp/London-fg-CustomScenery/archive/master.zip zip-file].&lt;br /&gt;
&lt;br /&gt;
* '''Moscow area, Russia''': custom scenery by [[User:Legoboyvdlp|J. Redpath]] for the Moscow area covering 14 tiles. See the [https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=37887 forum thread] for the github [https://github.com/legoboyvdlp/Moscow-fg-CustomScenery/archive/master.zip download]. (August 2020)&lt;br /&gt;
&lt;br /&gt;
* '''Valdivostock area, Russia''': custom scenery by [[User:Legoboyvdlp|J. Redpath]] for the Vadivostock area. See the [https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=37887 forum thread] for the github [https://github.com/legoboyvdlp/Vladivostok-fg-CustomScenery/archive/master.zip download]. (August 2020)&lt;br /&gt;
&lt;br /&gt;
* '''Eastern China''': custom scenery by [[User:Legoboyvdlp|J. Redpath]] for the eastern portion of China covering the area around ZSAM and ZSNJ airports. See the [https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=37887 forum thread] for the github [https://github.com/legoboyvdlp/EastChina-fg-CustomScenery/archive/master.zip download]. (August 2020)&lt;br /&gt;
&lt;br /&gt;
* '''Beijing area, China''': custom scenery by [[User:Legoboyvdlp|J. Redpath]] for the area around Beijing covering 15 tiles. See the [https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=37887 forum thread] for the github [https://github.com/legoboyvdlp/Beijing-fg-CustomScenery/archive/master.zip download]. (August 2020)&lt;br /&gt;
&lt;br /&gt;
* '''Sri Lanka''': 2019 custom scenery by [[User:Legoboyvdlp|J. Redpath]] for the island of Sri Lanka in the Indian ocean including rebuilt terrain, OSM2City output, and improved airports. See the [https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=37887 forum thread] for github [https://codeload.github.com/legoboyvdlp/SriLanka-fg-CustomScenery/zip/master download].&lt;br /&gt;
* '''Dominican Republic:''' 2021 custom scenery by flc972 for [[Gregorio Luperon International Airport]] (MDPP) with detailed modeling of interiors, night lightmaps, ground net and animated jetways as well as some terrain. The airport is located on the Caribbean island of Hispaniola. See the [https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=39179 forum thread] for bitbucket [https://bitbucket.org/fableb/flcs-mdpp_airport/downloads/ download] .&lt;br /&gt;
* '''Turkey:''' custom scenery including 12 airports. Can be downloaded from https://github.com/Klaudiae/FGCompanion-TurkeyEnhanced&lt;br /&gt;
* '''Turkey, Şanlıurfa:''' custom scenery by TheFGFSEagle. Can be downloaded from https://github.com/TheFGFSEagle/LTCS-scenery&lt;br /&gt;
* '''Poland:''' custom scenery including 14 airports. Can be downloaded from https://github.com/Klaudiae/FGCompanion-PolandEnhanced&lt;br /&gt;
&lt;br /&gt;
== Custom scenery set to be merged into TerraSync and FGData ==&lt;br /&gt;
&lt;br /&gt;
''These are now in the process of being merged. If you know of custom sceneries of islands or complete landmasses that have not been merged yet, contact the developers. (March 2021).''&lt;br /&gt;
* New Zealand scenery ([https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=36892 forum thread]). (March 2020)&lt;br /&gt;
* [[Australia_Custom_Scenery|Australian custom scenery project]] output - Regional definitions, and textures. See these forum threads for download and details: [https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=36145 official thread], demo scenery [https://forum.flightgear.org/viewtopic.php?f=19&amp;amp;t=36956 install details (March 2020)]. A partially completed Sydney airport (YSSY) is also available for download. The terrain in the demo scenery release is likely to be merged when a re-build of Australia is done.&lt;br /&gt;
* All Channel Islands (Jersey, Guernsey, Alderney, Sark, etc) ([https://github.com/legoboyvdlp/Jersey-fg-CustomScenery github]). (March 2020).&lt;br /&gt;
* Sri Lanka, [https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=37887 forum thread] and [https://github.com/legoboyvdlp/SriLanka-fg-CustomScenery Github]&lt;br /&gt;
&lt;br /&gt;
== Custom scenery which has been merged into TerraSync and FGData ==&lt;br /&gt;
&lt;br /&gt;
''You can remove old scenery folders containing known merged sceneries from your [[Howto:Install_scenery|scenery folder list]].''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Islands merged recently (2018-2019): Hawaii, Iceland, Island of Jan Mayen (Norway)&lt;br /&gt;
&lt;br /&gt;
== Old and undetermined custom scenery ==&lt;br /&gt;
&lt;br /&gt;
''Some of these may have been obsoleted by the release of the [[FlightGear World Scenery 2.0|new world scenery in November 2013]].''&lt;br /&gt;
&lt;br /&gt;
''Please move sceneries that aren't obsolete into other categories.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''France''': Custom scenery for France with improved landcover information and more detailed elevation information (no improvements on the objects) is under development. See the [[Custom France Scenery|Custom France Scenery page]]. (Pre WS 2.0)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:High_textures_transitions3.png|High detail France scenery&lt;br /&gt;
Image:High_textures_transitions4_1.png|High detail France scenery&lt;br /&gt;
Image:High_textures_transitions6_2.png|High detail France scenery&lt;br /&gt;
Image:High_textures_transitions10_1.png|Mont Blanc&lt;br /&gt;
Image:High_textures_transitions11_1.png|Aguille du midi?&lt;br /&gt;
Image:High_textures_transitions13_1.png|Matterhorn without landclass, just slope transitions&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Innsbruck (Austria) area''': The scenery currently covers a 1x1 degree area containing parts of Austria and Germany, and makes use of accurate data from the Corine Land Cover, and Open Street Map projects. See [http://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=5350 this forum post] and [[FlightGear Newsletter August 2009#Innsbruck Gets A Face Lift|the August 2009 newsletter]] for details. (Pre WS 2.0)&lt;br /&gt;
&lt;br /&gt;
* '''LOWI &amp;amp; Austria Scenery Preview''': This scenery includes the Innsbruck scenario and is much more complete than the previous. It is still experimental, but should try it as having been really good. Info and download can be found [[Innsbruck Airport|here]]. &lt;br /&gt;
&lt;br /&gt;
* '''Iberian Peninsula: Spain and Portugal''': custom scenery for Spain and Portugal with improved landcover and additional airports and objects. See the [[Custom Spain and Portugal Scenery|custom Spain and Portugal scenery page]].&lt;br /&gt;
&lt;br /&gt;
* '''EDDK''': Custom scenery for the Cologne/Bonn airport in Germany with very nice and realistic terminal buildings. Available from https://github.com/mherweg/EDDK-fg-CustomScenery.&lt;br /&gt;
&lt;br /&gt;
* '''Argentina''':  OSM-based custom scenery for Argentina and parts of Chile and Uruguay.&amp;lt;br/&amp;gt;Updated airports, landcover from OSM polygons, line data and objects using Osm2City. Updated frequently!&amp;lt;br/&amp;gt;Downloads:&lt;br /&gt;
** Buenos Aires province: https://github.com/bartacruz/scenery-6040 &lt;br /&gt;
** Cuyo Area + Santiago: https://github.com/bartacruz/scenery-cuyo&lt;br /&gt;
&lt;br /&gt;
{{suggested}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Custom scenery]]&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Suggested_custom_scenery&amp;diff=138951</id>
		<title>Suggested custom scenery</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Suggested_custom_scenery&amp;diff=138951"/>
		<updated>2024-01-12T19:39:03Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: Added custom Americas scenery&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Besides the official TerraSync scenery that is automatically synced while FlightGear is running, there are a number of custom sceneries available, created by users for beautifying some specific areas of the scenery. This page is a list of some '''suggested custom scenery''' for downloading and visiting. This list can not be complete as custom sceneries might come and go. It's worth to search the forum for additional custom sceneries. &lt;br /&gt;
&lt;br /&gt;
FlightGear [[Changelog 2020.3#2020.3.7|2020.3.7]] and later will ''automatically'' download buildings, roads, pylons, and other objects, based on Open Street Map (OSM) data - see [[OSM2City 1st Worldbuild|OSM2City 1st world build]]. You don't have to download OSM2City custom sceneries for these anymore. (March 2021)&lt;br /&gt;
&lt;br /&gt;
'''Quick update, March 2020/May 2020:''' &lt;br /&gt;
&lt;br /&gt;
* See '''[[Suggested_airports]]''' for a quick list of featured airports situated in well developed regions, with links to OSM2City scenery. It's suitable for newcomers to start at to explore surrounding regions. (March 2020)&lt;br /&gt;
&lt;br /&gt;
* '''[[Project3000]]''' adds a lot of clutter and buildings to airports which do not have models or details. It's a must have. It is planned to be integrated into the FG core eventually. [https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=27688 Forum thread]. (March 2020)&lt;br /&gt;
&lt;br /&gt;
* '''OSM2City scenery''' buildings, roads, pylons, and other objects, for the whole planet is now on TerraSync, and ''automatically downloaded'' by FlightGear [[Changelog 2020.3#2020.3.7|2020.3.7 and later]]. The current OSM2City output on TerraSync is from the [[Osm2city_worldbuild|1st world build of OSM2City]] scenery ([https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=35581 forum thread]). Custom sceneries for countries and regions are available [[Areas_populated_with_osm2city_scenery|'''here''']]. Note: Old custom sceneries (before March 2021) will contain folders for OSM2City output like Buildings, Roads or Pylons with outdated and obsolete objects. These folders will override the new higher quality and faster rendering objects from TerraSync. Remember to remove these from your custom scenery folder list! If your custom scenery contains sub-folders that are not obsolete, like Terrain, you can leave these alone and only delete OSM2City sub-folders in your custom scenery folder. There are some OSM2City custom sceneries that are not obsolete - these have builds of OSM2City with different options from the 1st worldbuild - for example, custom scenery with auto-generation on in areas without good OSM coverage like the Hawaii custom scenery. (March 2021)&lt;br /&gt;
&lt;br /&gt;
* '''[[:Category:Scenery_enhancement_projects|Custom terrain &amp;amp; region definition projects]]''': There are ongoing scenery enhancement projects to update both regional definitions and terrain in large areas like the [[Australia_Custom_Scenery|Australia]] (regional definitions are planned to be added to FG core). This a partial list, search the '''[https://forum.flightgear.org/viewforum.php?f=5 scenery forum]''' for details. Some of the output of projects like Hawaii terrain has already been integrated into Terrasync. (March 2020)&lt;br /&gt;
&lt;br /&gt;
* Status of terrain in Terrasync: Terrasync scenery which is automatically downloaded has high resolution terrain. All of Europe currently has high resolution terrain from CORINE data. A lot of old pre-world scenery 2 should be obsolete. (March 2020)&lt;br /&gt;
&lt;br /&gt;
* ''Status of next generation of scenery technology: World Scenery 3.0'': There is ongoing work being done towards WS 3.0 which will use [[Virtual Planet Builder]] (VPB) toolchain from the Open Scene Graph project, whose scenegraph is already used in Flightgear. A prototype of the world scenery technology is available in the FlightGear next branch, and an example scenery for the current prototype is available (March 2021). For more information see the [[World_Scenery_3.0_roadmap|World Scenery 3.0 Roadmap]]. To help with the WS 3.0 effort contact the team via the &amp;quot;[[Mailing lists|fg-devel]]&amp;quot; mailing list. &lt;br /&gt;
* ''Status of next world-build of scenery: World Scenery 3.x'': There is ongoing work towards the next world build - see the the [[World Scenery 3.0 roadmap]].  Contributing land cover and terrain data currently used in custom sceneries to the central repository when it's established in future will help get work into WS 3.0. It is intended for there to be a way to contribute improvements back to a central source. For example, a landcover shapefile server. People who have generated higher quality landcover and terrain for custom sceneries from multiple sources should keep in touch with WS 3.0 development to get their contributions in the next world build. Clipped landcover shapefiles from various sources used for WS 2.0 have been available for a while and re-generated in preparation for a new world scenery build, see [https://sourceforge.net/p/flightgear/mailman/message/36730169/ this] mailinglist post. WS3 development is organised via the &amp;quot;[[Mailing lists|fg-devel]]&amp;quot; mailing list. (March 2021)&lt;br /&gt;
&lt;br /&gt;
* Status of terrain in custom sceneries: The page as it stands is missing almost all custom terrain. Some old island custom sceneries have been merged into the automatically downloaded sceneries terrasync. [[User:Wlbragg#Kansas_Custom_Scenery|Kansas/Midwest]] and [[US-Tennessee_Custom_Scenery|Tennessee]] are two examples of custom sceneries that aren't obsolete (March 2020).&lt;br /&gt;
&lt;br /&gt;
:: ''If you are the creator of an island scenery you can add it to [[TerraSync]] by contacting the flightgear-devel [[Mailing_lists|mailing list]]''.&lt;br /&gt;
&lt;br /&gt;
* Status of regional definitions in FG core: Areas with regional definitions and materials which use recent engine features, that are in areas with reasonably high resolution terrain, have ''extremely'' high fidelity at high settings. ''The following list is not comprehensive''. It's just off the top of my head. &lt;br /&gt;
::''Areas with regional definitions and materials that were updated with recent features like overlays and have high resolution terrain'': &lt;br /&gt;
:::Hawaii, Norway, Iceland, Sweden, Mediterranean landscapes (Spain, Sicily, Portugal, southern Italy, Greece). &lt;br /&gt;
::''Areas with partial overlays and developed scenery with high resolution terrain'': &lt;br /&gt;
:::Swizerland, Alps (in many countries), central Europe &amp;amp; England, Corsica. &lt;br /&gt;
::''Well developed areas with regional definitions that predate overlays'': &lt;br /&gt;
:::Alaska, Caribbean Islands, Bermuda, South America (lower res terrain), Grand Canyon, California (USA), Mojave Desert (lower res terrain than Europe), Madagascar (lower res terrain than Europe).&lt;br /&gt;
::''Somewhat recently developed areas:'' &lt;br /&gt;
:::South Africa in places (lower res terrain), Dubai, Mediterranean part of Africa.&lt;br /&gt;
&lt;br /&gt;
:: ''If you are the author of an existing scenery that has regional definitions and/or GPL compatible textures that are an improvement to what is present in [[FGData]] ([[Howto:Regional_texturing#Guidelines|Checklist]]), you can add it to FGData by having it reviewed and merged. Regional definitions can be merged even when the terrain part cannot be merged until a rebuild of the complete landmass is done.''&lt;br /&gt;
&lt;br /&gt;
== New scenery for the Americas ==&lt;br /&gt;
&lt;br /&gt;
[[File:Cygd-c140-winter.jpg|thumb|New FlightGear Americas scenery, approaching Georgian Bay (Lake Huron) in winter. Note the detail for inland water.]]&lt;br /&gt;
New scenery is available for all of the Americas, including islands geographically or politically associated with them (such as Greenland, the Hawaiian Islands, Bermuda, and the Galapagos). This is intended to replace the current default TerraGear scenery as soon as we're ready to rebuild osm2city for it. The scenery includes many more airports (5-10x as many as the default scenery, most with correct taxiways and aprons), detailed inland water, and detailed 30m digital elevations. See [[FlightGear Americas Scenery (custom)]] for download details.&lt;br /&gt;
&lt;br /&gt;
This scenery is suitable for use as a default to fill in the gaps between some of the more-detailed custom-scenery areas listed below.&lt;br /&gt;
&lt;br /&gt;
== Custom scenery that is not obsolete (May 2021) ==&lt;br /&gt;
&lt;br /&gt;
''This is only a fraction of available scenery (May 2021). Search the [https://forum.flightgear.org/viewforum.php?f=5 scenery forum] for more.''&lt;br /&gt;
&lt;br /&gt;
''See [[Howto:Install_scenery|How to install custom scenery packages]].''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''USA, Tennessee:''' custom scenery for Tennessee by [[User:Scttgs|Scott Giese]](xDraconianx). This is very high resolution scenery created to test potential resolution &amp;amp; performance for the next world scenery build. See the [https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=35521 forum thread] for feedback and more info. See the [[US-Tennessee_Custom_Scenery|wiki page]] for downloads. (March 2020)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
File:US-Tennessee-EastCentral.jpg&lt;br /&gt;
File:US-Tennessee-West.jpg&lt;br /&gt;
File:US-Tennessee-East.jpg&lt;br /&gt;
File:US-Tennessee-WestCentral.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''USA, Kansas &amp;amp; Ohio:''' custom scenery for the entire states of Kansas and Ohio created by [[User:Wlbragg|Wlbragg]]. This high resolution scenery includes textures. See the [[User:Wlbragg#Kansas_Custom_Scenery|wiki page]] for downloads and info. (March 2020)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
File:Kansas_Scenery_Two.jpg&lt;br /&gt;
File:KDAY_James_M._Cox_Dayton_International_Airport.jpg&lt;br /&gt;
File:Kansas_Scenery_One.jpg&lt;br /&gt;
File:Kansas_Scenery_Three.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Scandinavia''': custom scenery covering Scandinavian countries such as Norway, Sweden, and Finland by [[User:D-ECHO|D-ECHO]]. Norway and Sweden have some of the most detailed regional definitions using recent engine features. This custom scenery project further improves it by mainly adding more detailed land type classification, digital elevation data, as well as updated airports. As of March 2020 it updates parts of these countries. See the [[Scandinavia Custom Scenery]] page for download and details.&lt;br /&gt;
&lt;br /&gt;
* '''USA, Pennsylvania, New Jersey, and New York City''': custom scenery for these Eastern US states by montagdude. See [https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=38041 forum thread]. Contains custom terrain, OSM2City, and custom materials. (September 2020)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
File:Ec135-manhattan.jpg&lt;br /&gt;
File:Pa28-wilkes-barre.jpg&lt;br /&gt;
File:C182s-atlantic-city.jpg&lt;br /&gt;
File:Dr400-philadelphia.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''USA, Virginia, Maryland, Delaware, and the District of Columbia''': custom scenery for these Mid-Atlantic US states by montagdude. See [https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=37322 forum thread]. Contains custom terrain, OSM2City, and custom materials. (April 2020)&lt;br /&gt;
&lt;br /&gt;
* '''USA, Rhode Island and southeastern Massachusetts''': custom scenery for Rhode Island and southeastern parts of the state of Massachusetts by montagdude. See [https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=36977 forum thread]. Contains OSM2City. (March 2020)&lt;br /&gt;
&lt;br /&gt;
* '''USA, Champaign, Chicago, Milwaukee and surrounding areas''': custom scenery for Champaign, Bloomington, Chicago, Milwaukee and northern Illinois by pb321. See [https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=39209 forum thread] and to report issues. Contains OSM2City and (optional) color corrected USGS orthophotos. (May 2021)&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
File:KPWK-Chicago_Executive.jpg&lt;br /&gt;
File:ChicagoAM-OrthoCropped.jpg&lt;br /&gt;
File:Approaching KMKE.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''USA, Oshkosh, Green Bay, U.P. of Michigan and surrounding areas''': custom scenery for Oshkosh, Appleton, Green Bay and the central Upper Peninsula of Michigan by pb321. See [https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=39264 forum thread] and to report issues. Contains OSM2City and (optional) color corrected USGS orthophotos. (May 2021)&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
File:GreenBayNorth.jpg&lt;br /&gt;
File:Near Houghton MIa.jpg&lt;br /&gt;
File:MarquetteA.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Venezuela: [[Project Venezuela]]:''' custom scenery for Venezuela by [[User:Legoboyvdlp|J. Redpath]], with improved airport layouts, and objects at several airports. Highly improved over TerraSync status. (March 2020)&lt;br /&gt;
&lt;br /&gt;
* '''Canary Islands:''' custom scenery for the Canary Islands by [[User:D-ECHO|D-ECHO]] with improved terrain, objects, vegetation, building, reworked airports, mostly with buildings and furniture.  Check out the [[Canary_Islands_Custom_Scenery|wiki page]]. (March 2020)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
GCLP-1.jpg&lt;br /&gt;
GCLP-2.jpg&lt;br /&gt;
GCLP-3.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Argentina''':  OSM-based custom scenery for Argentina and parts of Chile and Uruguay by Barta.&amp;lt;br/&amp;gt;Updated airports, landcover from OSM polygons, line data and objects using Osm2City. Updated frequently!&amp;lt;br/&amp;gt;Downloads:&lt;br /&gt;
:: All output: [http://scenery.bartatech.net/ http://scenery.bartatech.net/] . As of July 2020 these areas are available: Santiago (including Valparaiso), Mendoza, Buenos Aires, complete Rosario area. The other parts only have terrain (no roads, buildings etc). The server will eventually contain all of the sceneries in the southern cone of South America: Argentina, Chile, Uruguay.&lt;br /&gt;
::: It's possible to use the [http://scenery.bartatech.net/ scenery.bartatech.net] server directly as a Terrasync server. Just use the following in the [[FlightGear_Qt_launcher|launcher]] or .fgfsrc file: &lt;br /&gt;
::: ''--prop:/sim/terrasync/http-server=&amp;lt;nowiki&amp;gt;http://scenery.bartatech.net/&amp;lt;/nowiki&amp;gt;''&lt;br /&gt;
:: Buenos Aires province: https://github.com/bartacruz/scenery-6040 &lt;br /&gt;
:: Cuyo Area + Santiago: https://github.com/bartacruz/scenery-cuyo&lt;br /&gt;
&lt;br /&gt;
* '''USA, Florida''': custom scenery for Florida by [[User:Legoboyvdlp|J. Redpath]] with both terrain and OSM2City. It also covers the [[Space Shuttle]] landing site at [[Shuttle_Landing_Facility|KTTS]]. See the [https://github.com/legoboyvdlp/Florida-fg-CustomScenery repository] downloads section for the [https://github.com/legoboyvdlp/Florida-fg-CustomScenery/archive/master.zip zip-file].&lt;br /&gt;
&lt;br /&gt;
* '''London, England''': custom scenery by [[User:Legoboyvdlp|J. Redpath]] for the London area including an improved Gatwick Airport (ICAO: EGKK). See the [https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=37444 forum thread] and [https://github.com/legoboyvdlp/London-fg-CustomScenery repository] downloads section for the [https://github.com/legoboyvdlp/London-fg-CustomScenery/archive/master.zip zip-file].&lt;br /&gt;
&lt;br /&gt;
* '''Moscow area, Russia''': custom scenery by [[User:Legoboyvdlp|J. Redpath]] for the Moscow area covering 14 tiles. See the [https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=37887 forum thread] for the github [https://github.com/legoboyvdlp/Moscow-fg-CustomScenery/archive/master.zip download]. (August 2020)&lt;br /&gt;
&lt;br /&gt;
* '''Valdivostock area, Russia''': custom scenery by [[User:Legoboyvdlp|J. Redpath]] for the Vadivostock area. See the [https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=37887 forum thread] for the github [https://github.com/legoboyvdlp/Vladivostok-fg-CustomScenery/archive/master.zip download]. (August 2020)&lt;br /&gt;
&lt;br /&gt;
* '''Eastern China''': custom scenery by [[User:Legoboyvdlp|J. Redpath]] for the eastern portion of China covering the area around ZSAM and ZSNJ airports. See the [https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=37887 forum thread] for the github [https://github.com/legoboyvdlp/EastChina-fg-CustomScenery/archive/master.zip download]. (August 2020)&lt;br /&gt;
&lt;br /&gt;
* '''Beijing area, China''': custom scenery by [[User:Legoboyvdlp|J. Redpath]] for the area around Beijing covering 15 tiles. See the [https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=37887 forum thread] for the github [https://github.com/legoboyvdlp/Beijing-fg-CustomScenery/archive/master.zip download]. (August 2020)&lt;br /&gt;
&lt;br /&gt;
* '''Sri Lanka''': 2019 custom scenery by [[User:Legoboyvdlp|J. Redpath]] for the island of Sri Lanka in the Indian ocean including rebuilt terrain, OSM2City output, and improved airports. See the [https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=37887 forum thread] for github [https://codeload.github.com/legoboyvdlp/SriLanka-fg-CustomScenery/zip/master download].&lt;br /&gt;
* '''Dominican Republic:''' 2021 custom scenery by flc972 for [[Gregorio Luperon International Airport]] (MDPP) with detailed modeling of interiors, night lightmaps, ground net and animated jetways as well as some terrain. The airport is located on the Caribbean island of Hispaniola. See the [https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=39179 forum thread] for bitbucket [https://bitbucket.org/fableb/flcs-mdpp_airport/downloads/ download] .&lt;br /&gt;
* '''Turkey:''' custom scenery including 12 airports. Can be downloaded from https://github.com/Klaudiae/FGCompanion-TurkeyEnhanced&lt;br /&gt;
* '''Turkey, Şanlıurfa:''' custom scenery by TheFGFSEagle. Can be downloaded from https://github.com/TheFGFSEagle/LTCS-scenery&lt;br /&gt;
* '''Poland:''' custom scenery including 14 airports. Can be downloaded from https://github.com/Klaudiae/FGCompanion-PolandEnhanced&lt;br /&gt;
&lt;br /&gt;
== Custom scenery set to be merged into TerraSync and FGData ==&lt;br /&gt;
&lt;br /&gt;
''These are now in the process of being merged. If you know of custom sceneries of islands or complete landmasses that have not been merged yet, contact the developers. (March 2021).''&lt;br /&gt;
* New Zealand scenery ([https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=36892 forum thread]). (March 2020)&lt;br /&gt;
* [[Australia_Custom_Scenery|Australian custom scenery project]] output - Regional definitions, and textures. See these forum threads for download and details: [https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=36145 official thread], demo scenery [https://forum.flightgear.org/viewtopic.php?f=19&amp;amp;t=36956 install details (March 2020)]. A partially completed Sydney airport (YSSY) is also available for download. The terrain in the demo scenery release is likely to be merged when a re-build of Australia is done.&lt;br /&gt;
* All Channel Islands (Jersey, Guernsey, Alderney, Sark, etc) ([https://github.com/legoboyvdlp/Jersey-fg-CustomScenery github]). (March 2020).&lt;br /&gt;
* Sri Lanka, [https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=37887 forum thread] and [https://github.com/legoboyvdlp/SriLanka-fg-CustomScenery Github]&lt;br /&gt;
&lt;br /&gt;
== Custom scenery which has been merged into TerraSync and FGData ==&lt;br /&gt;
&lt;br /&gt;
''You can remove old scenery folders containing known merged sceneries from your [[Howto:Install_scenery|scenery folder list]].''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Islands merged recently (2018-2019): Hawaii, Iceland, Island of Jan Mayen (Norway)&lt;br /&gt;
&lt;br /&gt;
== Old and undetermined custom scenery ==&lt;br /&gt;
&lt;br /&gt;
''Some of these may have been obsoleted by the release of the [[FlightGear World Scenery 2.0|new world scenery in November 2013]].''&lt;br /&gt;
&lt;br /&gt;
''Please move sceneries that aren't obsolete into other categories.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''France''': Custom scenery for France with improved landcover information and more detailed elevation information (no improvements on the objects) is under development. See the [[Custom France Scenery|Custom France Scenery page]]. (Pre WS 2.0)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:High_textures_transitions3.png|High detail France scenery&lt;br /&gt;
Image:High_textures_transitions4_1.png|High detail France scenery&lt;br /&gt;
Image:High_textures_transitions6_2.png|High detail France scenery&lt;br /&gt;
Image:High_textures_transitions10_1.png|Mont Blanc&lt;br /&gt;
Image:High_textures_transitions11_1.png|Aguille du midi?&lt;br /&gt;
Image:High_textures_transitions13_1.png|Matterhorn without landclass, just slope transitions&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Innsbruck (Austria) area''': The scenery currently covers a 1x1 degree area containing parts of Austria and Germany, and makes use of accurate data from the Corine Land Cover, and Open Street Map projects. See [http://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=5350 this forum post] and [[FlightGear Newsletter August 2009#Innsbruck Gets A Face Lift|the August 2009 newsletter]] for details. (Pre WS 2.0)&lt;br /&gt;
&lt;br /&gt;
* '''LOWI &amp;amp; Austria Scenery Preview''': This scenery includes the Innsbruck scenario and is much more complete than the previous. It is still experimental, but should try it as having been really good. Info and download can be found [[Innsbruck Airport|here]]. &lt;br /&gt;
&lt;br /&gt;
* '''Iberian Peninsula: Spain and Portugal''': custom scenery for Spain and Portugal with improved landcover and additional airports and objects. See the [[Custom Spain and Portugal Scenery|custom Spain and Portugal scenery page]].&lt;br /&gt;
&lt;br /&gt;
* '''EDDK''': Custom scenery for the Cologne/Bonn airport in Germany with very nice and realistic terminal buildings. Available from https://github.com/mherweg/EDDK-fg-CustomScenery.&lt;br /&gt;
&lt;br /&gt;
* '''Argentina''':  OSM-based custom scenery for Argentina and parts of Chile and Uruguay.&amp;lt;br/&amp;gt;Updated airports, landcover from OSM polygons, line data and objects using Osm2City. Updated frequently!&amp;lt;br/&amp;gt;Downloads:&lt;br /&gt;
** Buenos Aires province: https://github.com/bartacruz/scenery-6040 &lt;br /&gt;
** Cuyo Area + Santiago: https://github.com/bartacruz/scenery-cuyo&lt;br /&gt;
&lt;br /&gt;
{{suggested}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Custom scenery]]&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=File:Cygd-c140-winter.jpg&amp;diff=138950</id>
		<title>File:Cygd-c140-winter.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=File:Cygd-c140-winter.jpg&amp;diff=138950"/>
		<updated>2024-01-12T19:36:05Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Approaching Georgian Bay (Lake Huron) in winter. Note the detail of the inland water.&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Americas_Scenery&amp;diff=138949</id>
		<title>Americas Scenery</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Americas_Scenery&amp;diff=138949"/>
		<updated>2024-01-10T23:43:29Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: /* Gallery */ add more screencaps&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Custom scenery covering all of the Americas (and some islands politically or geographically associated with them including Greenland, Iceland, Bermuda, the Falklands/Malvinas, the Galapagos, the Hawaiian Islands, Easter Island, and the South Sandwich and South Georgia Islands).&lt;br /&gt;
&lt;br /&gt;
https://davidmegginson.github.io/fgfs-scenery-build/&lt;br /&gt;
&lt;br /&gt;
This scenery has detailed coastlines and waterways, together with basic roads, railroads, and powerline rights-of-way, all from OpenStreetMap (to be supplemented by [[osm2city]]). The airports come from a more-recent snapshot of the X-Plane Scenery Gateway, so they are more up-to-date than the ones in the default FlightGear distro. It was begun in 2022, and as of January 2024, is being continually updated.&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
File:Vancouver BC evening.png|Downtown Vancouver BC at dusk, facing north, with Kitsilano in the foreground and Stanley Park on the left.&lt;br /&gt;
File:Grand-canyon.jpg|The Grand Canyon, Arizona, USA.&lt;br /&gt;
File:Ipanema.jpg|thumb|Flying over Ipanema, Rio de Janiero at night.&lt;br /&gt;
File:Jasper BC Rocky Mountains.png|SAR DHC-3 Otter flying through the Rocky Mountains near Jasper AB (CYJA).&lt;br /&gt;
File:Miami Beach FL hazy afternoon.png|Piper Cub flying along Miami Beach on a hazy afternoon.&lt;br /&gt;
File:Goderich ON winter.png|Cessna 140 approaching a frozen-over Georgian Bay (Lake Huron) in winter, near Goderich ON (CYGD).&lt;br /&gt;
File:Falklands.jpg|The Falklands/Malvinas in the South Atlantic.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Scenery in North America]]&lt;br /&gt;
[[Category:Custom scenery]]&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=File:Falklands.jpg&amp;diff=138948</id>
		<title>File:Falklands.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=File:Falklands.jpg&amp;diff=138948"/>
		<updated>2024-01-10T23:42:51Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Falklands/Malvinas in the South Atlantic.&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=File:Grand-canyon.jpg&amp;diff=138947</id>
		<title>File:Grand-canyon.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=File:Grand-canyon.jpg&amp;diff=138947"/>
		<updated>2024-01-10T23:41:16Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Flying in the Grand Canyon.&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=File:Ipanema.jpg&amp;diff=138946</id>
		<title>File:Ipanema.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=File:Ipanema.jpg&amp;diff=138946"/>
		<updated>2024-01-10T23:39:18Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ipanema, Rio de Janiero and night.&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Americas_Scenery&amp;diff=138945</id>
		<title>Americas Scenery</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Americas_Scenery&amp;diff=138945"/>
		<updated>2024-01-10T23:34:48Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: Update for broader coverage.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Custom scenery covering all of the Americas (and some islands politically or geographically associated with them including Greenland, Iceland, Bermuda, the Falklands/Malvinas, the Galapagos, the Hawaiian Islands, Easter Island, and the South Sandwich and South Georgia Islands).&lt;br /&gt;
&lt;br /&gt;
https://davidmegginson.github.io/fgfs-scenery-build/&lt;br /&gt;
&lt;br /&gt;
This scenery has detailed coastlines and waterways, together with basic roads, railroads, and powerline rights-of-way, all from OpenStreetMap (to be supplemented by [[osm2city]]). The airports come from a more-recent snapshot of the X-Plane Scenery Gateway, so they are more up-to-date than the ones in the default FlightGear distro. It was begun in 2022, and as of January 2024, is being continually updated.&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
File:Vancouver BC evening.png|Downtown Vancouver BC at dusk, facing north, with Kitsilano in the foreground and Stanley Park on the left.&lt;br /&gt;
File:St Louis arch.png|Flying towards the Gateway Arch in St Louis, MO.&lt;br /&gt;
File:Jasper BC Rocky Mountains.png|SAR DHC-3 Otter flying through the Rocky Mountains near Jasper AB (CYJA).&lt;br /&gt;
File:Miami Beach FL hazy afternoon.png|Piper Cub flying along Miami Beach on a hazy afternoon.&lt;br /&gt;
File:Goderich ON winter.png|Cessna 140 approaching a frozen-over Georgian Bay (Lake Huron) in winter, near Goderich ON (CYGD).&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Scenery in North America]]&lt;br /&gt;
[[Category:Custom scenery]]&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Canada-US_custom_scenery&amp;diff=138944</id>
		<title>Canada-US custom scenery</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Canada-US_custom_scenery&amp;diff=138944"/>
		<updated>2024-01-10T23:31:53Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: David.megginson moved page Canada-US custom scenery to FlightGear Americas Scenery (custom): SCenery renamed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[FlightGear Americas Scenery (custom)]]&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Americas_Scenery&amp;diff=138943</id>
		<title>Americas Scenery</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Americas_Scenery&amp;diff=138943"/>
		<updated>2024-01-10T23:31:53Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: David.megginson moved page Canada-US custom scenery to FlightGear Americas Scenery (custom): SCenery renamed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Custom scenery covering all of the Continental US, most of Canada, and parts of Mexico is available at&lt;br /&gt;
&lt;br /&gt;
https://davidmegginson.github.io/fgfs-scenery-build/&lt;br /&gt;
&lt;br /&gt;
This scenery has detailed coastlines and waterways, together with basic roads, railroads, and powerline rights-of-way, all from OpenStreetMap (to be supplemented by [[osm2city]]). The airports come from a more-recent snapshot of the X-Plane Scenery Gateway, so they are more up-to-date than the ones in the default FlightGear distro. It was begun in 2022, and as of May 2023, is being continually updated.&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
File:Vancouver BC evening.png|Downtown Vancouver BC at dusk, facing north, with Kitsilano in the foreground and Stanley Park on the left.&lt;br /&gt;
File:St Louis arch.png|Flying towards the Gateway Arch in St Louis, MO.&lt;br /&gt;
File:Jasper BC Rocky Mountains.png|SAR DHC-3 Otter flying through the Rocky Mountains near Jasper AB (CYJA).&lt;br /&gt;
File:Miami Beach FL hazy afternoon.png|Piper Cub flying along Miami Beach on a hazy afternoon.&lt;br /&gt;
File:Goderich ON winter.png|Cessna 140 approaching a frozen-over Georgian Bay (Lake Huron) in winter, near Goderich ON (CYGD).&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Scenery in North America]]&lt;br /&gt;
[[Category:Custom scenery]]&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Create_custom_terrain&amp;diff=138726</id>
		<title>Howto:Create custom terrain</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Create_custom_terrain&amp;diff=138726"/>
		<updated>2023-12-02T16:02:51Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: /* Resources */ fix dead link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Custom terrain''' in [[FlightGear]] is currently generated through processing shapefiles with [[TerraGear]]. In order to add custom scenery to FlightGear, you must create a custom shapefile.&lt;br /&gt;
&lt;br /&gt;
A shapefile is a proprietary spatial information format. You can edit them with almost every GIS package. QGIS is quite a good package for this type of project.&lt;br /&gt;
&lt;br /&gt;
Your goal for editing area data is to create a shapefile of a seamless layer of polygons which correspond to some type of land cover. This data is then fed into [http://mapserver.flightgear.org the mapserver] and, possibly, TerraGear to create new scenery.&lt;br /&gt;
&lt;br /&gt;
=== Evaluating the current data ===&lt;br /&gt;
Before you begin, please make sure the area you want to improve doesn't already have good coverage. Just because it looks bad in FlightGear does not mean the area has not been improved. For this, you will need to check the Flightgear Mapserver, at [http://mapserver.flightgear.org/ mapserver.flightgear.org].&lt;br /&gt;
&lt;br /&gt;
Let's take a look at the Finistère in Brittany, Western France: if you click [http://mapserver.flightgear.org/map/?lon=-4.41840585539649&amp;amp;lat=48.4484146908477&amp;amp;zoom=11&amp;amp;layers=0B000000FTTFFFFFTFT here], you will quickly see and understand how FlightGear interprets the data pertaining to Finistère county. Some towns/cities (red), a few forests (green), etc. Overall, it is not a very good resolution: a lot of angles, the detail level is not that good, some towns are missing. If you want a better definition on ground, there is some work to be done! The goal being to obtain something like this:&lt;br /&gt;
&lt;br /&gt;
# [http://mapserver.flightgear.org/map/?lon=13.40385&amp;amp;lat=52.50199&amp;amp;zoom=11&amp;amp;layers=B0000000TFFFTFFFTFFFFFFF Berlin]&lt;br /&gt;
# [http://mapserver.flightgear.org/map/?lon=9.40368&amp;amp;lat=47.63699&amp;amp;zoom=11&amp;amp;layers=B0000000TFFFTFFFTFFFFFFF Bodensee surroundings]&lt;br /&gt;
# [http://mapserver.flightgear.org/map/?lon=-88.55704&amp;amp;lat=43.98436&amp;amp;zoom=11&amp;amp;layers=B0000000TFFFTFFFTFFFFFFF Oshkosh surroundings]&lt;br /&gt;
# [http://mapserver.flightgear.org/map/?lon=-62.87648&amp;amp;lat=17.69865&amp;amp;zoom=10&amp;amp;layers=B0000000TFFFTFFFTFFFFFFF Carribean Islands]&lt;br /&gt;
&lt;br /&gt;
You will immediately notice the improvement to the ground. When flying, the difference is huge. Moreover, this enables the autogeneration of cities, trees, farmland, and so on.&lt;br /&gt;
&lt;br /&gt;
=== Downloading the Landsat pictures ===&lt;br /&gt;
[[File:C31e36f2a2cbb278a1603dfe2ba91193.media.395x288.png|thumb|200px|Landsat Map Search]]&lt;br /&gt;
[[File:1c9334d970963364b5ce1bc3a166a4fa.media.426x192.png|thumb|200px|Preview and download Landsat image]]&lt;br /&gt;
Browse to [http://glcfapp.glcf.umd.edu:8080/esdi/index.jsp the Earth Science Data Interface interface] to grab your [http://en.wikipedia.org/wiki/Landsat Landsat] data.&lt;br /&gt;
&lt;br /&gt;
# Click ''Map Search''.&lt;br /&gt;
# Tick the ETM+ box (left column).&lt;br /&gt;
# Click on ''Update Map'' on the right bottom of the map.&lt;br /&gt;
# Click on the ''Place'' tab on the upper side of the map, in order to do a search by place, or you can do a search by latitude/longitude.&lt;br /&gt;
# In the Place field, type ''Amsterdam, Netherlands'' for instance.&lt;br /&gt;
# Now click the button with the mouse and the small + sign. This will allow you to select image tiles. Select all images that cover your area of interest, in our example this is just one image.&lt;br /&gt;
# Click on ''Preview and download''. This bring you to a selection page were you can choose what image you want to download. It is likely that there are pictures available from different dates for your area. Picking the most recent one is best, for known reasons.&lt;br /&gt;
# Clicking the ID will not bring you directly to the download page, first you have to click the ''Download'' button.&lt;br /&gt;
# Download the _nn80.tif.gz file (if this is not available, try an older image). Note that Landsat images are separated in different bands. Band 1/2/3/4/5/7 have 30m/Pixel resolution while band 8 (_nn80.tif.gz) has 15 meters per pixel.&lt;br /&gt;
# Uncompress the ''.tif.gz'' files in the directory of your choice.&lt;br /&gt;
&lt;br /&gt;
=== Working with QGIS ===&lt;br /&gt;
[[File:QGIS_texel_1.png|thumb|200px|QGIS with the TIFF image.]]&lt;br /&gt;
[[File:QGIS_texel_2.png|thumb|200px|Creating the class column.]]&lt;br /&gt;
[[File:QGIS_texel_3.png|thumb|200px|Toggle editing.]]&lt;br /&gt;
[[File:QGIS_texel_4.png|thumb|200px|Tracing the small island.]]&lt;br /&gt;
[[File:QGIS_texel_5.png|thumb|200px|The finished small island polygon.]]&lt;br /&gt;
Using a GIS software gives you the opportunity to realize a full range of interesting operations: modification of map data, updates on the ground classification, etc.&lt;br /&gt;
&lt;br /&gt;
* QGIS Download for Linux/OSX/Windows [http://www.qgis.org/en/download/current-software.html]&lt;br /&gt;
&lt;br /&gt;
The following is largely adapted from the [http://stattosoftware.com/flightgear/tutorial/index.html original QGIS scenery tutorial], which you may find of use.&lt;br /&gt;
# Launch QGIS.&lt;br /&gt;
# Click on &amp;lt;tt&amp;gt;Layer &amp;gt; Add a Raster layer&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# Modify the filter to search for *.tif files.&lt;br /&gt;
# Add the TIFF file you have just downloaded.&lt;br /&gt;
# Rightclick on the image in the layer sidebar and choose &amp;lt;tt&amp;gt;Set layer CRS&amp;lt;/tt&amp;gt;, to select a projection model. This depends on the location of the area you're about to create. Look up your project's UTM coordinate through [http://upload.wikimedia.org/wikipedia/commons/e/ed/Utm-zones.jpg this image]. For Texel this is 31U, north of the equator, so we choose &amp;lt;tt&amp;gt;Projected Coordinate Systems &amp;gt; Universal Transverse Mercator (UTM) &amp;gt; WSG84 / UTM zone 31N&amp;lt;/tt&amp;gt;. Locations south of the equator may need to use the 'N' zones as well. For example, the correct projection for Perth, Australia is &amp;lt;tt&amp;gt;Projected Coordinate Systems &amp;gt; Universal Transverse Mercator (UTM) &amp;gt; WSG84 / UTM zone 50N&amp;lt;/tt&amp;gt;. Always select 'WGS84', as that is the globe model used in FlightGear. &lt;br /&gt;
# Click on &amp;lt;tt&amp;gt;Layer &amp;gt; New &amp;gt; New Shapefile Layer&amp;lt;/tt&amp;gt; or on the corresponding icon. A dialog should pop up.&lt;br /&gt;
## Make sure the vector type is set to polygon. &lt;br /&gt;
## Click the 'specify CRS' button, to select a projection model. This must be the same as we did for the tiff background image.&lt;br /&gt;
## You need to create a data column for this layer. Create a new attribute called 'class'. Make sure it is a 'text data' (string) column. Add it to the attribute list. &lt;br /&gt;
## The 'OK' button should now be available for you to select. Select 'OK'. &lt;br /&gt;
## There should be a dialog box prompting you to save your vector layer. Save it in your scenery directory with your GeoTIFF. (This is not required but significantly helps organization.) &lt;br /&gt;
# Your vector layer should appear in the left-hand toolbar. You are ready to begin digitizing.&lt;br /&gt;
# Select the newly created layer in the layer list, toggle editing (&amp;lt;tt&amp;gt;Layer &amp;gt; Toggle Editing&amp;lt;/tt&amp;gt;) and finally select Capture Polygon from the same menu/toolbar.&lt;br /&gt;
# With your mouse, left-click on a point at the southwestern edge of the small island.&lt;br /&gt;
# We now want to trace the outline of the island. Move your mouse to another point below the first point and click it again. Your mouse should show a red line. The points should not be redundant - for instance, as long as the line between two points is straight, there is no need for another point in between the two.&lt;br /&gt;
# You will want to digitize features in a circular manner to avoid problems. You can always go back and add points later. With this in mind, move your mouse to a third point on the island. A small triangle should form, representing the polygon which would result if you decided you were done with the polygon. &lt;br /&gt;
# Continue outlining the island by clicking along its shoreline. When you are on your last point, instead of left-clicking, right-click. QGIS will finish the polygon. &lt;br /&gt;
# A dialog box will pop up, asking you to type in the value for 'class'. Since this is a shoal, existing of just sand, type in ''Sand''. This step is important - it is how you know what each polygon should be mapped to in our finished scenery. A list of &amp;quot;allowed&amp;quot; materials (and thus classes) is available [http://wiki.osgeo.org/wiki/LandcoverDB_CS_Detail here].&lt;br /&gt;
&lt;br /&gt;
Continue with tracing all shapes on the island: towns, industrial areas, grass, farmland etc. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Snapping===&lt;br /&gt;
It is very important to enable &amp;quot;snapping&amp;quot; now.&lt;br /&gt;
&lt;br /&gt;
Snapping means each polygon will fit together nicely, like a jigsaw puzzle. If snapping is not enabled, the polygons will not form a continuous layer, which has a number of different problems.&lt;br /&gt;
&lt;br /&gt;
We don't want small holes in our scenery, nor do we want overlapping polygons. Snapping adjusts each point as you go by - you will miss occasionally and have to correct it - so you don't have to worry about lining the polygons up precisely.&lt;br /&gt;
&lt;br /&gt;
# Open &amp;lt;tt&amp;gt;Settings &amp;gt; Snapping Options&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# Click the tickbox(es) in front of your layer(s) and set Tolerance to 20 (map units). A smaller tolerance will make it easier to work with very small and detailed layers, while a bigger value makes it easier to snap when zoomed out.&lt;br /&gt;
# Click OK to save the snapping options.&lt;br /&gt;
&lt;br /&gt;
==== Distinguishing Land Class Types from LANDSAT data ====&lt;br /&gt;
You may Google Maps or Yahoo Maps running alongside your program to see what is what on the black/white image, but most areas are recognizable without use of the software. If you need help determining what part of the black-and-white image, please currently refer to the [http://stattosoftware.com/flightgear/tutorial/index.html#distinguishing original Stattosoftware Scenery Tutorial]. Instead of determining in a single band image you can also combine different ETM+ bands in a RGB file. Some information about different band combinations can be found here [http://web.pdx.edu/~emch/ip1/bandcombinations.html].&lt;br /&gt;
&lt;br /&gt;
=== Exporting the shapefile ===&lt;br /&gt;
In order to turn the landclass into scenery we have to split it into seperate shapefiles for each landclass. &lt;br /&gt;
&lt;br /&gt;
# Open the Attribute table (&amp;lt;tt&amp;gt;Layer &amp;gt; Open Attribute Table&amp;lt;/tt&amp;gt;).&lt;br /&gt;
# Type &amp;quot;Sand&amp;quot; (or another class) into the search box and press the Search button. This will select all polygons that have the Sand class assigned.&lt;br /&gt;
# Go to &amp;lt;tt&amp;gt;Layer &amp;gt; Save Selection as vector file&amp;lt;/tt&amp;gt; and save the sand shapefile somewhere on your computer.&lt;br /&gt;
# Do the same for all other classes.&lt;br /&gt;
# To make the difference between land and sea (landmass) we save the entiry shapefile (&amp;lt;tt&amp;gt;Layer &amp;gt; Save as...&amp;lt;/tt&amp;gt;, ESRI Shapefile).&lt;br /&gt;
&lt;br /&gt;
If you want to see these shapefiles integrated into the Custom Scenery database you can contact papillon81 and statto (through IRC or Forum). Please be remembered that your data has to be derived from freely available (public domain) sources. Other material can not be integrated due to legal issues.&lt;br /&gt;
&lt;br /&gt;
=== Generating scenery ===&lt;br /&gt;
Please continue with [[TerraGear]] to generate the landclass into useable scenery.&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
{{forum|5|scenery enhancement}}&lt;br /&gt;
* [https://web.archive.org/web/20220309095842/https://www.custom-scenery.org/ Terragear-cs website] (archived version; domain is now a spam link)&lt;br /&gt;
* [http://wiki.qgis.org QGIS Wiki]&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/LandcoverDB_CS_Detail OSGEO Wiki]&lt;br /&gt;
* {{forum link|t=5566|text=Editing shapefiles for inclussion in official scenery}} (forum topic)&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
* [https://web.archive.org/web/20160625080941/http://www.stattosoftware.com/flightgear/tutorial/index.html Tutorial by John Holden] (archived copy; original link is dead)&lt;br /&gt;
&lt;br /&gt;
[[Category:Howto]]&lt;br /&gt;
[[Category:Scenery enhancement]]&lt;br /&gt;
&lt;br /&gt;
[[fr:Howto: Utiliser QGIS et images satellites]]&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Create_custom_terrain&amp;diff=138725</id>
		<title>Howto:Create custom terrain</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Create_custom_terrain&amp;diff=138725"/>
		<updated>2023-12-02T16:01:08Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: /* External links */ fix spam link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Custom terrain''' in [[FlightGear]] is currently generated through processing shapefiles with [[TerraGear]]. In order to add custom scenery to FlightGear, you must create a custom shapefile.&lt;br /&gt;
&lt;br /&gt;
A shapefile is a proprietary spatial information format. You can edit them with almost every GIS package. QGIS is quite a good package for this type of project.&lt;br /&gt;
&lt;br /&gt;
Your goal for editing area data is to create a shapefile of a seamless layer of polygons which correspond to some type of land cover. This data is then fed into [http://mapserver.flightgear.org the mapserver] and, possibly, TerraGear to create new scenery.&lt;br /&gt;
&lt;br /&gt;
=== Evaluating the current data ===&lt;br /&gt;
Before you begin, please make sure the area you want to improve doesn't already have good coverage. Just because it looks bad in FlightGear does not mean the area has not been improved. For this, you will need to check the Flightgear Mapserver, at [http://mapserver.flightgear.org/ mapserver.flightgear.org].&lt;br /&gt;
&lt;br /&gt;
Let's take a look at the Finistère in Brittany, Western France: if you click [http://mapserver.flightgear.org/map/?lon=-4.41840585539649&amp;amp;lat=48.4484146908477&amp;amp;zoom=11&amp;amp;layers=0B000000FTTFFFFFTFT here], you will quickly see and understand how FlightGear interprets the data pertaining to Finistère county. Some towns/cities (red), a few forests (green), etc. Overall, it is not a very good resolution: a lot of angles, the detail level is not that good, some towns are missing. If you want a better definition on ground, there is some work to be done! The goal being to obtain something like this:&lt;br /&gt;
&lt;br /&gt;
# [http://mapserver.flightgear.org/map/?lon=13.40385&amp;amp;lat=52.50199&amp;amp;zoom=11&amp;amp;layers=B0000000TFFFTFFFTFFFFFFF Berlin]&lt;br /&gt;
# [http://mapserver.flightgear.org/map/?lon=9.40368&amp;amp;lat=47.63699&amp;amp;zoom=11&amp;amp;layers=B0000000TFFFTFFFTFFFFFFF Bodensee surroundings]&lt;br /&gt;
# [http://mapserver.flightgear.org/map/?lon=-88.55704&amp;amp;lat=43.98436&amp;amp;zoom=11&amp;amp;layers=B0000000TFFFTFFFTFFFFFFF Oshkosh surroundings]&lt;br /&gt;
# [http://mapserver.flightgear.org/map/?lon=-62.87648&amp;amp;lat=17.69865&amp;amp;zoom=10&amp;amp;layers=B0000000TFFFTFFFTFFFFFFF Carribean Islands]&lt;br /&gt;
&lt;br /&gt;
You will immediately notice the improvement to the ground. When flying, the difference is huge. Moreover, this enables the autogeneration of cities, trees, farmland, and so on.&lt;br /&gt;
&lt;br /&gt;
=== Downloading the Landsat pictures ===&lt;br /&gt;
[[File:C31e36f2a2cbb278a1603dfe2ba91193.media.395x288.png|thumb|200px|Landsat Map Search]]&lt;br /&gt;
[[File:1c9334d970963364b5ce1bc3a166a4fa.media.426x192.png|thumb|200px|Preview and download Landsat image]]&lt;br /&gt;
Browse to [http://glcfapp.glcf.umd.edu:8080/esdi/index.jsp the Earth Science Data Interface interface] to grab your [http://en.wikipedia.org/wiki/Landsat Landsat] data.&lt;br /&gt;
&lt;br /&gt;
# Click ''Map Search''.&lt;br /&gt;
# Tick the ETM+ box (left column).&lt;br /&gt;
# Click on ''Update Map'' on the right bottom of the map.&lt;br /&gt;
# Click on the ''Place'' tab on the upper side of the map, in order to do a search by place, or you can do a search by latitude/longitude.&lt;br /&gt;
# In the Place field, type ''Amsterdam, Netherlands'' for instance.&lt;br /&gt;
# Now click the button with the mouse and the small + sign. This will allow you to select image tiles. Select all images that cover your area of interest, in our example this is just one image.&lt;br /&gt;
# Click on ''Preview and download''. This bring you to a selection page were you can choose what image you want to download. It is likely that there are pictures available from different dates for your area. Picking the most recent one is best, for known reasons.&lt;br /&gt;
# Clicking the ID will not bring you directly to the download page, first you have to click the ''Download'' button.&lt;br /&gt;
# Download the _nn80.tif.gz file (if this is not available, try an older image). Note that Landsat images are separated in different bands. Band 1/2/3/4/5/7 have 30m/Pixel resolution while band 8 (_nn80.tif.gz) has 15 meters per pixel.&lt;br /&gt;
# Uncompress the ''.tif.gz'' files in the directory of your choice.&lt;br /&gt;
&lt;br /&gt;
=== Working with QGIS ===&lt;br /&gt;
[[File:QGIS_texel_1.png|thumb|200px|QGIS with the TIFF image.]]&lt;br /&gt;
[[File:QGIS_texel_2.png|thumb|200px|Creating the class column.]]&lt;br /&gt;
[[File:QGIS_texel_3.png|thumb|200px|Toggle editing.]]&lt;br /&gt;
[[File:QGIS_texel_4.png|thumb|200px|Tracing the small island.]]&lt;br /&gt;
[[File:QGIS_texel_5.png|thumb|200px|The finished small island polygon.]]&lt;br /&gt;
Using a GIS software gives you the opportunity to realize a full range of interesting operations: modification of map data, updates on the ground classification, etc.&lt;br /&gt;
&lt;br /&gt;
* QGIS Download for Linux/OSX/Windows [http://www.qgis.org/en/download/current-software.html]&lt;br /&gt;
&lt;br /&gt;
The following is largely adapted from the [http://stattosoftware.com/flightgear/tutorial/index.html original QGIS scenery tutorial], which you may find of use.&lt;br /&gt;
# Launch QGIS.&lt;br /&gt;
# Click on &amp;lt;tt&amp;gt;Layer &amp;gt; Add a Raster layer&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# Modify the filter to search for *.tif files.&lt;br /&gt;
# Add the TIFF file you have just downloaded.&lt;br /&gt;
# Rightclick on the image in the layer sidebar and choose &amp;lt;tt&amp;gt;Set layer CRS&amp;lt;/tt&amp;gt;, to select a projection model. This depends on the location of the area you're about to create. Look up your project's UTM coordinate through [http://upload.wikimedia.org/wikipedia/commons/e/ed/Utm-zones.jpg this image]. For Texel this is 31U, north of the equator, so we choose &amp;lt;tt&amp;gt;Projected Coordinate Systems &amp;gt; Universal Transverse Mercator (UTM) &amp;gt; WSG84 / UTM zone 31N&amp;lt;/tt&amp;gt;. Locations south of the equator may need to use the 'N' zones as well. For example, the correct projection for Perth, Australia is &amp;lt;tt&amp;gt;Projected Coordinate Systems &amp;gt; Universal Transverse Mercator (UTM) &amp;gt; WSG84 / UTM zone 50N&amp;lt;/tt&amp;gt;. Always select 'WGS84', as that is the globe model used in FlightGear. &lt;br /&gt;
# Click on &amp;lt;tt&amp;gt;Layer &amp;gt; New &amp;gt; New Shapefile Layer&amp;lt;/tt&amp;gt; or on the corresponding icon. A dialog should pop up.&lt;br /&gt;
## Make sure the vector type is set to polygon. &lt;br /&gt;
## Click the 'specify CRS' button, to select a projection model. This must be the same as we did for the tiff background image.&lt;br /&gt;
## You need to create a data column for this layer. Create a new attribute called 'class'. Make sure it is a 'text data' (string) column. Add it to the attribute list. &lt;br /&gt;
## The 'OK' button should now be available for you to select. Select 'OK'. &lt;br /&gt;
## There should be a dialog box prompting you to save your vector layer. Save it in your scenery directory with your GeoTIFF. (This is not required but significantly helps organization.) &lt;br /&gt;
# Your vector layer should appear in the left-hand toolbar. You are ready to begin digitizing.&lt;br /&gt;
# Select the newly created layer in the layer list, toggle editing (&amp;lt;tt&amp;gt;Layer &amp;gt; Toggle Editing&amp;lt;/tt&amp;gt;) and finally select Capture Polygon from the same menu/toolbar.&lt;br /&gt;
# With your mouse, left-click on a point at the southwestern edge of the small island.&lt;br /&gt;
# We now want to trace the outline of the island. Move your mouse to another point below the first point and click it again. Your mouse should show a red line. The points should not be redundant - for instance, as long as the line between two points is straight, there is no need for another point in between the two.&lt;br /&gt;
# You will want to digitize features in a circular manner to avoid problems. You can always go back and add points later. With this in mind, move your mouse to a third point on the island. A small triangle should form, representing the polygon which would result if you decided you were done with the polygon. &lt;br /&gt;
# Continue outlining the island by clicking along its shoreline. When you are on your last point, instead of left-clicking, right-click. QGIS will finish the polygon. &lt;br /&gt;
# A dialog box will pop up, asking you to type in the value for 'class'. Since this is a shoal, existing of just sand, type in ''Sand''. This step is important - it is how you know what each polygon should be mapped to in our finished scenery. A list of &amp;quot;allowed&amp;quot; materials (and thus classes) is available [http://wiki.osgeo.org/wiki/LandcoverDB_CS_Detail here].&lt;br /&gt;
&lt;br /&gt;
Continue with tracing all shapes on the island: towns, industrial areas, grass, farmland etc. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Snapping===&lt;br /&gt;
It is very important to enable &amp;quot;snapping&amp;quot; now.&lt;br /&gt;
&lt;br /&gt;
Snapping means each polygon will fit together nicely, like a jigsaw puzzle. If snapping is not enabled, the polygons will not form a continuous layer, which has a number of different problems.&lt;br /&gt;
&lt;br /&gt;
We don't want small holes in our scenery, nor do we want overlapping polygons. Snapping adjusts each point as you go by - you will miss occasionally and have to correct it - so you don't have to worry about lining the polygons up precisely.&lt;br /&gt;
&lt;br /&gt;
# Open &amp;lt;tt&amp;gt;Settings &amp;gt; Snapping Options&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# Click the tickbox(es) in front of your layer(s) and set Tolerance to 20 (map units). A smaller tolerance will make it easier to work with very small and detailed layers, while a bigger value makes it easier to snap when zoomed out.&lt;br /&gt;
# Click OK to save the snapping options.&lt;br /&gt;
&lt;br /&gt;
==== Distinguishing Land Class Types from LANDSAT data ====&lt;br /&gt;
You may Google Maps or Yahoo Maps running alongside your program to see what is what on the black/white image, but most areas are recognizable without use of the software. If you need help determining what part of the black-and-white image, please currently refer to the [http://stattosoftware.com/flightgear/tutorial/index.html#distinguishing original Stattosoftware Scenery Tutorial]. Instead of determining in a single band image you can also combine different ETM+ bands in a RGB file. Some information about different band combinations can be found here [http://web.pdx.edu/~emch/ip1/bandcombinations.html].&lt;br /&gt;
&lt;br /&gt;
=== Exporting the shapefile ===&lt;br /&gt;
In order to turn the landclass into scenery we have to split it into seperate shapefiles for each landclass. &lt;br /&gt;
&lt;br /&gt;
# Open the Attribute table (&amp;lt;tt&amp;gt;Layer &amp;gt; Open Attribute Table&amp;lt;/tt&amp;gt;).&lt;br /&gt;
# Type &amp;quot;Sand&amp;quot; (or another class) into the search box and press the Search button. This will select all polygons that have the Sand class assigned.&lt;br /&gt;
# Go to &amp;lt;tt&amp;gt;Layer &amp;gt; Save Selection as vector file&amp;lt;/tt&amp;gt; and save the sand shapefile somewhere on your computer.&lt;br /&gt;
# Do the same for all other classes.&lt;br /&gt;
# To make the difference between land and sea (landmass) we save the entiry shapefile (&amp;lt;tt&amp;gt;Layer &amp;gt; Save as...&amp;lt;/tt&amp;gt;, ESRI Shapefile).&lt;br /&gt;
&lt;br /&gt;
If you want to see these shapefiles integrated into the Custom Scenery database you can contact papillon81 and statto (through IRC or Forum). Please be remembered that your data has to be derived from freely available (public domain) sources. Other material can not be integrated due to legal issues.&lt;br /&gt;
&lt;br /&gt;
=== Generating scenery ===&lt;br /&gt;
Please continue with [[TerraGear]] to generate the landclass into useable scenery.&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
{{forum|5|scenery enhancement}}&lt;br /&gt;
* [https://web.archive.org/web/20220309095842/https://www.custom-scenery.org/ Terragear-cs website] (archived version; domain is now a spam link)&lt;br /&gt;
* [http://wiki.qgis.org QGIS Wiki]&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/LandcoverDB_CS_Detail OSGEO Wiki]&lt;br /&gt;
* {{forum link|t=5566|text=Editing shapefiles for inclussion in official scenery}} (forum topic)&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
* [http://stattosoftware.com/flightgear/tutorial/index.html Tutorial by John Holden]&lt;br /&gt;
&lt;br /&gt;
[[Category:Howto]]&lt;br /&gt;
[[Category:Scenery enhancement]]&lt;br /&gt;
&lt;br /&gt;
[[fr:Howto: Utiliser QGIS et images satellites]]&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Using_FlightGear_with_an_EFB&amp;diff=138233</id>
		<title>Howto:Using FlightGear with an EFB</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Using_FlightGear_with_an_EFB&amp;diff=138233"/>
		<updated>2023-08-24T02:35:14Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: /* Configuring your EFB */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An '''Electronic Flight Bag''' (EFB) is an application that includes maps, weight-and-balance, and other tools that used to exist physically in a pilot's flight bag. The best-known EFB applications available on consumer mobile devices include [https://foreflight.com/ ForeFlight] ($$, iOS only, global), [https://www.garmin.com/en-CA/aviation/garminpilot/overview/ Garmin Pilot] ($$, Android and iOS, global), [https://flttrack.fltplan.com/FltPlanInfo/FltPlan_Go-Android-iPad_Info.html FltPlan Go] (cost-free, Android and iOS, Canada/U.S./Caribbean), and [https://www.apps4av.com/ Avare] (cost-free, Android only, U.S. only). Note that U.S. coverage typically overlaps slightly into southern Canada and northern Mexico.&lt;br /&gt;
&lt;br /&gt;
FlightGear can feed data to most EFB applications to replace real GPS data in plane, so you can use your tablet for a moving map and flight planner beside your computer, just like you would in a real cockpit.&lt;br /&gt;
&lt;br /&gt;
The instructions in this article are tested with FltPlan Go (because it's cost-free), but have been used in the past with Garmin Pilot as well, and should also work at least with ForeFlight.&lt;br /&gt;
&lt;br /&gt;
== Configuring FlightGear ==&lt;br /&gt;
&lt;br /&gt;
The necessary protocol files already exist in FlightGear, so all you need to do is add the following two lines to your $HOME/.fgfsrc file or to the &amp;quot;Additional Settings&amp;quot; subsection of &amp;quot;Settings&amp;quot; in the visual launcher:&lt;br /&gt;
&lt;br /&gt;
 --generic=socket,out,10,255.255.255.255,49002,udp,foreflight-xatt&lt;br /&gt;
 --generic=socket,out,1,255.255.255.255,49002,udp,foreflight-xgps&lt;br /&gt;
&lt;br /&gt;
== Configuring your EFB ==&lt;br /&gt;
&lt;br /&gt;
[[File:FltPlan Go settings.jpg|thumb|80px|FltPlan Go External settings to connect with FlightGear]]&lt;br /&gt;
[[File:FltPlan Go map page.jpg|thumb|80px|Moving map showing a FlightGear flight over a Canadian VNC (Sectional).]]&lt;br /&gt;
&lt;br /&gt;
Your mobile device ''must'' be connected to the same network as the computer running FlightGear. The following instructions apply to FltPlan Go, but the process for other EFBs will be similar (follow the instructions for connecting to X-Plane).&lt;br /&gt;
&lt;br /&gt;
Go to the &amp;quot;External&amp;quot; side tab for FltPlan Go, and select &amp;quot;X-Plane&amp;quot; or &amp;quot;ForeFlight&amp;quot; under &amp;quot;Simulators&amp;quot;. Then start FlightGear (in the same network), and wait for the altitude, latitude, longitude, course, and speed information to appear in the fields to the right: these will confirm that you have made a connection.&lt;br /&gt;
&lt;br /&gt;
You can now navigate to other tabs, such as the moving map or airport diagrams and instrument procedures, and see your aircraft position live.&lt;br /&gt;
&lt;br /&gt;
== Related content ==&lt;br /&gt;
&lt;br /&gt;
* [[Generic protocol]]&lt;br /&gt;
* [[Interfacing FlightGear]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Interfacing protocols| ]]&lt;br /&gt;
[[Category:FlightGear]]&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Interfacing_FlightGear&amp;diff=138232</id>
		<title>Interfacing FlightGear</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Interfacing_FlightGear&amp;diff=138232"/>
		<updated>2023-08-24T02:34:22Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: /* Wiki articles */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
There are several different ways to '''interface FlightGear''' to either feed FlightGear with data, get data from FlightGear or both.&lt;br /&gt;
&lt;br /&gt;
There could be many different reasons to interface FlightGear, for example:&lt;br /&gt;
&lt;br /&gt;
* Using an external [[Flight Dynamics Model|FDM]]&lt;br /&gt;
* Feeding FlightGear properties when using FlightGear for visualization&lt;br /&gt;
* Feeding external traffic data using either the AI/MP systems, or a combination of both&lt;br /&gt;
* Interfacing FlightGear with external hardware, for example a home-built autopilot control panel&lt;br /&gt;
&lt;br /&gt;
== Screen shots ==&lt;br /&gt;
&lt;br /&gt;
But we do provide png screenshots, too. Change the url from&lt;br /&gt;
/screenshot?type=jpg to /screenshot?type=png&lt;br /&gt;
&lt;br /&gt;
== Video ==&lt;br /&gt;
&lt;br /&gt;
We can do MJPEG stream, try to use /screenshot?stream=y as the screenshot&lt;br /&gt;
url. MJPEG is ugly and a resource hog but works reasonable well for image&lt;br /&gt;
sizes of probably 640x480. Scale down your FG window and give it a try.&lt;br /&gt;
&lt;br /&gt;
== Generic protocol ==&lt;br /&gt;
{{main article|Generic protocol}}&lt;br /&gt;
&lt;br /&gt;
Using a generic protocol you can use either an existing protocol or a protocol custom made for your need.  The protocols are defined in [[PropertyList XML files]], and can both be used for reading from or to a file and to communicate through a serial connection.&lt;br /&gt;
&lt;br /&gt;
== Native protocol ==&lt;br /&gt;
{{main article|Property Tree/Sockets}}&lt;br /&gt;
&lt;br /&gt;
This uses a native protocol primarily when communicating with an external FDM.&lt;br /&gt;
&lt;br /&gt;
== Telnet ==&lt;br /&gt;
{{main article|Telnet usage}}&lt;br /&gt;
&lt;br /&gt;
FlightGear can be given command line arguments that will start FlightGear with a telnet server, &amp;lt;code&amp;gt;--telnet=''port''&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
There is an interactive mode with a handful of commands that can be used for interacting with FlightGear's [[property tree]] and a data mode for connecting to FlightGear through a socket.&lt;br /&gt;
&lt;br /&gt;
== HTTP ==&lt;br /&gt;
{{main article|Property Tree Servers}}&lt;br /&gt;
&lt;br /&gt;
FlightGear have an built in web server which allow you to view and interact with the property tree through a web browser or through HTTP requests.&lt;br /&gt;
&lt;br /&gt;
== Scripted AI ==&lt;br /&gt;
&lt;br /&gt;
== Multiplayer ==&lt;br /&gt;
&lt;br /&gt;
== Flight recorder tapes ==&lt;br /&gt;
&lt;br /&gt;
== Related content ==&lt;br /&gt;
=== Wiki articles ===&lt;br /&gt;
* [[Howto:Build your own procedure trainer]]&lt;br /&gt;
* [[Howto:Using FlightGear with an EFB]]&lt;br /&gt;
* [[FlightGear I/O Considerations]]&lt;br /&gt;
* [[Head tracking]]&lt;br /&gt;
* [[Logging properties]]&lt;br /&gt;
* [[MATLAB]]&lt;br /&gt;
* [[Professional and educational FlightGear users]]&lt;br /&gt;
* [[Property tree]]&lt;br /&gt;
* [[Howto:Record, analyze and replay multiplayer flights with network tools]]&lt;br /&gt;
* [[Howto:Use Arduino with FlightGear]]&lt;br /&gt;
&lt;br /&gt;
=== Readme files ===&lt;br /&gt;
* {{readme file|IO}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Interfacing protocols| ]]&lt;br /&gt;
[[Category:FlightGear]]&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Generic_protocol&amp;diff=138231</id>
		<title>Generic protocol</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Generic_protocol&amp;diff=138231"/>
		<updated>2023-08-24T02:33:41Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: /* Wiki articles */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PropertyTree}}&lt;br /&gt;
FlightGear supports multiple concurrent IO connections.  &lt;br /&gt;
&lt;br /&gt;
You could use the FGNetFDM (&amp;lt;code&amp;gt;--native&amp;lt;/code&amp;gt;) protocol or the &amp;lt;code&amp;gt;--generic&amp;lt;/code&amp;gt; protocol (which allows you to design custom packets with the specific fields you choose.)  Both of these can send the data out as UDP packets which then can be read by your external program using standard socket communication.&lt;br /&gt;
&lt;br /&gt;
This same basic mechanism also would permit your external program to send control commands so if some day you want to do some sort of hardware or software in the loop testing of your UAV controller, that is also a possibility.&lt;br /&gt;
&lt;br /&gt;
There is a slightly complex, but pretty flexible mechanism for specifying an IO channel, what type of communication will get sent over it, which direction, and at what rate.  Look for a file called README.IO that briefly explains much of this.  &lt;br /&gt;
&lt;br /&gt;
In addition, there is a &amp;quot;generic&amp;quot; protocol where you can create an XML file specifying exactly what data values you wish to send across your IO channel.  We don't have generic &amp;quot;USB&amp;quot; support, but if you have a Serial -&amp;gt; USB device that looks like a COM port on the computer side, then that should work without any problem ... just be careful which COM port your USB device gets assigned to.&lt;br /&gt;
&lt;br /&gt;
There is the native_fdm protocol to control FlightGear using an external FDM and there is the generic protocol that uses the XML configuration files.&lt;br /&gt;
&lt;br /&gt;
The ''generic'' communication protocol for FlightGear provides a powerful way of adding a simple ASCII based or binary input/output protocol, just by defining an XML encoded configuration file and placing it in the &amp;lt;code&amp;gt;[[$FG ROOT]]/Protocol/&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
The generic protocol can be easily set up for both input and output. And it supports not just a single medium, but can be easily made to use files, FIFOs, sockets etc. The generic protocol is really good for things like exporting to a delimited ASCII file for import into spreadsheet for instance.&lt;br /&gt;
&lt;br /&gt;
I think it makes sense (when dealing with live data) for the generic protocol to enter a while loop and read data until there is no more available.  That way if the sender is sending at a higher rate or FlightGear gets behind for any reason, FlightGear will get caught up each iteration.  This obviously does not work well for file input though, so you'd have to differentiate.&lt;br /&gt;
&lt;br /&gt;
== XML File Layout ==&lt;br /&gt;
&lt;br /&gt;
A protocol file can contain either or both of '''&amp;lt;input&amp;gt;''' and '''&amp;lt;output&amp;gt;''' definition blocks. Which one is used depends on how the protocol is called. The following example would only use the &amp;lt;output&amp;gt; definitions block.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 --generic=file,out,1,/tmp/data.xml,myproto&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you're using a serial port under Windows, you must use a special escape sequence for COM port numbers higher than COM9, for example: &lt;br /&gt;
&lt;br /&gt;
 --generic=\\.\COM10,out,1,/tmp/data.xml,myproto&lt;br /&gt;
&lt;br /&gt;
More detail can be found in this Microsoft KB article: https://msdn.microsoft.com/en-us/library/aa363858(v=vs.85).aspx&lt;br /&gt;
&lt;br /&gt;
Overview of the XML file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;PropertyList&amp;gt;&lt;br /&gt;
    &amp;lt;generic&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
        &amp;lt;output&amp;gt;&lt;br /&gt;
            &amp;lt;binary_mode&amp;gt;false&amp;lt;/binary_mode&amp;gt;&lt;br /&gt;
            &amp;lt;line_separator&amp;gt;&amp;lt;/line_separator&amp;gt;&lt;br /&gt;
            &amp;lt;var_separator&amp;gt;&amp;lt;/var_separator&amp;gt;&lt;br /&gt;
            &amp;lt;preamble&amp;gt;&amp;lt;/preamble&amp;gt;&lt;br /&gt;
            &amp;lt;postamble&amp;gt;&amp;lt;/postamble&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
            &amp;lt;chunk&amp;gt;&lt;br /&gt;
                &amp;lt;!-- First output chunk definition --&amp;gt;&lt;br /&gt;
            &amp;lt;/chunk&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
            &amp;lt;chunk&amp;gt;&lt;br /&gt;
                &amp;lt;!-- Next output chunk definition etc... --&amp;gt;&lt;br /&gt;
            &amp;lt;/chunk&amp;gt;&lt;br /&gt;
        &amp;lt;/output&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
        &amp;lt;input&amp;gt;&lt;br /&gt;
            &amp;lt;line_separator&amp;gt;&amp;lt;/line_separator&amp;gt;&lt;br /&gt;
            &amp;lt;var_separator&amp;gt;&amp;lt;/var_separator&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
            &amp;lt;chunk&amp;gt;&lt;br /&gt;
                &amp;lt;!-- First input chunk definition --&amp;gt;&lt;br /&gt;
            &amp;lt;/chunk&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
            &amp;lt;chunk&amp;gt;&lt;br /&gt;
                &amp;lt;!-- Next input chunk definition etc... --&amp;gt;&lt;br /&gt;
            &amp;lt;/chunk&amp;gt;&lt;br /&gt;
        &amp;lt;/input&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
    &amp;lt;/generic&amp;gt;&lt;br /&gt;
 &amp;lt;/PropertyList&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Input/Output Parameters ==&lt;br /&gt;
&lt;br /&gt;
Both '''&amp;lt;input&amp;gt;''' and '''&amp;lt;input&amp;gt;''' blocks can contain information about the data mode (ascii/binary) and about separators between fields and data sets, as well as a list of '''&amp;lt;chunk&amp;gt;'''s. Each '''&amp;lt;chunk&amp;gt;''' defines a property that should be written (and how), or a variable and which property it should be written to.&lt;br /&gt;
&lt;br /&gt;
==== ASCII protocol parameters ====&lt;br /&gt;
Note that some parameters only can be used for output.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter tag &lt;br /&gt;
! Out &lt;br /&gt;
! In&lt;br /&gt;
! Type &lt;br /&gt;
! Default &lt;br /&gt;
! Purpose&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;amp;lt;preamble&amp;amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| String &lt;br /&gt;
| &amp;quot;&amp;quot; &lt;br /&gt;
| File header put on top of the file&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;amp;lt;postamble&amp;amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| String &lt;br /&gt;
| &amp;quot;&amp;quot; &lt;br /&gt;
| File footer put at the end of the file&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;amp;lt;binary_mode&amp;amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| Boolean &lt;br /&gt;
| False &lt;br /&gt;
| Indicates if binary mode is to be used instead of ASCII&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;amp;lt;var_separator&amp;amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| String &lt;br /&gt;
| &amp;quot;&amp;quot; &lt;br /&gt;
| Field separator&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;amp;lt;line_separator&amp;amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| String &lt;br /&gt;
| &amp;quot;&amp;quot; &lt;br /&gt;
| Separator between data sets&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;var_separator&amp;gt;''' is put between each of the properties.&lt;br /&gt;
* '''&amp;lt;line_separator&amp;gt;''' is put at the end of each data set. &lt;br /&gt;
Both can contain arbitrary strings or one of the following keywords:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Keyword !! Special character&lt;br /&gt;
|-&lt;br /&gt;
| newline || &amp;lt;tt&amp;gt;\n&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tab || &amp;lt;tt&amp;gt;\t&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| formfeed || &amp;lt;tt&amp;gt;\f&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| carriagereturn || &amp;lt;tt&amp;gt;\r&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| verticaltab || &amp;lt;tt&amp;gt;\v&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Typical use could be:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;var_separator&amp;gt;tab&amp;lt;/var_separator&amp;gt;&lt;br /&gt;
 &amp;lt;line_separator&amp;gt;newline&amp;lt;/var_separator&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;var_separator&amp;gt;\t&amp;lt;/var_separator&amp;gt;&lt;br /&gt;
 &amp;lt;line_separator&amp;gt;\r\n&amp;lt;/line_separator&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Binary protocol parameters ====&lt;br /&gt;
&lt;br /&gt;
To enable binary mode, simply include a '''&amp;lt;binary_mode&amp;gt;true&amp;lt;/binary_mode&amp;gt;''' tag in your XML file. The format of the binary output is tightly packed, with 1 byte for bool, 4 bytes for int, and 8 bytes for double. At this time, strings are not supported. A configurable footer at the end of each &amp;quot;line&amp;quot; or packet of binary output can be added using the '''&amp;lt;binary_footer&amp;gt;''' tag. Options include the length of the packet, a magic number to simplify decoding. Examples:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;binary_footer&amp;gt;magic,0x12345678&amp;lt;/binary_footer&amp;gt;&lt;br /&gt;
  &amp;lt;binary_footer&amp;gt;length&amp;lt;/binary_footer&amp;gt;&lt;br /&gt;
  &amp;lt;binary_footer&amp;gt;none&amp;lt;/binary_footer&amp;gt;                 &amp;lt;!-- default --&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In addition, you can specify endianness of the data sent. This is done with the '''&amp;lt;byte_order&amp;gt;''' flag. The two options are network (big endian) and host.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;byte_order&amp;gt;host&amp;lt;/byte_order&amp;gt;&lt;br /&gt;
  &amp;lt;byte_order&amp;gt;network&amp;lt;/byte_order&amp;gt;        &amp;lt;!-- default --&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your generic protocol file specifies&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;binary_mode&amp;gt;true&amp;lt;/binary_mode&amp;gt;&lt;br /&gt;
    &amp;lt;byte_order&amp;gt;network&amp;lt;/byte_order&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
your receiver (or sender) code also have to use that encoding convention.&lt;br /&gt;
The encoding used by the generic protocol is independent of the output &lt;br /&gt;
channel you choose (file, TCP socket, UDP socket, serial port or &lt;br /&gt;
whatever).&lt;br /&gt;
&lt;br /&gt;
Also with sending/receiving UDP packets, you need to use different ports for&lt;br /&gt;
the sending and receiving channels.&lt;br /&gt;
&lt;br /&gt;
If you are unsure about what encoding FG uses for &lt;br /&gt;
binary data src/Network/generic.cxx is the place to find out. It is &lt;br /&gt;
pretty much standard for the basic types as far as I know, though.&lt;br /&gt;
&lt;br /&gt;
Network order is MSB first (as is host order if your system is big &lt;br /&gt;
endian but that is not so common these days). If you use host order and &lt;br /&gt;
both your systems have the same endianness (and you only care about &lt;br /&gt;
your use case) you don't have to worry about this.&lt;br /&gt;
&lt;br /&gt;
If you don't specify byte order, host order will be used. Anything x86 is &lt;br /&gt;
very likely to use LSB order (a PC certainly is).&lt;br /&gt;
&lt;br /&gt;
== Variable Parameters - &amp;lt;chunk&amp;gt; spec ==&lt;br /&gt;
&lt;br /&gt;
Both &amp;lt;input&amp;gt; and &amp;lt;output&amp;gt; block can contain a list of &amp;lt;chunk&amp;gt; specs, each of which describes the properties of on variable to write/read.&lt;br /&gt;
===== &amp;lt;name&amp;gt; =====&lt;br /&gt;
For ease of use and not transferred (like a notes tag)&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;node&amp;gt; =====&lt;br /&gt;
The [[Property Tree|property tree]] node which provides the data&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;type&amp;gt; =====&lt;br /&gt;
The value type which is needed for formatting, one of string, float, bool, int (default: int). Its recommended that this tag is present otherwise spurious results can occur.&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;format&amp;gt; =====&lt;br /&gt;
ASCII protocol only, not used or needed in binary mode. Defines the actual piece of text which should be sent. it can include &amp;quot;printf&amp;quot; style formatting options like:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Formatting option !! Type&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;%s&amp;lt;/tt&amp;gt; || String&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;%d&amp;lt;/tt&amp;gt; || Integer (default)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;%f&amp;lt;/tt&amp;gt; || Float&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: the type attribute tells the property tree how to store a value internally, using the most appropriate data type saves memory and reduces conversion overhead (bool, int, float, double, string). &lt;br /&gt;
Using the printf-style format strings in a generic protocol XML file, merely tells the I/O system how to encode/decode a property - so that it can be saved/transmitted and restored properly. Using the wrong type and/or format string in a binary protocol, would cause wrong data to be transmitted/processed by FG. &lt;br /&gt;
&lt;br /&gt;
Basically, each type specifier tells FG how long each data type is in memory (bits-wise). For example, a boolean value is just 0 or 1 - so it only requires a single bit. A byte, on the other hand, requires 8 bits - and an integer (int) 4 bytes (32 bit). &lt;br /&gt;
&lt;br /&gt;
So telling FG that something is a bit, will cause the data to be truncated to just a bit - which is what the format specifiers are all about: you can affect the re-interpretation of values from the property tree. In addition, there's the concept of signed-ness, i.e. numbers being positive or negative, or numbers having a mantissa - these affect how the values are stored in memory, and accordingly, the receiver must know how a value was encoded, to transform it back to what you want it to be.&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;factor&amp;gt; =====&lt;br /&gt;
An optional multiplication factor which can be used for unit conversion, for example, radians to degrees.&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;offset&amp;gt; =====&lt;br /&gt;
An optional offset which can be used for unit conversion, for example, degrees Celcius to degrees Fahrenheit.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;format&amp;gt; ====&lt;br /&gt;
Chunks can also consist of a single constant &amp;lt;format&amp;gt;, like in:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;format&amp;gt;Data Section&amp;lt;/format&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Serial I/O ==&lt;br /&gt;
&lt;br /&gt;
You can assign any number you want to a COM port when it is driven by a USB-to-COM or Ethernet-to-COM adapter. Simply go to the Device Manager&lt;br /&gt;
and set it between 1 and 255.&lt;br /&gt;
&lt;br /&gt;
There are a lot of make of these kind of device. Some are good, others not so ...&lt;br /&gt;
&lt;br /&gt;
{{Note|Windows:To specify a COM port number greater than 9, use the following syntax: &amp;lt;code&amp;gt;\\.\COM10&amp;lt;/code&amp;gt;. This syntax works for all port numbers and hardware that allows COM port numbers to be specified.}}&lt;br /&gt;
&lt;br /&gt;
it doesn't appear that the &amp;quot;generic&amp;quot; interface code&lt;br /&gt;
is setup to transmit and receive at the same time.  You can't open up the&lt;br /&gt;
same device twice, so you two command line options won't work either.  As&lt;br /&gt;
far as I can tell this will require some code modifications if you want to&lt;br /&gt;
use direct serial communication.&lt;br /&gt;
&lt;br /&gt;
Another option might be to write a thin glue layer that talks to FlightGear&lt;br /&gt;
over the network, and talks to your hardware over a serial port and then&lt;br /&gt;
does all the appropriate data translation as required.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The good way to verify if the transmission of float values work is to &lt;br /&gt;
print the value in your receiver and compare that to the value of the &lt;br /&gt;
property you transmit in FG.&lt;br /&gt;
Btw. if your generic protocol is set to use network byte order &lt;br /&gt;
(endianness MSB) you have to take that into account when unpacking the &lt;br /&gt;
float value.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
==== Example 1 ====&lt;br /&gt;
Writes log of this form:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
V=16&lt;br /&gt;
H=3.590505&lt;br /&gt;
P=3.59&lt;br /&gt;
V=12&lt;br /&gt;
H=3.589020&lt;br /&gt;
P=3.59&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt; &lt;br /&gt;
 &amp;lt;PropertyList&amp;gt;&lt;br /&gt;
 &amp;lt;generic&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
    &amp;lt;output&amp;gt;&lt;br /&gt;
      &amp;lt;line_separator&amp;gt;newline&amp;lt;/line_separator&amp;gt;&lt;br /&gt;
      &amp;lt;var_separator&amp;gt;newline&amp;lt;/var_separator&amp;gt;&lt;br /&gt;
      &amp;lt;binary_mode&amp;gt;false&amp;lt;/binary_mode&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
      &amp;lt;chunk&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;speed&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;format&amp;gt;V=%d&amp;lt;/format&amp;gt;&lt;br /&gt;
        &amp;lt;node&amp;gt;/velocities/airspeed-kt&amp;lt;/node&amp;gt;&lt;br /&gt;
      &amp;lt;/chunk&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
      &amp;lt;chunk&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;heading (rad)&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;format&amp;gt;H=%.6f&amp;lt;/format&amp;gt;&lt;br /&gt;
        &amp;lt;type&amp;gt;float&amp;lt;/type&amp;gt;&lt;br /&gt;
        &amp;lt;node&amp;gt;/orientation/heading-deg&amp;lt;/node&amp;gt;&lt;br /&gt;
        &amp;lt;factor&amp;gt;0.0174532925199433&amp;lt;/factor&amp;gt;  &amp;lt;!-- degrees to radians --&amp;gt;&lt;br /&gt;
      &amp;lt;/chunk&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
      &amp;lt;chunk&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;pitch angle (deg)&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;format&amp;gt;P=%03.2f&amp;lt;/format&amp;gt;&lt;br /&gt;
        &amp;lt;node&amp;gt;/orientation/pitch-deg&amp;lt;/node&amp;gt;&lt;br /&gt;
      &amp;lt;/chunk&amp;gt;&lt;br /&gt;
   &amp;lt;/output&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;/generic&amp;gt;&lt;br /&gt;
 &amp;lt;/PropertyList&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Writing data in XML format===&lt;br /&gt;
Assuming the file is called &amp;lt;code&amp;gt;[[$FG_ROOT]]/Protocol/xmltest.xml&amp;lt;/code&amp;gt;, then it could be used as &lt;br /&gt;
 fgfs --generic=file,out,1,/tmp/data.xml,xmltest&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;PropertyList&amp;gt;&lt;br /&gt;
  &amp;lt;generic&amp;gt;&lt;br /&gt;
    &amp;lt;output&amp;gt;&lt;br /&gt;
      &amp;lt;binary_mode&amp;gt;false&amp;lt;/binary_mode&amp;gt;&lt;br /&gt;
      &amp;lt;var_separator&amp;gt;\n&amp;lt;/var_separator&amp;gt;&lt;br /&gt;
      &amp;lt;line_separator&amp;gt;\n&amp;lt;/line_separator&amp;gt;&lt;br /&gt;
      &amp;lt;preamble&amp;gt;&amp;amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;amp;gt;\n\n&amp;amp;lt;data&amp;amp;gt;\n&amp;lt;/preamble&amp;gt;&lt;br /&gt;
      &amp;lt;postamble&amp;gt;&amp;amp;lt;/data&amp;amp;gt;\n&amp;lt;/postamble&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
      &amp;lt;chunk&amp;gt;&lt;br /&gt;
        &amp;lt;format&amp;gt;\t&amp;amp;lt;set&amp;amp;gt;&amp;lt;/format&amp;gt;&lt;br /&gt;
      &amp;lt;/chunk&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
      &amp;lt;chunk&amp;gt;&lt;br /&gt;
        &amp;lt;node&amp;gt;/position/altitude-ft&amp;lt;/node&amp;gt;&lt;br /&gt;
        &amp;lt;type&amp;gt;float&amp;lt;/type&amp;gt;&lt;br /&gt;
        &amp;lt;format&amp;gt;\t\t&amp;amp;lt;altitude-ft&amp;amp;gt;%.8f&amp;amp;lt;/altitude-ft&amp;amp;gt;&amp;lt;/format&amp;gt;&lt;br /&gt;
      &amp;lt;/chunk&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
For more examples, see [http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg37892.html mailing list thread].&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;chunk&amp;gt;&lt;br /&gt;
        &amp;lt;node&amp;gt;/velocities/airspeed-kt&amp;lt;/node&amp;gt;&lt;br /&gt;
        &amp;lt;type&amp;gt;float&amp;lt;/type&amp;gt;&lt;br /&gt;
        &amp;lt;format&amp;gt;\t\t&amp;amp;lt;airspeed-kt&amp;amp;gt;%.8f&amp;amp;lt;/airspeed-kt&amp;amp;gt;&amp;lt;/format&amp;gt;&lt;br /&gt;
      &amp;lt;/chunk&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
      &amp;lt;chunk&amp;gt;&lt;br /&gt;
        &amp;lt;format&amp;gt;\t&amp;amp;lt;/set&amp;amp;gt;&amp;lt;/format&amp;gt;&lt;br /&gt;
      &amp;lt;/chunk&amp;gt;&lt;br /&gt;
    &amp;lt;/output&amp;gt;&lt;br /&gt;
 &amp;lt;/generic&amp;gt;&lt;br /&gt;
 &amp;lt;/PropertyList&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Analyzing the resulting binary packet format ==&lt;br /&gt;
A utility called ''generic-protocol-analyse'' can be found under &amp;lt;code&amp;gt;FlightGear/utils/xmlgrep&amp;lt;/code&amp;gt; which can be used to analyze the resulting data packet for the binary protocol. The output would be something like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bintest.xml&lt;br /&gt;
Generic binary output protocol packet description:&lt;br /&gt;
&lt;br /&gt;
 pos | size |  type  | factor     | description&lt;br /&gt;
-----|------|--------|------------|------------------------&lt;br /&gt;
   0 |    4 |    int |            | indicated speed (kt)&lt;br /&gt;
   4 |    4 |  float |            | pitch att (deg)&lt;br /&gt;
   8 |    4 |  float |            | magnetic heading (deg)&lt;br /&gt;
  12 |    4 |    int |            | outside air temperarure (degF)&lt;br /&gt;
  16 |    1 |   bool |            | autocoord&lt;br /&gt;
&lt;br /&gt;
total package size: 17 bytes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Protocol ==&lt;br /&gt;
FlightGear has an inbuilt &amp;quot;generic&amp;quot; protocol to push and pull data. (todo)&lt;br /&gt;
&lt;br /&gt;
To interface with FlightGear on a socket for example, the following steps need to be taken:&lt;br /&gt;
# Establish which &amp;quot;properties&amp;quot; you want to appear &amp;quot;on the wire&amp;quot;.&lt;br /&gt;
# Create a &amp;lt;code&amp;gt;my_protocol.xml&amp;lt;/code&amp;gt; file containing those properties.&lt;br /&gt;
# Start FlightGear with the generic protocol option using &amp;lt;code&amp;gt;my_protocol&amp;lt;/code&amp;gt; sent through the network socket.&lt;br /&gt;
&lt;br /&gt;
For this simple example say were interested in heading and altitude, and we want to &amp;quot;listen&amp;quot; ie output to a socket at port 6789, UDP and receiving 10 times a second in the format:&lt;br /&gt;
 alt\thead\n &lt;br /&gt;
 // ie altitude - tab - heading - newline&lt;br /&gt;
&lt;br /&gt;
The first step is establishing the nodes, in this example &lt;br /&gt;
 /position/altitude-agl-ft  eg (22.4713923)&lt;br /&gt;
 /orientation/heading-deg  eg (297.966325)&lt;br /&gt;
&lt;br /&gt;
Next create a file '''my_protocol.xml'''. This needs to be located at&lt;br /&gt;
 [[$FG_ROOT]]/Protocol/my_protocol.xml&lt;br /&gt;
&lt;br /&gt;
Edit the &amp;lt;code&amp;gt;my_protocol.xml&amp;lt;/code&amp;gt; file and write in it:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;PropertyList&amp;gt;&lt;br /&gt;
 &amp;lt;generic&amp;gt;&lt;br /&gt;
    &amp;lt;output&amp;gt;&lt;br /&gt;
        &amp;lt;line_separator&amp;gt;newline&amp;lt;/line_separator&amp;gt;&lt;br /&gt;
        &amp;lt;var_separator&amp;gt;tab&amp;lt;/var_separator&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
        &amp;lt;chunk&amp;gt;&lt;br /&gt;
           &amp;lt;node&amp;gt;/position/altitude-agl-ft&amp;lt;/node&amp;gt;&lt;br /&gt;
           &amp;lt;name&amp;gt;altitude to go&amp;lt;/name&amp;gt;&lt;br /&gt;
           &amp;lt;type&amp;gt;float&amp;lt;/type&amp;gt;&lt;br /&gt;
           &amp;lt;format&amp;gt;%03.2f&amp;lt;/format&amp;gt;&lt;br /&gt;
         &amp;lt;/chunk&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
        &amp;lt;chunk&amp;gt;&lt;br /&gt;
           &amp;lt;node&amp;gt;/orientation/heading-deg&amp;lt;/node&amp;gt;&lt;br /&gt;
           &amp;lt;name&amp;gt;Heading&amp;lt;/name&amp;gt;&lt;br /&gt;
           &amp;lt;type&amp;gt;float&amp;lt;/type&amp;gt;&lt;br /&gt;
           &amp;lt;format&amp;gt;%03.3f&amp;lt;/format&amp;gt;&lt;br /&gt;
         &amp;lt;/chunk&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
    &amp;lt;/output&amp;gt;&lt;br /&gt;
  &amp;lt;/generic&amp;gt;&lt;br /&gt;
 &amp;lt;/PropertyList&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The '''output''' tag indicates the protocol for output. The same &amp;quot;protocol&amp;quot; file can contain an &amp;quot;input&amp;quot; section, absent in this example (more later).&lt;br /&gt;
* '''line_seperator''' - the end of line (todo - is this &amp;lt;code&amp;gt;\r\n&amp;lt;/code&amp;gt;?)&lt;br /&gt;
* '''var_seperator''' - the delimiter for the properties, this could be &amp;quot;|&amp;quot;, &amp;quot;###&amp;quot;, any string.&lt;br /&gt;
* The two '''chunk''' blocks contain our data. Note that these appear in the order presented within the XML file.&lt;br /&gt;
** '''node''' - the node of data we want&lt;br /&gt;
** '''name''' - it there for a reference, its not transmitted and note necessary (like a note)&lt;br /&gt;
** '''type''' - the way this xml is to interpret the value. This is quite important tag. For example if its not there or a string, then &amp;quot;floats&amp;quot; go wild and end up being a string of 32 characters with two decimal places!&lt;br /&gt;
** '''format''' - same syntax as &amp;lt;code&amp;gt;printf&amp;lt;/code&amp;gt; function in C/C++&lt;br /&gt;
** There's more that can be done {todo - link to a full blown example/reference}&lt;br /&gt;
&lt;br /&gt;
We can now start FlightGear and listen with:&lt;br /&gt;
 fgfs --generic=socket,out,10,localhost,6789,udp,my_protocol&lt;br /&gt;
&lt;br /&gt;
[todo] - link here to the tutorial&lt;br /&gt;
&lt;br /&gt;
== Alternative start using Nasal ==&lt;br /&gt;
It is also possible to start and stop from within the Nasal console. Start the Nasal console from the Debug menu and type the following (modify accordingly) and click Execute:&lt;br /&gt;
 fgcommand(&amp;quot;add-io-channel&amp;quot;, {&amp;quot;config&amp;quot;: &amp;quot;generic,socket,out,10,localhost,6789,udp,my_protocol&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;test&amp;quot;});&lt;br /&gt;
Name is optional but can be used to stop the connection using:&lt;br /&gt;
 fgcommand(&amp;quot;remove-io-channel&amp;quot;, {&amp;quot;name&amp;quot;: &amp;quot;test&amp;quot;});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Related content ==&lt;br /&gt;
=== Wiki articles ===&lt;br /&gt;
* [[Logging properties]] – ''A simpler way to log properties to a file.''&lt;br /&gt;
* [[Howto:Record, analyze and replay multiplayer flights with network tools]] - ''Logging the network traffic between your computer and a multiplayer server.''&lt;br /&gt;
* [[Howto:Using FlightGear with an EFB]]&lt;br /&gt;
&lt;br /&gt;
=== Readme files ===&lt;br /&gt;
* {{readme file|protocol}}&lt;br /&gt;
* {{readme file|IO}}&lt;br /&gt;
&lt;br /&gt;
=== Source code ===&lt;br /&gt;
* {{fgdata source|Protocol/}} – ''Predefined protocols''&lt;br /&gt;
* {{flightgear source|src/Network/generic.hxx}}&lt;br /&gt;
* {{flightgear source|src/Network/generic.cxx}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Interfacing protocols]]&lt;br /&gt;
[[Category:FlightGear]]&lt;br /&gt;
[[Category:XML]]&lt;br /&gt;
[[Category:Property Tree]]&lt;br /&gt;
&lt;br /&gt;
[[pl:Protokół ogólny]]&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Generic_protocol&amp;diff=138230</id>
		<title>Generic protocol</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Generic_protocol&amp;diff=138230"/>
		<updated>2023-08-24T02:32:27Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: /* Wiki articles */ fix link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PropertyTree}}&lt;br /&gt;
FlightGear supports multiple concurrent IO connections.  &lt;br /&gt;
&lt;br /&gt;
You could use the FGNetFDM (&amp;lt;code&amp;gt;--native&amp;lt;/code&amp;gt;) protocol or the &amp;lt;code&amp;gt;--generic&amp;lt;/code&amp;gt; protocol (which allows you to design custom packets with the specific fields you choose.)  Both of these can send the data out as UDP packets which then can be read by your external program using standard socket communication.&lt;br /&gt;
&lt;br /&gt;
This same basic mechanism also would permit your external program to send control commands so if some day you want to do some sort of hardware or software in the loop testing of your UAV controller, that is also a possibility.&lt;br /&gt;
&lt;br /&gt;
There is a slightly complex, but pretty flexible mechanism for specifying an IO channel, what type of communication will get sent over it, which direction, and at what rate.  Look for a file called README.IO that briefly explains much of this.  &lt;br /&gt;
&lt;br /&gt;
In addition, there is a &amp;quot;generic&amp;quot; protocol where you can create an XML file specifying exactly what data values you wish to send across your IO channel.  We don't have generic &amp;quot;USB&amp;quot; support, but if you have a Serial -&amp;gt; USB device that looks like a COM port on the computer side, then that should work without any problem ... just be careful which COM port your USB device gets assigned to.&lt;br /&gt;
&lt;br /&gt;
There is the native_fdm protocol to control FlightGear using an external FDM and there is the generic protocol that uses the XML configuration files.&lt;br /&gt;
&lt;br /&gt;
The ''generic'' communication protocol for FlightGear provides a powerful way of adding a simple ASCII based or binary input/output protocol, just by defining an XML encoded configuration file and placing it in the &amp;lt;code&amp;gt;[[$FG ROOT]]/Protocol/&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
The generic protocol can be easily set up for both input and output. And it supports not just a single medium, but can be easily made to use files, FIFOs, sockets etc. The generic protocol is really good for things like exporting to a delimited ASCII file for import into spreadsheet for instance.&lt;br /&gt;
&lt;br /&gt;
I think it makes sense (when dealing with live data) for the generic protocol to enter a while loop and read data until there is no more available.  That way if the sender is sending at a higher rate or FlightGear gets behind for any reason, FlightGear will get caught up each iteration.  This obviously does not work well for file input though, so you'd have to differentiate.&lt;br /&gt;
&lt;br /&gt;
== XML File Layout ==&lt;br /&gt;
&lt;br /&gt;
A protocol file can contain either or both of '''&amp;lt;input&amp;gt;''' and '''&amp;lt;output&amp;gt;''' definition blocks. Which one is used depends on how the protocol is called. The following example would only use the &amp;lt;output&amp;gt; definitions block.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 --generic=file,out,1,/tmp/data.xml,myproto&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you're using a serial port under Windows, you must use a special escape sequence for COM port numbers higher than COM9, for example: &lt;br /&gt;
&lt;br /&gt;
 --generic=\\.\COM10,out,1,/tmp/data.xml,myproto&lt;br /&gt;
&lt;br /&gt;
More detail can be found in this Microsoft KB article: https://msdn.microsoft.com/en-us/library/aa363858(v=vs.85).aspx&lt;br /&gt;
&lt;br /&gt;
Overview of the XML file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;PropertyList&amp;gt;&lt;br /&gt;
    &amp;lt;generic&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
        &amp;lt;output&amp;gt;&lt;br /&gt;
            &amp;lt;binary_mode&amp;gt;false&amp;lt;/binary_mode&amp;gt;&lt;br /&gt;
            &amp;lt;line_separator&amp;gt;&amp;lt;/line_separator&amp;gt;&lt;br /&gt;
            &amp;lt;var_separator&amp;gt;&amp;lt;/var_separator&amp;gt;&lt;br /&gt;
            &amp;lt;preamble&amp;gt;&amp;lt;/preamble&amp;gt;&lt;br /&gt;
            &amp;lt;postamble&amp;gt;&amp;lt;/postamble&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
            &amp;lt;chunk&amp;gt;&lt;br /&gt;
                &amp;lt;!-- First output chunk definition --&amp;gt;&lt;br /&gt;
            &amp;lt;/chunk&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
            &amp;lt;chunk&amp;gt;&lt;br /&gt;
                &amp;lt;!-- Next output chunk definition etc... --&amp;gt;&lt;br /&gt;
            &amp;lt;/chunk&amp;gt;&lt;br /&gt;
        &amp;lt;/output&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
        &amp;lt;input&amp;gt;&lt;br /&gt;
            &amp;lt;line_separator&amp;gt;&amp;lt;/line_separator&amp;gt;&lt;br /&gt;
            &amp;lt;var_separator&amp;gt;&amp;lt;/var_separator&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
            &amp;lt;chunk&amp;gt;&lt;br /&gt;
                &amp;lt;!-- First input chunk definition --&amp;gt;&lt;br /&gt;
            &amp;lt;/chunk&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
            &amp;lt;chunk&amp;gt;&lt;br /&gt;
                &amp;lt;!-- Next input chunk definition etc... --&amp;gt;&lt;br /&gt;
            &amp;lt;/chunk&amp;gt;&lt;br /&gt;
        &amp;lt;/input&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
    &amp;lt;/generic&amp;gt;&lt;br /&gt;
 &amp;lt;/PropertyList&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Input/Output Parameters ==&lt;br /&gt;
&lt;br /&gt;
Both '''&amp;lt;input&amp;gt;''' and '''&amp;lt;input&amp;gt;''' blocks can contain information about the data mode (ascii/binary) and about separators between fields and data sets, as well as a list of '''&amp;lt;chunk&amp;gt;'''s. Each '''&amp;lt;chunk&amp;gt;''' defines a property that should be written (and how), or a variable and which property it should be written to.&lt;br /&gt;
&lt;br /&gt;
==== ASCII protocol parameters ====&lt;br /&gt;
Note that some parameters only can be used for output.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter tag &lt;br /&gt;
! Out &lt;br /&gt;
! In&lt;br /&gt;
! Type &lt;br /&gt;
! Default &lt;br /&gt;
! Purpose&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;amp;lt;preamble&amp;amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| String &lt;br /&gt;
| &amp;quot;&amp;quot; &lt;br /&gt;
| File header put on top of the file&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;amp;lt;postamble&amp;amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| String &lt;br /&gt;
| &amp;quot;&amp;quot; &lt;br /&gt;
| File footer put at the end of the file&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;amp;lt;binary_mode&amp;amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| Boolean &lt;br /&gt;
| False &lt;br /&gt;
| Indicates if binary mode is to be used instead of ASCII&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;amp;lt;var_separator&amp;amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| String &lt;br /&gt;
| &amp;quot;&amp;quot; &lt;br /&gt;
| Field separator&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;amp;lt;line_separator&amp;amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| String &lt;br /&gt;
| &amp;quot;&amp;quot; &lt;br /&gt;
| Separator between data sets&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;var_separator&amp;gt;''' is put between each of the properties.&lt;br /&gt;
* '''&amp;lt;line_separator&amp;gt;''' is put at the end of each data set. &lt;br /&gt;
Both can contain arbitrary strings or one of the following keywords:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Keyword !! Special character&lt;br /&gt;
|-&lt;br /&gt;
| newline || &amp;lt;tt&amp;gt;\n&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tab || &amp;lt;tt&amp;gt;\t&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| formfeed || &amp;lt;tt&amp;gt;\f&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| carriagereturn || &amp;lt;tt&amp;gt;\r&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| verticaltab || &amp;lt;tt&amp;gt;\v&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Typical use could be:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;var_separator&amp;gt;tab&amp;lt;/var_separator&amp;gt;&lt;br /&gt;
 &amp;lt;line_separator&amp;gt;newline&amp;lt;/var_separator&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;var_separator&amp;gt;\t&amp;lt;/var_separator&amp;gt;&lt;br /&gt;
 &amp;lt;line_separator&amp;gt;\r\n&amp;lt;/line_separator&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Binary protocol parameters ====&lt;br /&gt;
&lt;br /&gt;
To enable binary mode, simply include a '''&amp;lt;binary_mode&amp;gt;true&amp;lt;/binary_mode&amp;gt;''' tag in your XML file. The format of the binary output is tightly packed, with 1 byte for bool, 4 bytes for int, and 8 bytes for double. At this time, strings are not supported. A configurable footer at the end of each &amp;quot;line&amp;quot; or packet of binary output can be added using the '''&amp;lt;binary_footer&amp;gt;''' tag. Options include the length of the packet, a magic number to simplify decoding. Examples:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;binary_footer&amp;gt;magic,0x12345678&amp;lt;/binary_footer&amp;gt;&lt;br /&gt;
  &amp;lt;binary_footer&amp;gt;length&amp;lt;/binary_footer&amp;gt;&lt;br /&gt;
  &amp;lt;binary_footer&amp;gt;none&amp;lt;/binary_footer&amp;gt;                 &amp;lt;!-- default --&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In addition, you can specify endianness of the data sent. This is done with the '''&amp;lt;byte_order&amp;gt;''' flag. The two options are network (big endian) and host.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;byte_order&amp;gt;host&amp;lt;/byte_order&amp;gt;&lt;br /&gt;
  &amp;lt;byte_order&amp;gt;network&amp;lt;/byte_order&amp;gt;        &amp;lt;!-- default --&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your generic protocol file specifies&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;binary_mode&amp;gt;true&amp;lt;/binary_mode&amp;gt;&lt;br /&gt;
    &amp;lt;byte_order&amp;gt;network&amp;lt;/byte_order&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
your receiver (or sender) code also have to use that encoding convention.&lt;br /&gt;
The encoding used by the generic protocol is independent of the output &lt;br /&gt;
channel you choose (file, TCP socket, UDP socket, serial port or &lt;br /&gt;
whatever).&lt;br /&gt;
&lt;br /&gt;
Also with sending/receiving UDP packets, you need to use different ports for&lt;br /&gt;
the sending and receiving channels.&lt;br /&gt;
&lt;br /&gt;
If you are unsure about what encoding FG uses for &lt;br /&gt;
binary data src/Network/generic.cxx is the place to find out. It is &lt;br /&gt;
pretty much standard for the basic types as far as I know, though.&lt;br /&gt;
&lt;br /&gt;
Network order is MSB first (as is host order if your system is big &lt;br /&gt;
endian but that is not so common these days). If you use host order and &lt;br /&gt;
both your systems have the same endianness (and you only care about &lt;br /&gt;
your use case) you don't have to worry about this.&lt;br /&gt;
&lt;br /&gt;
If you don't specify byte order, host order will be used. Anything x86 is &lt;br /&gt;
very likely to use LSB order (a PC certainly is).&lt;br /&gt;
&lt;br /&gt;
== Variable Parameters - &amp;lt;chunk&amp;gt; spec ==&lt;br /&gt;
&lt;br /&gt;
Both &amp;lt;input&amp;gt; and &amp;lt;output&amp;gt; block can contain a list of &amp;lt;chunk&amp;gt; specs, each of which describes the properties of on variable to write/read.&lt;br /&gt;
===== &amp;lt;name&amp;gt; =====&lt;br /&gt;
For ease of use and not transferred (like a notes tag)&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;node&amp;gt; =====&lt;br /&gt;
The [[Property Tree|property tree]] node which provides the data&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;type&amp;gt; =====&lt;br /&gt;
The value type which is needed for formatting, one of string, float, bool, int (default: int). Its recommended that this tag is present otherwise spurious results can occur.&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;format&amp;gt; =====&lt;br /&gt;
ASCII protocol only, not used or needed in binary mode. Defines the actual piece of text which should be sent. it can include &amp;quot;printf&amp;quot; style formatting options like:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Formatting option !! Type&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;%s&amp;lt;/tt&amp;gt; || String&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;%d&amp;lt;/tt&amp;gt; || Integer (default)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;%f&amp;lt;/tt&amp;gt; || Float&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: the type attribute tells the property tree how to store a value internally, using the most appropriate data type saves memory and reduces conversion overhead (bool, int, float, double, string). &lt;br /&gt;
Using the printf-style format strings in a generic protocol XML file, merely tells the I/O system how to encode/decode a property - so that it can be saved/transmitted and restored properly. Using the wrong type and/or format string in a binary protocol, would cause wrong data to be transmitted/processed by FG. &lt;br /&gt;
&lt;br /&gt;
Basically, each type specifier tells FG how long each data type is in memory (bits-wise). For example, a boolean value is just 0 or 1 - so it only requires a single bit. A byte, on the other hand, requires 8 bits - and an integer (int) 4 bytes (32 bit). &lt;br /&gt;
&lt;br /&gt;
So telling FG that something is a bit, will cause the data to be truncated to just a bit - which is what the format specifiers are all about: you can affect the re-interpretation of values from the property tree. In addition, there's the concept of signed-ness, i.e. numbers being positive or negative, or numbers having a mantissa - these affect how the values are stored in memory, and accordingly, the receiver must know how a value was encoded, to transform it back to what you want it to be.&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;factor&amp;gt; =====&lt;br /&gt;
An optional multiplication factor which can be used for unit conversion, for example, radians to degrees.&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;offset&amp;gt; =====&lt;br /&gt;
An optional offset which can be used for unit conversion, for example, degrees Celcius to degrees Fahrenheit.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;format&amp;gt; ====&lt;br /&gt;
Chunks can also consist of a single constant &amp;lt;format&amp;gt;, like in:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;format&amp;gt;Data Section&amp;lt;/format&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Serial I/O ==&lt;br /&gt;
&lt;br /&gt;
You can assign any number you want to a COM port when it is driven by a USB-to-COM or Ethernet-to-COM adapter. Simply go to the Device Manager&lt;br /&gt;
and set it between 1 and 255.&lt;br /&gt;
&lt;br /&gt;
There are a lot of make of these kind of device. Some are good, others not so ...&lt;br /&gt;
&lt;br /&gt;
{{Note|Windows:To specify a COM port number greater than 9, use the following syntax: &amp;lt;code&amp;gt;\\.\COM10&amp;lt;/code&amp;gt;. This syntax works for all port numbers and hardware that allows COM port numbers to be specified.}}&lt;br /&gt;
&lt;br /&gt;
it doesn't appear that the &amp;quot;generic&amp;quot; interface code&lt;br /&gt;
is setup to transmit and receive at the same time.  You can't open up the&lt;br /&gt;
same device twice, so you two command line options won't work either.  As&lt;br /&gt;
far as I can tell this will require some code modifications if you want to&lt;br /&gt;
use direct serial communication.&lt;br /&gt;
&lt;br /&gt;
Another option might be to write a thin glue layer that talks to FlightGear&lt;br /&gt;
over the network, and talks to your hardware over a serial port and then&lt;br /&gt;
does all the appropriate data translation as required.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The good way to verify if the transmission of float values work is to &lt;br /&gt;
print the value in your receiver and compare that to the value of the &lt;br /&gt;
property you transmit in FG.&lt;br /&gt;
Btw. if your generic protocol is set to use network byte order &lt;br /&gt;
(endianness MSB) you have to take that into account when unpacking the &lt;br /&gt;
float value.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
==== Example 1 ====&lt;br /&gt;
Writes log of this form:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
V=16&lt;br /&gt;
H=3.590505&lt;br /&gt;
P=3.59&lt;br /&gt;
V=12&lt;br /&gt;
H=3.589020&lt;br /&gt;
P=3.59&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt; &lt;br /&gt;
 &amp;lt;PropertyList&amp;gt;&lt;br /&gt;
 &amp;lt;generic&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
    &amp;lt;output&amp;gt;&lt;br /&gt;
      &amp;lt;line_separator&amp;gt;newline&amp;lt;/line_separator&amp;gt;&lt;br /&gt;
      &amp;lt;var_separator&amp;gt;newline&amp;lt;/var_separator&amp;gt;&lt;br /&gt;
      &amp;lt;binary_mode&amp;gt;false&amp;lt;/binary_mode&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
      &amp;lt;chunk&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;speed&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;format&amp;gt;V=%d&amp;lt;/format&amp;gt;&lt;br /&gt;
        &amp;lt;node&amp;gt;/velocities/airspeed-kt&amp;lt;/node&amp;gt;&lt;br /&gt;
      &amp;lt;/chunk&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
      &amp;lt;chunk&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;heading (rad)&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;format&amp;gt;H=%.6f&amp;lt;/format&amp;gt;&lt;br /&gt;
        &amp;lt;type&amp;gt;float&amp;lt;/type&amp;gt;&lt;br /&gt;
        &amp;lt;node&amp;gt;/orientation/heading-deg&amp;lt;/node&amp;gt;&lt;br /&gt;
        &amp;lt;factor&amp;gt;0.0174532925199433&amp;lt;/factor&amp;gt;  &amp;lt;!-- degrees to radians --&amp;gt;&lt;br /&gt;
      &amp;lt;/chunk&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
      &amp;lt;chunk&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;pitch angle (deg)&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;format&amp;gt;P=%03.2f&amp;lt;/format&amp;gt;&lt;br /&gt;
        &amp;lt;node&amp;gt;/orientation/pitch-deg&amp;lt;/node&amp;gt;&lt;br /&gt;
      &amp;lt;/chunk&amp;gt;&lt;br /&gt;
   &amp;lt;/output&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;/generic&amp;gt;&lt;br /&gt;
 &amp;lt;/PropertyList&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Writing data in XML format===&lt;br /&gt;
Assuming the file is called &amp;lt;code&amp;gt;[[$FG_ROOT]]/Protocol/xmltest.xml&amp;lt;/code&amp;gt;, then it could be used as &lt;br /&gt;
 fgfs --generic=file,out,1,/tmp/data.xml,xmltest&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;PropertyList&amp;gt;&lt;br /&gt;
  &amp;lt;generic&amp;gt;&lt;br /&gt;
    &amp;lt;output&amp;gt;&lt;br /&gt;
      &amp;lt;binary_mode&amp;gt;false&amp;lt;/binary_mode&amp;gt;&lt;br /&gt;
      &amp;lt;var_separator&amp;gt;\n&amp;lt;/var_separator&amp;gt;&lt;br /&gt;
      &amp;lt;line_separator&amp;gt;\n&amp;lt;/line_separator&amp;gt;&lt;br /&gt;
      &amp;lt;preamble&amp;gt;&amp;amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;amp;gt;\n\n&amp;amp;lt;data&amp;amp;gt;\n&amp;lt;/preamble&amp;gt;&lt;br /&gt;
      &amp;lt;postamble&amp;gt;&amp;amp;lt;/data&amp;amp;gt;\n&amp;lt;/postamble&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
      &amp;lt;chunk&amp;gt;&lt;br /&gt;
        &amp;lt;format&amp;gt;\t&amp;amp;lt;set&amp;amp;gt;&amp;lt;/format&amp;gt;&lt;br /&gt;
      &amp;lt;/chunk&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
      &amp;lt;chunk&amp;gt;&lt;br /&gt;
        &amp;lt;node&amp;gt;/position/altitude-ft&amp;lt;/node&amp;gt;&lt;br /&gt;
        &amp;lt;type&amp;gt;float&amp;lt;/type&amp;gt;&lt;br /&gt;
        &amp;lt;format&amp;gt;\t\t&amp;amp;lt;altitude-ft&amp;amp;gt;%.8f&amp;amp;lt;/altitude-ft&amp;amp;gt;&amp;lt;/format&amp;gt;&lt;br /&gt;
      &amp;lt;/chunk&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
For more examples, see [http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg37892.html mailing list thread].&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;chunk&amp;gt;&lt;br /&gt;
        &amp;lt;node&amp;gt;/velocities/airspeed-kt&amp;lt;/node&amp;gt;&lt;br /&gt;
        &amp;lt;type&amp;gt;float&amp;lt;/type&amp;gt;&lt;br /&gt;
        &amp;lt;format&amp;gt;\t\t&amp;amp;lt;airspeed-kt&amp;amp;gt;%.8f&amp;amp;lt;/airspeed-kt&amp;amp;gt;&amp;lt;/format&amp;gt;&lt;br /&gt;
      &amp;lt;/chunk&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
      &amp;lt;chunk&amp;gt;&lt;br /&gt;
        &amp;lt;format&amp;gt;\t&amp;amp;lt;/set&amp;amp;gt;&amp;lt;/format&amp;gt;&lt;br /&gt;
      &amp;lt;/chunk&amp;gt;&lt;br /&gt;
    &amp;lt;/output&amp;gt;&lt;br /&gt;
 &amp;lt;/generic&amp;gt;&lt;br /&gt;
 &amp;lt;/PropertyList&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Analyzing the resulting binary packet format ==&lt;br /&gt;
A utility called ''generic-protocol-analyse'' can be found under &amp;lt;code&amp;gt;FlightGear/utils/xmlgrep&amp;lt;/code&amp;gt; which can be used to analyze the resulting data packet for the binary protocol. The output would be something like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bintest.xml&lt;br /&gt;
Generic binary output protocol packet description:&lt;br /&gt;
&lt;br /&gt;
 pos | size |  type  | factor     | description&lt;br /&gt;
-----|------|--------|------------|------------------------&lt;br /&gt;
   0 |    4 |    int |            | indicated speed (kt)&lt;br /&gt;
   4 |    4 |  float |            | pitch att (deg)&lt;br /&gt;
   8 |    4 |  float |            | magnetic heading (deg)&lt;br /&gt;
  12 |    4 |    int |            | outside air temperarure (degF)&lt;br /&gt;
  16 |    1 |   bool |            | autocoord&lt;br /&gt;
&lt;br /&gt;
total package size: 17 bytes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Protocol ==&lt;br /&gt;
FlightGear has an inbuilt &amp;quot;generic&amp;quot; protocol to push and pull data. (todo)&lt;br /&gt;
&lt;br /&gt;
To interface with FlightGear on a socket for example, the following steps need to be taken:&lt;br /&gt;
# Establish which &amp;quot;properties&amp;quot; you want to appear &amp;quot;on the wire&amp;quot;.&lt;br /&gt;
# Create a &amp;lt;code&amp;gt;my_protocol.xml&amp;lt;/code&amp;gt; file containing those properties.&lt;br /&gt;
# Start FlightGear with the generic protocol option using &amp;lt;code&amp;gt;my_protocol&amp;lt;/code&amp;gt; sent through the network socket.&lt;br /&gt;
&lt;br /&gt;
For this simple example say were interested in heading and altitude, and we want to &amp;quot;listen&amp;quot; ie output to a socket at port 6789, UDP and receiving 10 times a second in the format:&lt;br /&gt;
 alt\thead\n &lt;br /&gt;
 // ie altitude - tab - heading - newline&lt;br /&gt;
&lt;br /&gt;
The first step is establishing the nodes, in this example &lt;br /&gt;
 /position/altitude-agl-ft  eg (22.4713923)&lt;br /&gt;
 /orientation/heading-deg  eg (297.966325)&lt;br /&gt;
&lt;br /&gt;
Next create a file '''my_protocol.xml'''. This needs to be located at&lt;br /&gt;
 [[$FG_ROOT]]/Protocol/my_protocol.xml&lt;br /&gt;
&lt;br /&gt;
Edit the &amp;lt;code&amp;gt;my_protocol.xml&amp;lt;/code&amp;gt; file and write in it:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;PropertyList&amp;gt;&lt;br /&gt;
 &amp;lt;generic&amp;gt;&lt;br /&gt;
    &amp;lt;output&amp;gt;&lt;br /&gt;
        &amp;lt;line_separator&amp;gt;newline&amp;lt;/line_separator&amp;gt;&lt;br /&gt;
        &amp;lt;var_separator&amp;gt;tab&amp;lt;/var_separator&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
        &amp;lt;chunk&amp;gt;&lt;br /&gt;
           &amp;lt;node&amp;gt;/position/altitude-agl-ft&amp;lt;/node&amp;gt;&lt;br /&gt;
           &amp;lt;name&amp;gt;altitude to go&amp;lt;/name&amp;gt;&lt;br /&gt;
           &amp;lt;type&amp;gt;float&amp;lt;/type&amp;gt;&lt;br /&gt;
           &amp;lt;format&amp;gt;%03.2f&amp;lt;/format&amp;gt;&lt;br /&gt;
         &amp;lt;/chunk&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
        &amp;lt;chunk&amp;gt;&lt;br /&gt;
           &amp;lt;node&amp;gt;/orientation/heading-deg&amp;lt;/node&amp;gt;&lt;br /&gt;
           &amp;lt;name&amp;gt;Heading&amp;lt;/name&amp;gt;&lt;br /&gt;
           &amp;lt;type&amp;gt;float&amp;lt;/type&amp;gt;&lt;br /&gt;
           &amp;lt;format&amp;gt;%03.3f&amp;lt;/format&amp;gt;&lt;br /&gt;
         &amp;lt;/chunk&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
    &amp;lt;/output&amp;gt;&lt;br /&gt;
  &amp;lt;/generic&amp;gt;&lt;br /&gt;
 &amp;lt;/PropertyList&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The '''output''' tag indicates the protocol for output. The same &amp;quot;protocol&amp;quot; file can contain an &amp;quot;input&amp;quot; section, absent in this example (more later).&lt;br /&gt;
* '''line_seperator''' - the end of line (todo - is this &amp;lt;code&amp;gt;\r\n&amp;lt;/code&amp;gt;?)&lt;br /&gt;
* '''var_seperator''' - the delimiter for the properties, this could be &amp;quot;|&amp;quot;, &amp;quot;###&amp;quot;, any string.&lt;br /&gt;
* The two '''chunk''' blocks contain our data. Note that these appear in the order presented within the XML file.&lt;br /&gt;
** '''node''' - the node of data we want&lt;br /&gt;
** '''name''' - it there for a reference, its not transmitted and note necessary (like a note)&lt;br /&gt;
** '''type''' - the way this xml is to interpret the value. This is quite important tag. For example if its not there or a string, then &amp;quot;floats&amp;quot; go wild and end up being a string of 32 characters with two decimal places!&lt;br /&gt;
** '''format''' - same syntax as &amp;lt;code&amp;gt;printf&amp;lt;/code&amp;gt; function in C/C++&lt;br /&gt;
** There's more that can be done {todo - link to a full blown example/reference}&lt;br /&gt;
&lt;br /&gt;
We can now start FlightGear and listen with:&lt;br /&gt;
 fgfs --generic=socket,out,10,localhost,6789,udp,my_protocol&lt;br /&gt;
&lt;br /&gt;
[todo] - link here to the tutorial&lt;br /&gt;
&lt;br /&gt;
== Alternative start using Nasal ==&lt;br /&gt;
It is also possible to start and stop from within the Nasal console. Start the Nasal console from the Debug menu and type the following (modify accordingly) and click Execute:&lt;br /&gt;
 fgcommand(&amp;quot;add-io-channel&amp;quot;, {&amp;quot;config&amp;quot;: &amp;quot;generic,socket,out,10,localhost,6789,udp,my_protocol&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;test&amp;quot;});&lt;br /&gt;
Name is optional but can be used to stop the connection using:&lt;br /&gt;
 fgcommand(&amp;quot;remove-io-channel&amp;quot;, {&amp;quot;name&amp;quot;: &amp;quot;test&amp;quot;});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Related content ==&lt;br /&gt;
=== Wiki articles ===&lt;br /&gt;
* [[Logging properties]] – ''A simpler way to log properties to a file.''&lt;br /&gt;
* [[Howto:Record, analyze and replay multiplayer flights with network tools]] - ''Logging the network traffic between your computer and a multiplayer server.''&lt;br /&gt;
* [[HowTo:Using FlightGear with an EFB]]&lt;br /&gt;
&lt;br /&gt;
=== Readme files ===&lt;br /&gt;
* {{readme file|protocol}}&lt;br /&gt;
* {{readme file|IO}}&lt;br /&gt;
&lt;br /&gt;
=== Source code ===&lt;br /&gt;
* {{fgdata source|Protocol/}} – ''Predefined protocols''&lt;br /&gt;
* {{flightgear source|src/Network/generic.hxx}}&lt;br /&gt;
* {{flightgear source|src/Network/generic.cxx}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Interfacing protocols]]&lt;br /&gt;
[[Category:FlightGear]]&lt;br /&gt;
[[Category:XML]]&lt;br /&gt;
[[Category:Property Tree]]&lt;br /&gt;
&lt;br /&gt;
[[pl:Protokół ogólny]]&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Using_FlightGear_with_an_EFB&amp;diff=138229</id>
		<title>Using FlightGear with an EFB</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Using_FlightGear_with_an_EFB&amp;diff=138229"/>
		<updated>2023-08-24T02:31:54Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: David.megginson moved page Using FlightGear with an EFB to Howto:Using FlightGear with an EFB: Follow naming convention.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Howto:Using FlightGear with an EFB]]&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Using_FlightGear_with_an_EFB&amp;diff=138228</id>
		<title>Howto:Using FlightGear with an EFB</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Using_FlightGear_with_an_EFB&amp;diff=138228"/>
		<updated>2023-08-24T02:31:54Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: David.megginson moved page Using FlightGear with an EFB to Howto:Using FlightGear with an EFB: Follow naming convention.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An '''Electronic Flight Bag''' (EFB) is an application that includes maps, weight-and-balance, and other tools that used to exist physically in a pilot's flight bag. The best-known EFB applications available on consumer mobile devices include [https://foreflight.com/ ForeFlight] ($$, iOS only, global), [https://www.garmin.com/en-CA/aviation/garminpilot/overview/ Garmin Pilot] ($$, Android and iOS, global), [https://flttrack.fltplan.com/FltPlanInfo/FltPlan_Go-Android-iPad_Info.html FltPlan Go] (cost-free, Android and iOS, Canada/U.S./Caribbean), and [https://www.apps4av.com/ Avare] (cost-free, Android only, U.S. only). Note that U.S. coverage typically overlaps slightly into southern Canada and northern Mexico.&lt;br /&gt;
&lt;br /&gt;
FlightGear can feed data to most EFB applications to replace real GPS data in plane, so you can use your tablet for a moving map and flight planner beside your computer, just like you would in a real cockpit.&lt;br /&gt;
&lt;br /&gt;
The instructions in this article are tested with FltPlan Go (because it's cost-free), but have been used in the past with Garmin Pilot as well, and should also work at least with ForeFlight.&lt;br /&gt;
&lt;br /&gt;
== Configuring FlightGear ==&lt;br /&gt;
&lt;br /&gt;
The necessary protocol files already exist in FlightGear, so all you need to do is add the following two lines to your $HOME/.fgfsrc file or to the &amp;quot;Additional Settings&amp;quot; subsection of &amp;quot;Settings&amp;quot; in the visual launcher:&lt;br /&gt;
&lt;br /&gt;
 --generic=socket,out,10,255.255.255.255,49002,udp,foreflight-xatt&lt;br /&gt;
 --generic=socket,out,1,255.255.255.255,49002,udp,foreflight-xgps&lt;br /&gt;
&lt;br /&gt;
== Configuring your EFB ==&lt;br /&gt;
&lt;br /&gt;
[[File:FltPlan Go settings.jpg|thumb|80px|FltPlan Go External settings to connect with FlightGear]]&lt;br /&gt;
[[File:FltPlan Go map page.jpg|thumb|80px|Moving map showing a FlightGear flight over a Canadian VNC (Sectional).]]&lt;br /&gt;
&lt;br /&gt;
Your mobile device ''must'' be connected to the same network as the computer running FlightGear. The following instructions apply to FltPlan Go, but the process for other EFBs will be similar (follow the instructions for connecting to X-Plane).&lt;br /&gt;
&lt;br /&gt;
Go to the &amp;quot;External&amp;quot; side tab for FltPlan Go, and select &amp;quot;X-Plane&amp;quot; under &amp;quot;Simulators&amp;quot;. Then start FlightGear (in the same network), and wait for the altitude, latitude, longitude, course, and speed information to appear in the fields to the right: these will confirm that you have made a connection.&lt;br /&gt;
&lt;br /&gt;
You can now navigate to other tabs, such as the moving map or airport diagrams and instrument procedures, and see your aircraft position live.&lt;br /&gt;
&lt;br /&gt;
== Related content ==&lt;br /&gt;
&lt;br /&gt;
* [[Generic protocol]]&lt;br /&gt;
* [[Interfacing FlightGear]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Interfacing protocols| ]]&lt;br /&gt;
[[Category:FlightGear]]&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Using_FlightGear_with_an_EFB&amp;diff=138227</id>
		<title>Howto:Using FlightGear with an EFB</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Using_FlightGear_with_an_EFB&amp;diff=138227"/>
		<updated>2023-08-24T02:30:13Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An '''Electronic Flight Bag''' (EFB) is an application that includes maps, weight-and-balance, and other tools that used to exist physically in a pilot's flight bag. The best-known EFB applications available on consumer mobile devices include [https://foreflight.com/ ForeFlight] ($$, iOS only, global), [https://www.garmin.com/en-CA/aviation/garminpilot/overview/ Garmin Pilot] ($$, Android and iOS, global), [https://flttrack.fltplan.com/FltPlanInfo/FltPlan_Go-Android-iPad_Info.html FltPlan Go] (cost-free, Android and iOS, Canada/U.S./Caribbean), and [https://www.apps4av.com/ Avare] (cost-free, Android only, U.S. only). Note that U.S. coverage typically overlaps slightly into southern Canada and northern Mexico.&lt;br /&gt;
&lt;br /&gt;
FlightGear can feed data to most EFB applications to replace real GPS data in plane, so you can use your tablet for a moving map and flight planner beside your computer, just like you would in a real cockpit.&lt;br /&gt;
&lt;br /&gt;
The instructions in this article are tested with FltPlan Go (because it's cost-free), but have been used in the past with Garmin Pilot as well, and should also work at least with ForeFlight.&lt;br /&gt;
&lt;br /&gt;
== Configuring FlightGear ==&lt;br /&gt;
&lt;br /&gt;
The necessary protocol files already exist in FlightGear, so all you need to do is add the following two lines to your $HOME/.fgfsrc file or to the &amp;quot;Additional Settings&amp;quot; subsection of &amp;quot;Settings&amp;quot; in the visual launcher:&lt;br /&gt;
&lt;br /&gt;
 --generic=socket,out,10,255.255.255.255,49002,udp,foreflight-xatt&lt;br /&gt;
 --generic=socket,out,1,255.255.255.255,49002,udp,foreflight-xgps&lt;br /&gt;
&lt;br /&gt;
== Configuring your EFB ==&lt;br /&gt;
&lt;br /&gt;
[[File:FltPlan Go settings.jpg|thumb|80px|FltPlan Go External settings to connect with FlightGear]]&lt;br /&gt;
[[File:FltPlan Go map page.jpg|thumb|80px|Moving map showing a FlightGear flight over a Canadian VNC (Sectional).]]&lt;br /&gt;
&lt;br /&gt;
Your mobile device ''must'' be connected to the same network as the computer running FlightGear. The following instructions apply to FltPlan Go, but the process for other EFBs will be similar (follow the instructions for connecting to X-Plane).&lt;br /&gt;
&lt;br /&gt;
Go to the &amp;quot;External&amp;quot; side tab for FltPlan Go, and select &amp;quot;X-Plane&amp;quot; under &amp;quot;Simulators&amp;quot;. Then start FlightGear (in the same network), and wait for the altitude, latitude, longitude, course, and speed information to appear in the fields to the right: these will confirm that you have made a connection.&lt;br /&gt;
&lt;br /&gt;
You can now navigate to other tabs, such as the moving map or airport diagrams and instrument procedures, and see your aircraft position live.&lt;br /&gt;
&lt;br /&gt;
== Related content ==&lt;br /&gt;
&lt;br /&gt;
* [[Generic protocol]]&lt;br /&gt;
* [[Interfacing FlightGear]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Interfacing protocols| ]]&lt;br /&gt;
[[Category:FlightGear]]&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Interfacing_FlightGear&amp;diff=138226</id>
		<title>Interfacing FlightGear</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Interfacing_FlightGear&amp;diff=138226"/>
		<updated>2023-08-24T02:29:33Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: /* Wiki articles */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
There are several different ways to '''interface FlightGear''' to either feed FlightGear with data, get data from FlightGear or both.&lt;br /&gt;
&lt;br /&gt;
There could be many different reasons to interface FlightGear, for example:&lt;br /&gt;
&lt;br /&gt;
* Using an external [[Flight Dynamics Model|FDM]]&lt;br /&gt;
* Feeding FlightGear properties when using FlightGear for visualization&lt;br /&gt;
* Feeding external traffic data using either the AI/MP systems, or a combination of both&lt;br /&gt;
* Interfacing FlightGear with external hardware, for example a home-built autopilot control panel&lt;br /&gt;
&lt;br /&gt;
== Screen shots ==&lt;br /&gt;
&lt;br /&gt;
But we do provide png screenshots, too. Change the url from&lt;br /&gt;
/screenshot?type=jpg to /screenshot?type=png&lt;br /&gt;
&lt;br /&gt;
== Video ==&lt;br /&gt;
&lt;br /&gt;
We can do MJPEG stream, try to use /screenshot?stream=y as the screenshot&lt;br /&gt;
url. MJPEG is ugly and a resource hog but works reasonable well for image&lt;br /&gt;
sizes of probably 640x480. Scale down your FG window and give it a try.&lt;br /&gt;
&lt;br /&gt;
== Generic protocol ==&lt;br /&gt;
{{main article|Generic protocol}}&lt;br /&gt;
&lt;br /&gt;
Using a generic protocol you can use either an existing protocol or a protocol custom made for your need.  The protocols are defined in [[PropertyList XML files]], and can both be used for reading from or to a file and to communicate through a serial connection.&lt;br /&gt;
&lt;br /&gt;
== Native protocol ==&lt;br /&gt;
{{main article|Property Tree/Sockets}}&lt;br /&gt;
&lt;br /&gt;
This uses a native protocol primarily when communicating with an external FDM.&lt;br /&gt;
&lt;br /&gt;
== Telnet ==&lt;br /&gt;
{{main article|Telnet usage}}&lt;br /&gt;
&lt;br /&gt;
FlightGear can be given command line arguments that will start FlightGear with a telnet server, &amp;lt;code&amp;gt;--telnet=''port''&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
There is an interactive mode with a handful of commands that can be used for interacting with FlightGear's [[property tree]] and a data mode for connecting to FlightGear through a socket.&lt;br /&gt;
&lt;br /&gt;
== HTTP ==&lt;br /&gt;
{{main article|Property Tree Servers}}&lt;br /&gt;
&lt;br /&gt;
FlightGear have an built in web server which allow you to view and interact with the property tree through a web browser or through HTTP requests.&lt;br /&gt;
&lt;br /&gt;
== Scripted AI ==&lt;br /&gt;
&lt;br /&gt;
== Multiplayer ==&lt;br /&gt;
&lt;br /&gt;
== Flight recorder tapes ==&lt;br /&gt;
&lt;br /&gt;
== Related content ==&lt;br /&gt;
=== Wiki articles ===&lt;br /&gt;
* [[Howto:Build your own procedure trainer]]&lt;br /&gt;
* [[Using FlightGear with an EFB]]&lt;br /&gt;
* [[FlightGear I/O Considerations]]&lt;br /&gt;
* [[Head tracking]]&lt;br /&gt;
* [[Logging properties]]&lt;br /&gt;
* [[MATLAB]]&lt;br /&gt;
* [[Professional and educational FlightGear users]]&lt;br /&gt;
* [[Property tree]]&lt;br /&gt;
* [[Howto:Record, analyze and replay multiplayer flights with network tools]]&lt;br /&gt;
* [[Howto:Use Arduino with FlightGear]]&lt;br /&gt;
&lt;br /&gt;
=== Readme files ===&lt;br /&gt;
* {{readme file|IO}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Interfacing protocols| ]]&lt;br /&gt;
[[Category:FlightGear]]&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Generic_protocol&amp;diff=138225</id>
		<title>Generic protocol</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Generic_protocol&amp;diff=138225"/>
		<updated>2023-08-24T02:28:48Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: /* Related content */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PropertyTree}}&lt;br /&gt;
FlightGear supports multiple concurrent IO connections.  &lt;br /&gt;
&lt;br /&gt;
You could use the FGNetFDM (&amp;lt;code&amp;gt;--native&amp;lt;/code&amp;gt;) protocol or the &amp;lt;code&amp;gt;--generic&amp;lt;/code&amp;gt; protocol (which allows you to design custom packets with the specific fields you choose.)  Both of these can send the data out as UDP packets which then can be read by your external program using standard socket communication.&lt;br /&gt;
&lt;br /&gt;
This same basic mechanism also would permit your external program to send control commands so if some day you want to do some sort of hardware or software in the loop testing of your UAV controller, that is also a possibility.&lt;br /&gt;
&lt;br /&gt;
There is a slightly complex, but pretty flexible mechanism for specifying an IO channel, what type of communication will get sent over it, which direction, and at what rate.  Look for a file called README.IO that briefly explains much of this.  &lt;br /&gt;
&lt;br /&gt;
In addition, there is a &amp;quot;generic&amp;quot; protocol where you can create an XML file specifying exactly what data values you wish to send across your IO channel.  We don't have generic &amp;quot;USB&amp;quot; support, but if you have a Serial -&amp;gt; USB device that looks like a COM port on the computer side, then that should work without any problem ... just be careful which COM port your USB device gets assigned to.&lt;br /&gt;
&lt;br /&gt;
There is the native_fdm protocol to control FlightGear using an external FDM and there is the generic protocol that uses the XML configuration files.&lt;br /&gt;
&lt;br /&gt;
The ''generic'' communication protocol for FlightGear provides a powerful way of adding a simple ASCII based or binary input/output protocol, just by defining an XML encoded configuration file and placing it in the &amp;lt;code&amp;gt;[[$FG ROOT]]/Protocol/&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
The generic protocol can be easily set up for both input and output. And it supports not just a single medium, but can be easily made to use files, FIFOs, sockets etc. The generic protocol is really good for things like exporting to a delimited ASCII file for import into spreadsheet for instance.&lt;br /&gt;
&lt;br /&gt;
I think it makes sense (when dealing with live data) for the generic protocol to enter a while loop and read data until there is no more available.  That way if the sender is sending at a higher rate or FlightGear gets behind for any reason, FlightGear will get caught up each iteration.  This obviously does not work well for file input though, so you'd have to differentiate.&lt;br /&gt;
&lt;br /&gt;
== XML File Layout ==&lt;br /&gt;
&lt;br /&gt;
A protocol file can contain either or both of '''&amp;lt;input&amp;gt;''' and '''&amp;lt;output&amp;gt;''' definition blocks. Which one is used depends on how the protocol is called. The following example would only use the &amp;lt;output&amp;gt; definitions block.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 --generic=file,out,1,/tmp/data.xml,myproto&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you're using a serial port under Windows, you must use a special escape sequence for COM port numbers higher than COM9, for example: &lt;br /&gt;
&lt;br /&gt;
 --generic=\\.\COM10,out,1,/tmp/data.xml,myproto&lt;br /&gt;
&lt;br /&gt;
More detail can be found in this Microsoft KB article: https://msdn.microsoft.com/en-us/library/aa363858(v=vs.85).aspx&lt;br /&gt;
&lt;br /&gt;
Overview of the XML file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;PropertyList&amp;gt;&lt;br /&gt;
    &amp;lt;generic&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
        &amp;lt;output&amp;gt;&lt;br /&gt;
            &amp;lt;binary_mode&amp;gt;false&amp;lt;/binary_mode&amp;gt;&lt;br /&gt;
            &amp;lt;line_separator&amp;gt;&amp;lt;/line_separator&amp;gt;&lt;br /&gt;
            &amp;lt;var_separator&amp;gt;&amp;lt;/var_separator&amp;gt;&lt;br /&gt;
            &amp;lt;preamble&amp;gt;&amp;lt;/preamble&amp;gt;&lt;br /&gt;
            &amp;lt;postamble&amp;gt;&amp;lt;/postamble&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
            &amp;lt;chunk&amp;gt;&lt;br /&gt;
                &amp;lt;!-- First output chunk definition --&amp;gt;&lt;br /&gt;
            &amp;lt;/chunk&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
            &amp;lt;chunk&amp;gt;&lt;br /&gt;
                &amp;lt;!-- Next output chunk definition etc... --&amp;gt;&lt;br /&gt;
            &amp;lt;/chunk&amp;gt;&lt;br /&gt;
        &amp;lt;/output&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
        &amp;lt;input&amp;gt;&lt;br /&gt;
            &amp;lt;line_separator&amp;gt;&amp;lt;/line_separator&amp;gt;&lt;br /&gt;
            &amp;lt;var_separator&amp;gt;&amp;lt;/var_separator&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
            &amp;lt;chunk&amp;gt;&lt;br /&gt;
                &amp;lt;!-- First input chunk definition --&amp;gt;&lt;br /&gt;
            &amp;lt;/chunk&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
            &amp;lt;chunk&amp;gt;&lt;br /&gt;
                &amp;lt;!-- Next input chunk definition etc... --&amp;gt;&lt;br /&gt;
            &amp;lt;/chunk&amp;gt;&lt;br /&gt;
        &amp;lt;/input&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
    &amp;lt;/generic&amp;gt;&lt;br /&gt;
 &amp;lt;/PropertyList&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Input/Output Parameters ==&lt;br /&gt;
&lt;br /&gt;
Both '''&amp;lt;input&amp;gt;''' and '''&amp;lt;input&amp;gt;''' blocks can contain information about the data mode (ascii/binary) and about separators between fields and data sets, as well as a list of '''&amp;lt;chunk&amp;gt;'''s. Each '''&amp;lt;chunk&amp;gt;''' defines a property that should be written (and how), or a variable and which property it should be written to.&lt;br /&gt;
&lt;br /&gt;
==== ASCII protocol parameters ====&lt;br /&gt;
Note that some parameters only can be used for output.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter tag &lt;br /&gt;
! Out &lt;br /&gt;
! In&lt;br /&gt;
! Type &lt;br /&gt;
! Default &lt;br /&gt;
! Purpose&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;amp;lt;preamble&amp;amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| String &lt;br /&gt;
| &amp;quot;&amp;quot; &lt;br /&gt;
| File header put on top of the file&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;amp;lt;postamble&amp;amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| String &lt;br /&gt;
| &amp;quot;&amp;quot; &lt;br /&gt;
| File footer put at the end of the file&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;amp;lt;binary_mode&amp;amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| Boolean &lt;br /&gt;
| False &lt;br /&gt;
| Indicates if binary mode is to be used instead of ASCII&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;amp;lt;var_separator&amp;amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| String &lt;br /&gt;
| &amp;quot;&amp;quot; &lt;br /&gt;
| Field separator&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;amp;lt;line_separator&amp;amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| String &lt;br /&gt;
| &amp;quot;&amp;quot; &lt;br /&gt;
| Separator between data sets&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;var_separator&amp;gt;''' is put between each of the properties.&lt;br /&gt;
* '''&amp;lt;line_separator&amp;gt;''' is put at the end of each data set. &lt;br /&gt;
Both can contain arbitrary strings or one of the following keywords:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Keyword !! Special character&lt;br /&gt;
|-&lt;br /&gt;
| newline || &amp;lt;tt&amp;gt;\n&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tab || &amp;lt;tt&amp;gt;\t&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| formfeed || &amp;lt;tt&amp;gt;\f&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| carriagereturn || &amp;lt;tt&amp;gt;\r&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| verticaltab || &amp;lt;tt&amp;gt;\v&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Typical use could be:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;var_separator&amp;gt;tab&amp;lt;/var_separator&amp;gt;&lt;br /&gt;
 &amp;lt;line_separator&amp;gt;newline&amp;lt;/var_separator&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;var_separator&amp;gt;\t&amp;lt;/var_separator&amp;gt;&lt;br /&gt;
 &amp;lt;line_separator&amp;gt;\r\n&amp;lt;/line_separator&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Binary protocol parameters ====&lt;br /&gt;
&lt;br /&gt;
To enable binary mode, simply include a '''&amp;lt;binary_mode&amp;gt;true&amp;lt;/binary_mode&amp;gt;''' tag in your XML file. The format of the binary output is tightly packed, with 1 byte for bool, 4 bytes for int, and 8 bytes for double. At this time, strings are not supported. A configurable footer at the end of each &amp;quot;line&amp;quot; or packet of binary output can be added using the '''&amp;lt;binary_footer&amp;gt;''' tag. Options include the length of the packet, a magic number to simplify decoding. Examples:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;binary_footer&amp;gt;magic,0x12345678&amp;lt;/binary_footer&amp;gt;&lt;br /&gt;
  &amp;lt;binary_footer&amp;gt;length&amp;lt;/binary_footer&amp;gt;&lt;br /&gt;
  &amp;lt;binary_footer&amp;gt;none&amp;lt;/binary_footer&amp;gt;                 &amp;lt;!-- default --&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In addition, you can specify endianness of the data sent. This is done with the '''&amp;lt;byte_order&amp;gt;''' flag. The two options are network (big endian) and host.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;byte_order&amp;gt;host&amp;lt;/byte_order&amp;gt;&lt;br /&gt;
  &amp;lt;byte_order&amp;gt;network&amp;lt;/byte_order&amp;gt;        &amp;lt;!-- default --&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your generic protocol file specifies&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;binary_mode&amp;gt;true&amp;lt;/binary_mode&amp;gt;&lt;br /&gt;
    &amp;lt;byte_order&amp;gt;network&amp;lt;/byte_order&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
your receiver (or sender) code also have to use that encoding convention.&lt;br /&gt;
The encoding used by the generic protocol is independent of the output &lt;br /&gt;
channel you choose (file, TCP socket, UDP socket, serial port or &lt;br /&gt;
whatever).&lt;br /&gt;
&lt;br /&gt;
Also with sending/receiving UDP packets, you need to use different ports for&lt;br /&gt;
the sending and receiving channels.&lt;br /&gt;
&lt;br /&gt;
If you are unsure about what encoding FG uses for &lt;br /&gt;
binary data src/Network/generic.cxx is the place to find out. It is &lt;br /&gt;
pretty much standard for the basic types as far as I know, though.&lt;br /&gt;
&lt;br /&gt;
Network order is MSB first (as is host order if your system is big &lt;br /&gt;
endian but that is not so common these days). If you use host order and &lt;br /&gt;
both your systems have the same endianness (and you only care about &lt;br /&gt;
your use case) you don't have to worry about this.&lt;br /&gt;
&lt;br /&gt;
If you don't specify byte order, host order will be used. Anything x86 is &lt;br /&gt;
very likely to use LSB order (a PC certainly is).&lt;br /&gt;
&lt;br /&gt;
== Variable Parameters - &amp;lt;chunk&amp;gt; spec ==&lt;br /&gt;
&lt;br /&gt;
Both &amp;lt;input&amp;gt; and &amp;lt;output&amp;gt; block can contain a list of &amp;lt;chunk&amp;gt; specs, each of which describes the properties of on variable to write/read.&lt;br /&gt;
===== &amp;lt;name&amp;gt; =====&lt;br /&gt;
For ease of use and not transferred (like a notes tag)&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;node&amp;gt; =====&lt;br /&gt;
The [[Property Tree|property tree]] node which provides the data&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;type&amp;gt; =====&lt;br /&gt;
The value type which is needed for formatting, one of string, float, bool, int (default: int). Its recommended that this tag is present otherwise spurious results can occur.&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;format&amp;gt; =====&lt;br /&gt;
ASCII protocol only, not used or needed in binary mode. Defines the actual piece of text which should be sent. it can include &amp;quot;printf&amp;quot; style formatting options like:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Formatting option !! Type&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;%s&amp;lt;/tt&amp;gt; || String&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;%d&amp;lt;/tt&amp;gt; || Integer (default)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;%f&amp;lt;/tt&amp;gt; || Float&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: the type attribute tells the property tree how to store a value internally, using the most appropriate data type saves memory and reduces conversion overhead (bool, int, float, double, string). &lt;br /&gt;
Using the printf-style format strings in a generic protocol XML file, merely tells the I/O system how to encode/decode a property - so that it can be saved/transmitted and restored properly. Using the wrong type and/or format string in a binary protocol, would cause wrong data to be transmitted/processed by FG. &lt;br /&gt;
&lt;br /&gt;
Basically, each type specifier tells FG how long each data type is in memory (bits-wise). For example, a boolean value is just 0 or 1 - so it only requires a single bit. A byte, on the other hand, requires 8 bits - and an integer (int) 4 bytes (32 bit). &lt;br /&gt;
&lt;br /&gt;
So telling FG that something is a bit, will cause the data to be truncated to just a bit - which is what the format specifiers are all about: you can affect the re-interpretation of values from the property tree. In addition, there's the concept of signed-ness, i.e. numbers being positive or negative, or numbers having a mantissa - these affect how the values are stored in memory, and accordingly, the receiver must know how a value was encoded, to transform it back to what you want it to be.&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;factor&amp;gt; =====&lt;br /&gt;
An optional multiplication factor which can be used for unit conversion, for example, radians to degrees.&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;offset&amp;gt; =====&lt;br /&gt;
An optional offset which can be used for unit conversion, for example, degrees Celcius to degrees Fahrenheit.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;format&amp;gt; ====&lt;br /&gt;
Chunks can also consist of a single constant &amp;lt;format&amp;gt;, like in:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;format&amp;gt;Data Section&amp;lt;/format&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Serial I/O ==&lt;br /&gt;
&lt;br /&gt;
You can assign any number you want to a COM port when it is driven by a USB-to-COM or Ethernet-to-COM adapter. Simply go to the Device Manager&lt;br /&gt;
and set it between 1 and 255.&lt;br /&gt;
&lt;br /&gt;
There are a lot of make of these kind of device. Some are good, others not so ...&lt;br /&gt;
&lt;br /&gt;
{{Note|Windows:To specify a COM port number greater than 9, use the following syntax: &amp;lt;code&amp;gt;\\.\COM10&amp;lt;/code&amp;gt;. This syntax works for all port numbers and hardware that allows COM port numbers to be specified.}}&lt;br /&gt;
&lt;br /&gt;
it doesn't appear that the &amp;quot;generic&amp;quot; interface code&lt;br /&gt;
is setup to transmit and receive at the same time.  You can't open up the&lt;br /&gt;
same device twice, so you two command line options won't work either.  As&lt;br /&gt;
far as I can tell this will require some code modifications if you want to&lt;br /&gt;
use direct serial communication.&lt;br /&gt;
&lt;br /&gt;
Another option might be to write a thin glue layer that talks to FlightGear&lt;br /&gt;
over the network, and talks to your hardware over a serial port and then&lt;br /&gt;
does all the appropriate data translation as required.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The good way to verify if the transmission of float values work is to &lt;br /&gt;
print the value in your receiver and compare that to the value of the &lt;br /&gt;
property you transmit in FG.&lt;br /&gt;
Btw. if your generic protocol is set to use network byte order &lt;br /&gt;
(endianness MSB) you have to take that into account when unpacking the &lt;br /&gt;
float value.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
==== Example 1 ====&lt;br /&gt;
Writes log of this form:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
V=16&lt;br /&gt;
H=3.590505&lt;br /&gt;
P=3.59&lt;br /&gt;
V=12&lt;br /&gt;
H=3.589020&lt;br /&gt;
P=3.59&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt; &lt;br /&gt;
 &amp;lt;PropertyList&amp;gt;&lt;br /&gt;
 &amp;lt;generic&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
    &amp;lt;output&amp;gt;&lt;br /&gt;
      &amp;lt;line_separator&amp;gt;newline&amp;lt;/line_separator&amp;gt;&lt;br /&gt;
      &amp;lt;var_separator&amp;gt;newline&amp;lt;/var_separator&amp;gt;&lt;br /&gt;
      &amp;lt;binary_mode&amp;gt;false&amp;lt;/binary_mode&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
      &amp;lt;chunk&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;speed&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;format&amp;gt;V=%d&amp;lt;/format&amp;gt;&lt;br /&gt;
        &amp;lt;node&amp;gt;/velocities/airspeed-kt&amp;lt;/node&amp;gt;&lt;br /&gt;
      &amp;lt;/chunk&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
      &amp;lt;chunk&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;heading (rad)&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;format&amp;gt;H=%.6f&amp;lt;/format&amp;gt;&lt;br /&gt;
        &amp;lt;type&amp;gt;float&amp;lt;/type&amp;gt;&lt;br /&gt;
        &amp;lt;node&amp;gt;/orientation/heading-deg&amp;lt;/node&amp;gt;&lt;br /&gt;
        &amp;lt;factor&amp;gt;0.0174532925199433&amp;lt;/factor&amp;gt;  &amp;lt;!-- degrees to radians --&amp;gt;&lt;br /&gt;
      &amp;lt;/chunk&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
      &amp;lt;chunk&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;pitch angle (deg)&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;format&amp;gt;P=%03.2f&amp;lt;/format&amp;gt;&lt;br /&gt;
        &amp;lt;node&amp;gt;/orientation/pitch-deg&amp;lt;/node&amp;gt;&lt;br /&gt;
      &amp;lt;/chunk&amp;gt;&lt;br /&gt;
   &amp;lt;/output&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;/generic&amp;gt;&lt;br /&gt;
 &amp;lt;/PropertyList&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Writing data in XML format===&lt;br /&gt;
Assuming the file is called &amp;lt;code&amp;gt;[[$FG_ROOT]]/Protocol/xmltest.xml&amp;lt;/code&amp;gt;, then it could be used as &lt;br /&gt;
 fgfs --generic=file,out,1,/tmp/data.xml,xmltest&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;PropertyList&amp;gt;&lt;br /&gt;
  &amp;lt;generic&amp;gt;&lt;br /&gt;
    &amp;lt;output&amp;gt;&lt;br /&gt;
      &amp;lt;binary_mode&amp;gt;false&amp;lt;/binary_mode&amp;gt;&lt;br /&gt;
      &amp;lt;var_separator&amp;gt;\n&amp;lt;/var_separator&amp;gt;&lt;br /&gt;
      &amp;lt;line_separator&amp;gt;\n&amp;lt;/line_separator&amp;gt;&lt;br /&gt;
      &amp;lt;preamble&amp;gt;&amp;amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;amp;gt;\n\n&amp;amp;lt;data&amp;amp;gt;\n&amp;lt;/preamble&amp;gt;&lt;br /&gt;
      &amp;lt;postamble&amp;gt;&amp;amp;lt;/data&amp;amp;gt;\n&amp;lt;/postamble&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
      &amp;lt;chunk&amp;gt;&lt;br /&gt;
        &amp;lt;format&amp;gt;\t&amp;amp;lt;set&amp;amp;gt;&amp;lt;/format&amp;gt;&lt;br /&gt;
      &amp;lt;/chunk&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
      &amp;lt;chunk&amp;gt;&lt;br /&gt;
        &amp;lt;node&amp;gt;/position/altitude-ft&amp;lt;/node&amp;gt;&lt;br /&gt;
        &amp;lt;type&amp;gt;float&amp;lt;/type&amp;gt;&lt;br /&gt;
        &amp;lt;format&amp;gt;\t\t&amp;amp;lt;altitude-ft&amp;amp;gt;%.8f&amp;amp;lt;/altitude-ft&amp;amp;gt;&amp;lt;/format&amp;gt;&lt;br /&gt;
      &amp;lt;/chunk&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
For more examples, see [http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg37892.html mailing list thread].&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;chunk&amp;gt;&lt;br /&gt;
        &amp;lt;node&amp;gt;/velocities/airspeed-kt&amp;lt;/node&amp;gt;&lt;br /&gt;
        &amp;lt;type&amp;gt;float&amp;lt;/type&amp;gt;&lt;br /&gt;
        &amp;lt;format&amp;gt;\t\t&amp;amp;lt;airspeed-kt&amp;amp;gt;%.8f&amp;amp;lt;/airspeed-kt&amp;amp;gt;&amp;lt;/format&amp;gt;&lt;br /&gt;
      &amp;lt;/chunk&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
      &amp;lt;chunk&amp;gt;&lt;br /&gt;
        &amp;lt;format&amp;gt;\t&amp;amp;lt;/set&amp;amp;gt;&amp;lt;/format&amp;gt;&lt;br /&gt;
      &amp;lt;/chunk&amp;gt;&lt;br /&gt;
    &amp;lt;/output&amp;gt;&lt;br /&gt;
 &amp;lt;/generic&amp;gt;&lt;br /&gt;
 &amp;lt;/PropertyList&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Analyzing the resulting binary packet format ==&lt;br /&gt;
A utility called ''generic-protocol-analyse'' can be found under &amp;lt;code&amp;gt;FlightGear/utils/xmlgrep&amp;lt;/code&amp;gt; which can be used to analyze the resulting data packet for the binary protocol. The output would be something like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bintest.xml&lt;br /&gt;
Generic binary output protocol packet description:&lt;br /&gt;
&lt;br /&gt;
 pos | size |  type  | factor     | description&lt;br /&gt;
-----|------|--------|------------|------------------------&lt;br /&gt;
   0 |    4 |    int |            | indicated speed (kt)&lt;br /&gt;
   4 |    4 |  float |            | pitch att (deg)&lt;br /&gt;
   8 |    4 |  float |            | magnetic heading (deg)&lt;br /&gt;
  12 |    4 |    int |            | outside air temperarure (degF)&lt;br /&gt;
  16 |    1 |   bool |            | autocoord&lt;br /&gt;
&lt;br /&gt;
total package size: 17 bytes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Protocol ==&lt;br /&gt;
FlightGear has an inbuilt &amp;quot;generic&amp;quot; protocol to push and pull data. (todo)&lt;br /&gt;
&lt;br /&gt;
To interface with FlightGear on a socket for example, the following steps need to be taken:&lt;br /&gt;
# Establish which &amp;quot;properties&amp;quot; you want to appear &amp;quot;on the wire&amp;quot;.&lt;br /&gt;
# Create a &amp;lt;code&amp;gt;my_protocol.xml&amp;lt;/code&amp;gt; file containing those properties.&lt;br /&gt;
# Start FlightGear with the generic protocol option using &amp;lt;code&amp;gt;my_protocol&amp;lt;/code&amp;gt; sent through the network socket.&lt;br /&gt;
&lt;br /&gt;
For this simple example say were interested in heading and altitude, and we want to &amp;quot;listen&amp;quot; ie output to a socket at port 6789, UDP and receiving 10 times a second in the format:&lt;br /&gt;
 alt\thead\n &lt;br /&gt;
 // ie altitude - tab - heading - newline&lt;br /&gt;
&lt;br /&gt;
The first step is establishing the nodes, in this example &lt;br /&gt;
 /position/altitude-agl-ft  eg (22.4713923)&lt;br /&gt;
 /orientation/heading-deg  eg (297.966325)&lt;br /&gt;
&lt;br /&gt;
Next create a file '''my_protocol.xml'''. This needs to be located at&lt;br /&gt;
 [[$FG_ROOT]]/Protocol/my_protocol.xml&lt;br /&gt;
&lt;br /&gt;
Edit the &amp;lt;code&amp;gt;my_protocol.xml&amp;lt;/code&amp;gt; file and write in it:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;PropertyList&amp;gt;&lt;br /&gt;
 &amp;lt;generic&amp;gt;&lt;br /&gt;
    &amp;lt;output&amp;gt;&lt;br /&gt;
        &amp;lt;line_separator&amp;gt;newline&amp;lt;/line_separator&amp;gt;&lt;br /&gt;
        &amp;lt;var_separator&amp;gt;tab&amp;lt;/var_separator&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
        &amp;lt;chunk&amp;gt;&lt;br /&gt;
           &amp;lt;node&amp;gt;/position/altitude-agl-ft&amp;lt;/node&amp;gt;&lt;br /&gt;
           &amp;lt;name&amp;gt;altitude to go&amp;lt;/name&amp;gt;&lt;br /&gt;
           &amp;lt;type&amp;gt;float&amp;lt;/type&amp;gt;&lt;br /&gt;
           &amp;lt;format&amp;gt;%03.2f&amp;lt;/format&amp;gt;&lt;br /&gt;
         &amp;lt;/chunk&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
        &amp;lt;chunk&amp;gt;&lt;br /&gt;
           &amp;lt;node&amp;gt;/orientation/heading-deg&amp;lt;/node&amp;gt;&lt;br /&gt;
           &amp;lt;name&amp;gt;Heading&amp;lt;/name&amp;gt;&lt;br /&gt;
           &amp;lt;type&amp;gt;float&amp;lt;/type&amp;gt;&lt;br /&gt;
           &amp;lt;format&amp;gt;%03.3f&amp;lt;/format&amp;gt;&lt;br /&gt;
         &amp;lt;/chunk&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
    &amp;lt;/output&amp;gt;&lt;br /&gt;
  &amp;lt;/generic&amp;gt;&lt;br /&gt;
 &amp;lt;/PropertyList&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The '''output''' tag indicates the protocol for output. The same &amp;quot;protocol&amp;quot; file can contain an &amp;quot;input&amp;quot; section, absent in this example (more later).&lt;br /&gt;
* '''line_seperator''' - the end of line (todo - is this &amp;lt;code&amp;gt;\r\n&amp;lt;/code&amp;gt;?)&lt;br /&gt;
* '''var_seperator''' - the delimiter for the properties, this could be &amp;quot;|&amp;quot;, &amp;quot;###&amp;quot;, any string.&lt;br /&gt;
* The two '''chunk''' blocks contain our data. Note that these appear in the order presented within the XML file.&lt;br /&gt;
** '''node''' - the node of data we want&lt;br /&gt;
** '''name''' - it there for a reference, its not transmitted and note necessary (like a note)&lt;br /&gt;
** '''type''' - the way this xml is to interpret the value. This is quite important tag. For example if its not there or a string, then &amp;quot;floats&amp;quot; go wild and end up being a string of 32 characters with two decimal places!&lt;br /&gt;
** '''format''' - same syntax as &amp;lt;code&amp;gt;printf&amp;lt;/code&amp;gt; function in C/C++&lt;br /&gt;
** There's more that can be done {todo - link to a full blown example/reference}&lt;br /&gt;
&lt;br /&gt;
We can now start FlightGear and listen with:&lt;br /&gt;
 fgfs --generic=socket,out,10,localhost,6789,udp,my_protocol&lt;br /&gt;
&lt;br /&gt;
[todo] - link here to the tutorial&lt;br /&gt;
&lt;br /&gt;
== Alternative start using Nasal ==&lt;br /&gt;
It is also possible to start and stop from within the Nasal console. Start the Nasal console from the Debug menu and type the following (modify accordingly) and click Execute:&lt;br /&gt;
 fgcommand(&amp;quot;add-io-channel&amp;quot;, {&amp;quot;config&amp;quot;: &amp;quot;generic,socket,out,10,localhost,6789,udp,my_protocol&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;test&amp;quot;});&lt;br /&gt;
Name is optional but can be used to stop the connection using:&lt;br /&gt;
 fgcommand(&amp;quot;remove-io-channel&amp;quot;, {&amp;quot;name&amp;quot;: &amp;quot;test&amp;quot;});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Related content ==&lt;br /&gt;
=== Wiki articles ===&lt;br /&gt;
* [[Logging properties]] – ''A simpler way to log properties to a file.''&lt;br /&gt;
* [[Howto:Record, analyze and replay multiplayer flights with network tools]] - ''Logging the network traffic between your computer and a multiplayer server.''&lt;br /&gt;
* [[Using FlightGear with an EFB]]&lt;br /&gt;
&lt;br /&gt;
=== Readme files ===&lt;br /&gt;
* {{readme file|protocol}}&lt;br /&gt;
* {{readme file|IO}}&lt;br /&gt;
&lt;br /&gt;
=== Source code ===&lt;br /&gt;
* {{fgdata source|Protocol/}} – ''Predefined protocols''&lt;br /&gt;
* {{flightgear source|src/Network/generic.hxx}}&lt;br /&gt;
* {{flightgear source|src/Network/generic.cxx}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Interfacing protocols]]&lt;br /&gt;
[[Category:FlightGear]]&lt;br /&gt;
[[Category:XML]]&lt;br /&gt;
[[Category:Property Tree]]&lt;br /&gt;
&lt;br /&gt;
[[pl:Protokół ogólny]]&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Using_FlightGear_with_an_EFB&amp;diff=138224</id>
		<title>Howto:Using FlightGear with an EFB</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Using_FlightGear_with_an_EFB&amp;diff=138224"/>
		<updated>2023-08-24T01:46:15Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: Add screenshots and fill in info for FltPlan Go.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An '''Electronic Flight Bag''' (EFB) is an application that includes maps, weight-and-balance, and other tools that used to exist physically in a pilot's flight bag. The best-known EFB applications available on consumer mobile devices include [https://foreflight.com/ ForeFlight] ($$, iOS only, global), [https://www.garmin.com/en-CA/aviation/garminpilot/overview/ Garmin Pilot] ($$, Android and iOS, global), [https://flttrack.fltplan.com/FltPlanInfo/FltPlan_Go-Android-iPad_Info.html FltPlan Go] (cost-free, Android and iOS, Canada/U.S./Caribbean), and [https://www.apps4av.com/ Avare] (cost-free, Android only, U.S. only). Note that U.S. coverage typically overlaps slightly into southern Canada and northern Mexico.&lt;br /&gt;
&lt;br /&gt;
FlightGear can feed data to most EFB applications to replace real GPS data in plane, so you can use your tablet for a moving map and flight planner beside your computer, just like you would in a real cockpit.&lt;br /&gt;
&lt;br /&gt;
The instructions in this article are tested with FltPlan Go (because it's cost-free), but have been used in the past with Garmin Pilot as well, and should also work at least with ForeFlight.&lt;br /&gt;
&lt;br /&gt;
== Configuring FlightGear ==&lt;br /&gt;
&lt;br /&gt;
The necessary protocol files already exist in FlightGear, so all you need to do is add the following two lines to your $HOME/.fgfsrc file or to the &amp;quot;Additional Settings&amp;quot; subsection of &amp;quot;Settings&amp;quot; in the visual launcher:&lt;br /&gt;
&lt;br /&gt;
 --generic=socket,out,10,255.255.255.255,49002,udp,foreflight-xatt&lt;br /&gt;
 --generic=socket,out,1,255.255.255.255,49002,udp,foreflight-xgps&lt;br /&gt;
&lt;br /&gt;
== Configuring your EFB ==&lt;br /&gt;
&lt;br /&gt;
[[File:FltPlan Go settings.jpg|thumb|80px|FltPlan Go External settings to connect with FlightGear]]&lt;br /&gt;
[[File:FltPlan Go map page.jpg|thumb|80px|Moving map showing a FlightGear flight over a Canadian VNC (Sectional).]]&lt;br /&gt;
&lt;br /&gt;
Your mobile device ''must'' be connected to the same network as the computer running FlightGear. The following instructions apply to FltPlan Go, but the process for other EFBs will be similar (follow the instructions for connecting to X-Plane).&lt;br /&gt;
&lt;br /&gt;
Go to the &amp;quot;External&amp;quot; side tab for FltPlan Go, and select &amp;quot;X-Plane&amp;quot; under &amp;quot;Simulators&amp;quot;. Then start FlightGear (in the same network), and wait for the altitude, latitude, longitude, course, and speed information to appear in the fields to the right: these will confirm that you have made a connection.&lt;br /&gt;
&lt;br /&gt;
You can now navigate to other tabs, such as the moving map or airport diagrams and instrument procedures, and see your aircraft position live.&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=File:FltPlan_Go_settings.jpg&amp;diff=138223</id>
		<title>File:FltPlan Go settings.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=File:FltPlan_Go_settings.jpg&amp;diff=138223"/>
		<updated>2023-08-24T01:38:32Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: Uploaded own work with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=FltPlan Go External settings to connect with FlightGear}}&lt;br /&gt;
|date=2023-08-23 19:09:45&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:David.megginson|David.megginson]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{self|cc-by-sa-4.0}}&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=File:FltPlan_Go_map_page.jpg&amp;diff=138222</id>
		<title>File:FltPlan Go map page.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=File:FltPlan_Go_map_page.jpg&amp;diff=138222"/>
		<updated>2023-08-24T01:38:32Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: Uploaded own work with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=Moving map showing a FlightGear flight over a Canadian VNC (Sectional).}}&lt;br /&gt;
|date=2023-08-23 19:09:31&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:David.megginson|David.megginson]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{self|cc-by-sa-4.0}}&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Using_FlightGear_with_an_EFB&amp;diff=138221</id>
		<title>Howto:Using FlightGear with an EFB</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Using_FlightGear_with_an_EFB&amp;diff=138221"/>
		<updated>2023-08-23T23:31:20Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: Initial draft&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An '''Electronic Flight Bag''' (EFB) is an application that includes maps, weight-and-balance, and other tools that used to exist physically in a pilot's flight bag. The best-known EFB applications available on consumer mobile devices include [https://foreflight.com/ ForeFlight] ($$, iOS only, global), [https://www.garmin.com/en-CA/aviation/garminpilot/overview/ Garmin Pilot] ($$, Android and iOS, global), [https://flttrack.fltplan.com/FltPlanInfo/FltPlan_Go-Android-iPad_Info.html FltPlan Go] (cost-free, Android and iOS, Canada/U.S./Caribbean), and [https://www.apps4av.com/ Avare] (cost-free, Android only, U.S. only). Note that U.S. coverage typically overlaps slightly into southern Canada and northern Mexico.&lt;br /&gt;
&lt;br /&gt;
FlightGear can feed data to most EFB applications to replace real GPS data in plane, so you can use your tablet for a moving map and flight planner beside your computer, just like you would in a real cockpit.&lt;br /&gt;
&lt;br /&gt;
The instructions in this article are tested with FltPlan Go (because it's cost-free), but have been used in the past with Garmin Pilot as well, and should also work at least with ForeFlight.&lt;br /&gt;
&lt;br /&gt;
== Configuring FlightGear ==&lt;br /&gt;
&lt;br /&gt;
The necessary protocol files already exist in FlightGear, so all you need to do is add the following two lines to your $HOME/.fgfsrc file or to the &amp;quot;Additional Settings&amp;quot; subsection of &amp;quot;Settings&amp;quot; in the visual launcher:&lt;br /&gt;
&lt;br /&gt;
 --generic=socket,out,10,255.255.255.255,49002,udp,foreflight-xatt&lt;br /&gt;
 --generic=socket,out,1,255.255.255.255,49002,udp,foreflight-xgps&lt;br /&gt;
&lt;br /&gt;
== Configuring your EFB ==&lt;br /&gt;
&lt;br /&gt;
Your mobile device ''must'' be connected to the same network as the computer running FlightGear. The following instructions apply to FltPlan Go, but the process for other EFBs will be similar (follow the instructions for connecting to X-Plane).&lt;br /&gt;
&lt;br /&gt;
(more coming)&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Americas_Scenery&amp;diff=137710</id>
		<title>Americas Scenery</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Americas_Scenery&amp;diff=137710"/>
		<updated>2023-05-23T02:19:14Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: Remove cats&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Custom scenery covering all of the Continental US, most of Canada, and parts of Mexico is available at&lt;br /&gt;
&lt;br /&gt;
https://davidmegginson.github.io/fgfs-scenery-build/&lt;br /&gt;
&lt;br /&gt;
This scenery has detailed coastlines and waterways, together with basic roads, railroads, and powerline rights-of-way, all from OpenStreetMap (to be supplemented by [[osm2city]]). The airports come from a more-recent snapshot of the X-Plane Scenery Gateway, so they are more up-to-date than the ones in the default FlightGear distro. It was begun in 2022, and as of May 2023, is being continually updated.&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
File:Vancouver BC evening.png|Downtown Vancouver BC at dusk, facing north, with Kitsilano in the foreground and Stanley Park on the left.&lt;br /&gt;
File:St Louis arch.png|Flying towards the Gateway Arch in St Louis, MO.&lt;br /&gt;
File:Jasper BC Rocky Mountains.png|SAR DHC-3 Otter flying through the Rocky Mountains near Jasper AB (CYJA).&lt;br /&gt;
File:Miami Beach FL hazy afternoon.png|Piper Cub flying along Miami Beach on a hazy afternoon.&lt;br /&gt;
File:Goderich ON winter.png|Cessna 140 approaching a frozen-over Georgian Bay (Lake Huron) in winter, near Goderich ON (CYGD).&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Scenery in North America]]&lt;br /&gt;
[[Category:Custom scenery]]&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Americas_Scenery&amp;diff=137703</id>
		<title>Americas Scenery</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Americas_Scenery&amp;diff=137703"/>
		<updated>2023-05-23T02:12:24Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: Initial draft&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Custom scenery covering all of the Continental US, most of Canada, and parts of Mexico is available at&lt;br /&gt;
&lt;br /&gt;
https://davidmegginson.github.io/fgfs-scenery-build/&lt;br /&gt;
&lt;br /&gt;
This scenery has detailed coastlines and waterways, together with basic roads, railroads, and powerline rights-of-way, all from OpenStreetMap (to be supplemented by [[osm2city]]). The airports come from a more-recent snapshot of the X-Plane Scenery Gateway, so they are more up-to-date than the ones in the default FlightGear distro. It was begun in 2022, and as of May 2023, is being continually updated.&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
File:Vancouver BC evening.png|Downtown Vancouver BC at dusk, facing north, with Kitsilano in the foreground and Stanley Park on the left.&lt;br /&gt;
File:St Louis arch.png|Flying towards the Gateway Arch in St Louis, MO.&lt;br /&gt;
File:Jasper BC Rocky Mountains.png|SAR DHC-3 Otter flying through the Rocky Mountains near Jasper AB (CYJA).&lt;br /&gt;
File:Miami Beach FL hazy afternoon.png|Piper Cub flying along Miami Beach on a hazy afternoon.&lt;br /&gt;
File:Goderich ON winter.png|Cessna 140 approaching a frozen-over Georgian Bay (Lake Huron) in winter, near Goderich ON (CYGD).&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Scenery in Canada]]&lt;br /&gt;
[[Category:Scenery in Mexico]]&lt;br /&gt;
[[Category:Scenery in the United States]]&lt;br /&gt;
[[Category:Scenery in North America]]&lt;br /&gt;
[[Category:Custom scenery]]&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=File:Jasper_BC_Rocky_Mountains.png&amp;diff=137702</id>
		<title>File:Jasper BC Rocky Mountains.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=File:Jasper_BC_Rocky_Mountains.png&amp;diff=137702"/>
		<updated>2023-05-23T02:07:04Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: Uploaded own work with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=SAR DHC-3 Otter flying through the Rocky Mountains near Jasper AB (CYJA).}}&lt;br /&gt;
|date=2023-05-22&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:David.megginson|David.megginson]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{self|cc-zero}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Scenery in North America]]&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=File:Canadian_Shield_lakes.png&amp;diff=137701</id>
		<title>File:Canadian Shield lakes.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=File:Canadian_Shield_lakes.png&amp;diff=137701"/>
		<updated>2023-05-23T02:07:04Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: Uploaded own work with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=The Canadian Shield is full of small lakes.}}&lt;br /&gt;
|date=2023-05-22&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:David.megginson|David.megginson]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{self|cc-zero}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Scenery in North America]]&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=File:St_Louis_arch.png&amp;diff=137700</id>
		<title>File:St Louis arch.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=File:St_Louis_arch.png&amp;diff=137700"/>
		<updated>2023-05-23T02:07:04Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: Uploaded own work with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=Flying towards the Gateway Arch in St Louis, MO.}}&lt;br /&gt;
|date=2023-05-22&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:David.megginson|David.megginson]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{self|cc-zero}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Scenery in North America]]&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=File:Vancouver_BC_evening.png&amp;diff=137699</id>
		<title>File:Vancouver BC evening.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=File:Vancouver_BC_evening.png&amp;diff=137699"/>
		<updated>2023-05-23T02:07:03Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: Uploaded own work with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=Downtown Vancouver BC at dusk, facing north, with Kitsilano in the foreground and Stanley Park on the left.}}&lt;br /&gt;
|date=2023-05-22&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:David.megginson|David.megginson]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{self|cc-zero}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Scenery in North America]]&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=File:Goderich_ON_winter.png&amp;diff=137698</id>
		<title>File:Goderich ON winter.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=File:Goderich_ON_winter.png&amp;diff=137698"/>
		<updated>2023-05-23T02:07:03Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: Uploaded own work with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=Cessna 140 approaching a frozen-over Georgian Bay (Lake Huron) in winter, near Goderich ON (CYGD).}}&lt;br /&gt;
|date=2023-05-22&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:David.megginson|David.megginson]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{self|cc-zero}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Scenery in North America]]&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=File:Miami_Beach_FL_hazy_afternoon.png&amp;diff=137697</id>
		<title>File:Miami Beach FL hazy afternoon.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=File:Miami_Beach_FL_hazy_afternoon.png&amp;diff=137697"/>
		<updated>2023-05-23T02:07:03Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: Uploaded own work with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=Piper Cub flying along Miami Beach on a hazy afternoon.}}&lt;br /&gt;
|date=2023-05-22&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:David.megginson|David.megginson]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{self|cc-zero}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Scenery in North America]]&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Use_TerraGear_without_wanting_to_kill_yourself&amp;diff=137035</id>
		<title>Howto:Use TerraGear without wanting to kill yourself</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Use_TerraGear_without_wanting_to_kill_yourself&amp;diff=137035"/>
		<updated>2023-01-08T15:11:31Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: /* Map and decode your shapefiles */ mention splitting job&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;My aim was to go through this whole process successfully with as little manual labour (don’t have the knowledge to go fine tuning in QGIS? no problem! neither did I) as possible. &amp;quot;Automation ftw&amp;quot; has been my perspective entering this endeavour.&lt;br /&gt;
&lt;br /&gt;
Special thanks to some brilliant lads who walked these roads long before I did, for helping me discover the way! Shoutout [[User:Fahim Dalvi|Fahim]], [[User:D-ECHO|D-ECHO]], and [[User:Legoboyvdlp|legoboyvdlp]], among several others (you know who you are) – in fact, big up the whole FG community.&lt;br /&gt;
&lt;br /&gt;
Hopefully, some of you will find this guide helpful – though at the time of writing, it appears that TerraGear is on the verge of becoming obsolete any minute now. So, if nothing else, it can serve as a time capsule of sorts – a way of recollecting how this task used to be done. Cheers! –– [[User:IskenderWang|IskenderWang]] ([[User talk:IskenderWang|talk]])&lt;br /&gt;
&lt;br /&gt;
== Directory structure ==&lt;br /&gt;
&lt;br /&gt;
Inside your working directory for TerraGear you will simply need three subdirectories – one for your starting '''data''' which you will process as necessary, one for the '''work''' that the TG tools will achieve which provides it with the actual recipe for constructing your scenery, and one for the '''output''' or end product after running tg-construct (the final step) to generate your terrain. My directory structure in the midst of generating several sceneries was looking as pictured.&lt;br /&gt;
&lt;br /&gt;
[[File:TG directory structure.png|thumb|right|A directory format one could expect to utilize while working with TG]]&lt;br /&gt;
&lt;br /&gt;
As you can see, what I like to do is compartmentalise the various sceneries I’ve created/aim to create in their own subdirectories in ''/data'' so to prevent any confusion and easily keep them separate them as I use the TG tools. Since you’re generating terrain one at a time though, I’d strongly recommend clearing out your ''/work'' directory completely in between each.&lt;br /&gt;
&lt;br /&gt;
== Gather all the necessary starting data ==&lt;br /&gt;
&lt;br /&gt;
The materials you will need to embark on your TG journey are:&lt;br /&gt;
# '''Elevation data''': Numerous sources for that but the best option will probably still be [http://viewfinderpanoramas.org/dem3.html viewfinderpanorama].&lt;br /&gt;
# '''All the airports in the area you aim to build''': Best to use some tool like [[TerraMaster]] for this, but keep in mind that Docker TG (even running terragear:latest) seems to only support up to XP apt.dat version 1100 – it unfortunately won’t work with 1130 which is the version most of the latest and greatest airports on [https://gateway.x-plane.com the gateway] will come with, whereas if you compiled the latest TG you should be all good in this respect.&lt;br /&gt;
# '''[https://osmdata.openstreetmap.de/download/land-polygons-complete-4326.zip World landmass polygon]''': This is great since it serves as your base layer and also has very accurate coastlines.&lt;br /&gt;
# '''Shapefiles''': This is where things get interesting, there are numerous sources one can defer to. In the past, people mainly relied on vmap0 and there was a nice mapserver that made it easy to acquire. Nowadays, the mapserver’s gone by the looks of it. Today, while you can still choose [https://gis-lab.info/qa/vmap0-eng.html vmap0], far better options exist for most areas nowadays thanks to the availability of [https://download.geofabrik.de OSM shapefiles] (solid option almost anywhere these days) as well as [[Coordination of Information on the Environment|CORINE]] (Europe), [[Howto:Using QGIS to process NLCD data|NLCD]] (U.S.), and [[User:D-ECHO/Canada Land Cover|LCC]] (Canada), though these others can be a bit less straightforward to obtain and work with – thankfully, if you’d like to try them out there’s documentation for all of those supplied by some top blokes in the FG community.&lt;br /&gt;
&lt;br /&gt;
== Process your elevation data ==&lt;br /&gt;
&lt;br /&gt;
When you unpack your elevation data, make sure to somehow place ALL the hgt files you intend to use in the relevant folder for the scenery in question, with no subdirectories dividing them – using &amp;lt;code&amp;gt;mv&amp;lt;/code&amp;gt; and the wildcard to move all the contents of the needed folders from VFP to where they belonged worked just fine for me; quick and efficient.&lt;br /&gt;
&lt;br /&gt;
For only this step, you could use this command: &amp;lt;code&amp;gt;docker run -i -v ~/terragear-work:/terragear-work/ -t flightgear/terragear:ws20 /bin/bash&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Since this is guaranteed to not have buggy elevation tools, so it’s really your call – you could do it just in case, especially if you’re working exclusively with Docker.&lt;br /&gt;
&lt;br /&gt;
 for f in ${PWD}/data/SRTM-3/scenery-in-question/*.hgt; do hgtchop 3 &amp;quot;${f}&amp;quot; &amp;quot;${PWD}/work/SRTM-3&amp;quot;; done&lt;br /&gt;
 terrafit work/SRTM-3&lt;br /&gt;
&lt;br /&gt;
Now for everything else: &amp;lt;code&amp;gt;docker run -i -v ~/terragear-work:/terragear-work/ -t flightgear/terragear:latest /bin/bash&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Process your airports ==&lt;br /&gt;
&lt;br /&gt;
Once you’ve collected all your airports from the gateway and you’re confident that they’ll work with genapts (perhaps through trial and error) you can just place all the zips in a burner directory and create an airports directory inside of that – then if you have zsh you can simply run my script here in the command line:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/zsh&lt;br /&gt;
 for file in *.zip&lt;br /&gt;
   do&lt;br /&gt;
     FILENAME=$( echo $file | sed s/.zip// )&lt;br /&gt;
     ICAO=$( echo $file | sed s/_Scenery_Pack.zip// )&lt;br /&gt;
     unzip $file&lt;br /&gt;
     cd $FILENAME/&amp;quot;Earth nav data&amp;quot;&lt;br /&gt;
     mv apt.dat ../../airports/$ICAO.dat&lt;br /&gt;
     cd ../..&lt;br /&gt;
     trash $FILENAME&lt;br /&gt;
   done&lt;br /&gt;
 trash ./*zip&lt;br /&gt;
&lt;br /&gt;
and there you have it – all your .dat’s are there and sorted correctly by ICAO, which you can then transfer to your TG ''/data/airports'' folder.&lt;br /&gt;
&lt;br /&gt;
Another way which is even better in a perfect world is to cut out the middleman by using the [https://github.com/mherweg/d-laser-fgtools dlaser tools], however this will always fetch the latest ones, which may not work for you if you’re using Docker TG.&lt;br /&gt;
&lt;br /&gt;
Either way, this step may or may not be cumbersome depending on the amount of ''.dat'' files you’ll need, which can often include not just airports and airfields but also other things such as helipads – for instance, my Hong Kong scenery needed only 5 in total, while 12 tiles of scenery for Florida required 177 (!!) rasclart .dat files, which meant that using the ''gateway_pull.py'' script was a must (you'll need to run it through Python 2 though).&lt;br /&gt;
&lt;br /&gt;
Then, once you’re ready, simply run this command:&lt;br /&gt;
&lt;br /&gt;
 for i in ./data/airports/scenery-in-question/*.dat; do genapts850 --threads --input=$i --work=./work --dem-path=SRTM-3; done&lt;br /&gt;
&lt;br /&gt;
== Determine your bounding box coordinates ==&lt;br /&gt;
&lt;br /&gt;
You may have already done this step in the very beginning, but if not, now would be a good time.&lt;br /&gt;
'''Think of the corners as bottom left, upper right, longitude BEFORE latitude.'''&lt;br /&gt;
&lt;br /&gt;
In my case, for the Hong Kong scenery, the relevant coordinates were &amp;lt;code&amp;gt;113 21&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;115 23&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Crop your shapefiles ==&lt;br /&gt;
&lt;br /&gt;
Before we dive more deeply into shapefiles, an important thing to mention is that while the .shp files will be the “stars of the show” in a sense, many of the other files it will come with are also NECESSARY! This means you should not try to delete files that may have seemed redundant to the uninitiated (i.e. me, at that point), and that if you’re going to move shapefiles between directories you’ll have to copy/move ALL of the ones that you will need which come in a set (by having the same filename, just different extensions). After all, most of those other files are there for a good reason, and not just to provide alternative options for GIS users as I had initially assumed. This had me stumped for a little while, wondering why this next tool wasn’t working and almost concerned that I wouldn’t be able to advance beyond this step, UNTIL I came across [https://gis.stackexchange.com/questions/262505/python-cant-read-shapefile/262509 this post on Stack Exchange] and it all made sense, so big up Michael Stimson as well for the helpful answer.&lt;br /&gt;
&lt;br /&gt;
Something to note so that you don’t have to make that same mistake :) First, make sure you're inside ''/data/shapefiles'' (run a quick &amp;lt;code&amp;gt;cd&amp;lt;/code&amp;gt; if not). Then, we simply run:&lt;br /&gt;
&lt;br /&gt;
 ogr2ogr -clipsrc 113 21 115 23 hk.shp land_polygons.shp&lt;br /&gt;
&lt;br /&gt;
and so on for ALL the others as well – you can even use colons to run them all in one go, as I did. Be patient, though, because if your initial region &amp;amp; shapefiles are large then it can take longer than you may have expected at first.&lt;br /&gt;
&lt;br /&gt;
== Split your shapefiles ==&lt;br /&gt;
&lt;br /&gt;
At this point, you can put your cropped project shapefiles in their own directory and then delete or keep the full shapefiles depending on if you intend to use them again or not – that said, you should probably keep the land polygons (default) shapefile for future use since it can act as the base for the whole world, but for your cropped landmass shapefile for THIS scenery you can make a separate directory. I called mine simply “landmass” and now it may look something like what you see in the screenshot.&lt;br /&gt;
&lt;br /&gt;
[[File:Shapefiles folder.png|thumb|center|The directory for shapefiles and how it could look at the extraction/splitting step]]&lt;br /&gt;
&lt;br /&gt;
Here is Fahim's wonderful script, which allows us to perform this step:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # Check arguments&lt;br /&gt;
 if [ $# -lt 2 ]; then&lt;br /&gt;
     echo &amp;quot;Usage: bash extract_features_shapefile.sh &amp;lt;path-to-shapefile&amp;gt; &amp;lt;path-to-output-dir&amp;gt;&amp;quot;&lt;br /&gt;
     exit&lt;br /&gt;
 fi&lt;br /&gt;
 src_shp=$1&lt;br /&gt;
 dest_dir=$2&lt;br /&gt;
 # Extract available feature list in supplied shapefile&lt;br /&gt;
 echo &amp;quot;Extracting available features...&amp;quot;&lt;br /&gt;
 feature_list=$(ogrinfo -al $src_shp | grep 'fclass (String)' | tr -s ' ' | cut -d' ' -f5 | sort | uniq)&lt;br /&gt;
 echo &amp;quot;Found following features:&amp;quot;&lt;br /&gt;
 for feat in ${feature_list}; do&lt;br /&gt;
     echo $feat&lt;br /&gt;
 done&lt;br /&gt;
 # Create shapefile per feature from supplied shapefile&lt;br /&gt;
 echo &amp;quot;Creating new shapefiles...&amp;quot;&lt;br /&gt;
 mkdir -p $dest_dir&lt;br /&gt;
 for feat in ${feature_list}; do&lt;br /&gt;
     echo &amp;quot;Processing $feat...&amp;quot;&lt;br /&gt;
     mkdir -p $dest_dir/osm_$feat&lt;br /&gt;
     ogr2ogr -where &amp;quot;FCLASS LIKE '&amp;quot;$feat&amp;quot;'&amp;quot; $dest_dir/osm_$feat/osm_$feat.shp $src_shp&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
Now you can use it on each of your shapefiles in the project directory, like this:&lt;br /&gt;
&lt;br /&gt;
 bash extract_features_shapefile.sh hk/gis_osm_landuse_a_free_1-hk.shp .&lt;br /&gt;
&lt;br /&gt;
and so on.&lt;br /&gt;
&lt;br /&gt;
This step prepares us to translate each of the specific types of land classes we need to the FlightGear format, as defined by Material definitions, while also deciding which ones to prune – bear in mind that many of these we can (and should) exclude because leaving them in the final recipe would add too much complexity.&lt;br /&gt;
&lt;br /&gt;
== Map and decode your shapefiles ==&lt;br /&gt;
&lt;br /&gt;
(Tip from [[User:david.megginson]]: from this point forward in the scenery-generation process, I often find problems when I try to generate an entire 10x10 degree bucket at once, so I run a script to do it 1 1x1 degree sub-bucket at a time).&lt;br /&gt;
&lt;br /&gt;
Once you reach this stage, you may now have a shit-ton of directories – that was certainly the case for me, as the screenshot illustrates.&lt;br /&gt;
&lt;br /&gt;
[[File:Shapefiles split.png|thumb|center|Oh my, that seems like a lot]]&lt;br /&gt;
&lt;br /&gt;
Not to fear – the light at the end of this tunnel is in sight already. Now we have to do something called [[OSM to materials mapping|mapping]], which is basically the translation I mentioned earlier, and then run ALL these inputs through the TG tool called ogr-decode.&lt;br /&gt;
&lt;br /&gt;
This step can be time-consuming: deciding what to exclude [from the decoding step], and how to map the landclasses you do include.&lt;br /&gt;
You don’t need expertise in QGIS by any means – however, it can certainly come in handy with helping you view all your split shapefiles by importing them in and then tinkering with the layer visibilities to decide on what you don’t need/would add too much complexity versus what is necessary, because remember, performance in FG is of the essence as well (always keep that in mind during this step).&lt;br /&gt;
&lt;br /&gt;
[[File:QGIS example for TG 1.png|thumb|right|Obviously we'd never need all this, that's why we had further split up these shapefiles]]&lt;br /&gt;
&lt;br /&gt;
'''BRO TIP''': I didn’t realise this myself at first as a n00b to the toolkit, but I was advised by legoboyvdlp that osm_unclassified actually includes numerous roads and isn’t as irrelevant as the name would suggest, in fact it’s better to include this and PRUNE osm_residential for improved performance.&lt;br /&gt;
&lt;br /&gt;
[[File:QGIS example for TG 2.png|thumb|left|Here you can see a big difference, not to mention I also ended up pruning the selected osm_residential landclass]]&lt;br /&gt;
&lt;br /&gt;
When you map, try to use more standard landclass names as much as possible since those cover mostly everything – unless you have something specific in mind (such as for a custom scenery with its own set of material definitions), try to avoid using any landclasses that aren’t even mentioned in the [https://sourceforge.net/p/flightgear/terragear/ci/next/tree/src/BuildTiles/Main/default_priorities.txt default priorities file].&lt;br /&gt;
That said, if you insist on using other landclasses for whatever reason, you can always create your custom priorities file and add your own landclasses to it, and then just tell tg-construct to use that instead.&lt;br /&gt;
We’ll likely be doing this in bulk, so it makes a ton of sense to create a script for this (shoutout to D-ECHO who I would say has championed this approach) and place it in the TOP level of the TG working directory (so it’s level with ''/data'', ''/work'', ''/output'').&lt;br /&gt;
&lt;br /&gt;
Then, all the arguments will essentially follow this sort of format exactly:&lt;br /&gt;
&lt;br /&gt;
 ogr-decode --max-segment 500 --area-type Default work/Default data/shapefiles/landmass/&lt;br /&gt;
 ogr-decode --max-segment 500 --line-width 12 --area-type Asphalt work/Asphalt data/shapefiles/osm_motorway/&lt;br /&gt;
&lt;br /&gt;
and so on for ALL the other landclasses, hoping you’ve mapped it all correctly.&lt;br /&gt;
So once that’s set, you simply run the script:&lt;br /&gt;
&lt;br /&gt;
 ./decode_osm_data.sh&lt;br /&gt;
&lt;br /&gt;
(note: if you're doing it like this make sure it’s executable first, a quick &amp;lt;code&amp;gt;chmod +x&amp;lt;/code&amp;gt; may come in handy – I like to do this here instead of invoking bash because when I was on Ubuntu in a zsh shell it may have been more efficient for it to simply work through the same shell, entirely up to your preference though)&lt;br /&gt;
&lt;br /&gt;
== Generate your terrain ==&lt;br /&gt;
&lt;br /&gt;
At long last! This step requires us to use the final utility in the TG workflow, &amp;lt;code&amp;gt;tg-construct&amp;lt;/code&amp;gt;, and I like to use a modified version of D-ECHO’s script for this as well:&lt;br /&gt;
&lt;br /&gt;
 ./tg-construct.sh&lt;br /&gt;
&lt;br /&gt;
In my case, the one command I was truly running was as follows:&lt;br /&gt;
&lt;br /&gt;
 tg-construct --work-dir=./work --output-dir=./output/Terrain --min-lon=113 --max-lon=115 --min-lat=21 --max-lat=23 --threads=3 --priorities=/usr/local/share/TerraGear/default_priorities.txt AirportArea SRTM-3 AirportObj Default Ocean Hole Road-Motorway Road-Trunk Road-Residential Road-Primary Road-Secondary Road-Tertiary Road-Service Road-Pedestrian Road-Steps Road-Unclassified Airport Pond Lake DryLake Reservoir IntermittentLake IntermittentStream Watercourse Canal Cliffs Glacier PackIce PolarIce Ocean Estuary Urban SubUrban Town Fishing Construction Industrial Port Dump FloodLand Lagoon Bog Marsh SaltMarsh Sand Saline Littoral Dirt Rock Lava OpenMining BuiltUpCover Transport Cemetery DryCrop IrrCrop Rice MixedCrop Vineyard Bamboo Mangrove ComplexCrop NaturalCrop CropGrass CropWood AgroForest Olives GolfCourse Greenspace GrassCover Grassland ScrubCover Scrub ShrubGrassCover SavannaCover Orchard DeciduousForest DeciduousBroadCover EvergreenForest EvergreenBroadCover MixedForest RainForest BarrenCover HerbTundra Sclerophyllous Heath Burnt SnowCover Island Default Void Null Unknown River Freeway Road Asphalt Railroad Stream&lt;br /&gt;
&lt;br /&gt;
When I changed computers, the only thing I had to alter here was the thread count and the path to the default priorities file.&lt;br /&gt;
&lt;br /&gt;
Now just sit back n relax and enjoy everything, you feel me, because you know what’s about to happen.&lt;br /&gt;
&lt;br /&gt;
[[File:TG success.png|thumb|Success]]&lt;br /&gt;
&lt;br /&gt;
And have patience, because this could take a while! '''Seriously!!'''&lt;br /&gt;
For legoboyvdlp, Ireland took a whole week (nonstop!!) to generate! And even for a relatively small scale such as Hong Kong and some of the surrounding area, because the Pearl River Delta is rather dense and data-rich, it took me 24 hours on my 2017 Macbook Pro just for it to reach stage 2 (the second stage out of three, the last of which generates the BTG files), at which point it inexplicably killed the process! So I was left with no choice but to bring out the heavy artillery, and on my beefier rig (8 core CPU, running at 14 threads) at last I was able to complete the whole process in just about three hours (wow!) with Ubuntu in WSL, compiled from source using the download_and_compile script, followed by adding ''install/terragear/bin'' to my user &amp;lt;code&amp;gt;$PATH&amp;lt;/code&amp;gt; (in .zshrc, for me) – this way, all the terragear tools can be called normally.&lt;br /&gt;
&lt;br /&gt;
So you see, the quickness of this step will depend entirely on a) the processing power at your disposal and b) the size and richness of the scenery you aim to generate. It may fail along the way for reasons you don’t understand – that’s OK, as long as you know you followed the process correctly just try again and most likely, it should work after some time.&lt;br /&gt;
&lt;br /&gt;
[[Category:TerraGear]]&lt;br /&gt;
[[Category:Scenery_enhancement]]&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Piper_J3_Cub&amp;diff=114582</id>
		<title>Piper J3 Cub</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Piper_J3_Cub&amp;diff=114582"/>
		<updated>2018-02-26T00:19:16Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: /* 3D Cockpit */ link to photo of inclinometer&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{:{{PAGENAME}}/info}}&lt;br /&gt;
The '''Piper J-3 Cub''' is a small, simple, light [[aircraft]] that was built between 1937 and 1947 by [[:Category:Piper|Piper Aircraft]]. With tandem (fore and aft) seating, it was intended for flight training but became one of the most popular and best-known light aircraft of all time. The Cub's simplicity, affordability and popularity invokes comparisons to the Ford Model T automobile.&lt;br /&gt;
&lt;br /&gt;
The aircraft's standard yellow paint has come to be known as “Cub Yellow” or &amp;quot;Lock Haven Yellow&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Aircraft help ==&lt;br /&gt;
=== Controls ===&lt;br /&gt;
{| class=&amp;quot;keytable&amp;quot;&lt;br /&gt;
! Key&lt;br /&gt;
! Function&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|d}}&lt;br /&gt;
| Open/Close door&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|s}}&lt;br /&gt;
| Start engine&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|Ctrl|o}}&lt;br /&gt;
| Start/Stop aerotowing&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Manual ===&lt;br /&gt;
This section originally contained material which was suspected of not complying with the GPL and was removed.&lt;br /&gt;
&lt;br /&gt;
The original Cub manual may be found by searching for &amp;quot;how to fly a Piper Cub&amp;quot; on the net. This link should also work - http://www.paragonair.com/N/70497/FLY_A_CUB.pdf&lt;br /&gt;
&lt;br /&gt;
=== Pilot Check List ===&lt;br /&gt;
==== Pre start ====&lt;br /&gt;
# Chocks on&lt;br /&gt;
# Check fuel quantity&lt;br /&gt;
# Check controls movements&lt;br /&gt;
&lt;br /&gt;
==== Start ====&lt;br /&gt;
# Switch fuel on&lt;br /&gt;
# Check magneto off&lt;br /&gt;
# Swing prop&lt;br /&gt;
# Switch magneto to both&lt;br /&gt;
# Swing prop&lt;br /&gt;
# Chocks away&lt;br /&gt;
# Check oil pressure&lt;br /&gt;
# Check door close&lt;br /&gt;
# S-taxi to runway&lt;br /&gt;
&lt;br /&gt;
==== Take off ====&lt;br /&gt;
# Check all clear&lt;br /&gt;
# Throttle to 1400 rpm&lt;br /&gt;
# Check tachometer&lt;br /&gt;
# Ease throttle forward&lt;br /&gt;
# At 100 feet ease tail up&lt;br /&gt;
# Stick to neutral&lt;br /&gt;
# Stick back pressure to 10 feet altitude&lt;br /&gt;
# Stick neutral again&lt;br /&gt;
# Climb&lt;br /&gt;
# Fly&lt;br /&gt;
&lt;br /&gt;
==== Landing ====&lt;br /&gt;
# Prepare to land&lt;br /&gt;
# Ease throttle back&lt;br /&gt;
# Check carb heater&lt;br /&gt;
# Glide to runway&lt;br /&gt;
# Clear engine with throttle&lt;br /&gt;
# At 15 feet back pressure&lt;br /&gt;
# At 2 feet stick all way back&lt;br /&gt;
# No need to brake&lt;br /&gt;
# S-taxi&lt;br /&gt;
# Switch magneto off&lt;br /&gt;
&lt;br /&gt;
=== Flying ===&lt;br /&gt;
&lt;br /&gt;
FG 2.4 Default aircraft --aicraft=Cub&lt;br /&gt;
&lt;br /&gt;
Having been familiar with the Piper cub model in earlier versions of FG, I was pleasantly surprised by the improvement in detail.  Overall the model seemed more accurate and the cockpit was especially pleasing.&lt;br /&gt;
&lt;br /&gt;
The aircraft starts with the engine ticking over, so increasing the throttle, rudder has to be used to keep the aircraft straight, but this brings the left wing low, and attempting to correct this immediately lifts the aircraft off in a second. Climb is good, and visibility is very good, enhanced by the view of the high definition model of the tire sticking out as seem from the cockpit. &lt;br /&gt;
&lt;br /&gt;
An easy aircraft to fly, the instruments, although as clear as any, take some getting used to, but then we are flying VFR. The RPM reads right to left, and there is an ASI, altimeter but no VSI at all. There are no radios or other electrical encumbrances.&lt;br /&gt;
&lt;br /&gt;
Landing was particularly easy, slowing down to 50 kt or so, and landing on the grass outside of KSFO which undoubtedly will not be permitted in real life.&lt;br /&gt;
&lt;br /&gt;
Probably the original LSA, the Cub will  probably never lose its charm, and is well worth checking out. &lt;br /&gt;
&lt;br /&gt;
--[[User:Openflight|Openflight]] ([[User talk:Openflight|talk]]) 00:42, 8 February 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== Aerotowing ===&lt;br /&gt;
The J3Cub is capable of  [[Howto: Do aerotow over the net|aerotowing over multiplayer]] by the glider pilot pressing {{key press|Ctrl|o}} while behind the Cub.&lt;br /&gt;
&lt;br /&gt;
== Development status/Issues/Todo ==&lt;br /&gt;
The aircraft was fully remodelled in April 2010 and made available as the Cub. The original low resolution model is still available as the Piper J3 Cub in FGFS version 1.9.1 and older.&lt;br /&gt;
&lt;br /&gt;
=== Liveries ===&lt;br /&gt;
As of 6/2015, a livery system and three new liveries have been added.&lt;br /&gt;
&lt;br /&gt;
=== 3D Cockpit ===&lt;br /&gt;
* No switches and levers available&lt;br /&gt;
* Altimeter can't be adjusted with the mouse&lt;br /&gt;
* While an inclinometer (slip/skid bubble) is optional in a J3 Cub, it's highly recommended, since we can't feel uncoordinated flight through the seats of our pants in FlightGear (it's right under the mag compass in [https://i.pinimg.com/originals/75/2a/a4/752aa4b07f3b6d43ca10e9fb6b703c61.jpg this photo])&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
* Engine sound in cockpit differs only slightly from outside engine sound&lt;br /&gt;
&lt;br /&gt;
=== Non-bugs ===&lt;br /&gt;
* Pilot door is open and partly in the the wing rods - this is accurate, and how the J3 can be flown&lt;br /&gt;
* Does this airplane have flaps? - no&lt;br /&gt;
* No electrical system, therefore no cockpit, instrument, or aircraft lights - but there is an engine start to make it easy&lt;br /&gt;
* No HUD&lt;br /&gt;
&lt;br /&gt;
{{Piper}}&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Piper_J3_Cub&amp;diff=114581</id>
		<title>Piper J3 Cub</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Piper_J3_Cub&amp;diff=114581"/>
		<updated>2018-02-26T00:15:59Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: /* 3D Cockpit */ mention inclinometer&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{:{{PAGENAME}}/info}}&lt;br /&gt;
The '''Piper J-3 Cub''' is a small, simple, light [[aircraft]] that was built between 1937 and 1947 by [[:Category:Piper|Piper Aircraft]]. With tandem (fore and aft) seating, it was intended for flight training but became one of the most popular and best-known light aircraft of all time. The Cub's simplicity, affordability and popularity invokes comparisons to the Ford Model T automobile.&lt;br /&gt;
&lt;br /&gt;
The aircraft's standard yellow paint has come to be known as “Cub Yellow” or &amp;quot;Lock Haven Yellow&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Aircraft help ==&lt;br /&gt;
=== Controls ===&lt;br /&gt;
{| class=&amp;quot;keytable&amp;quot;&lt;br /&gt;
! Key&lt;br /&gt;
! Function&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|d}}&lt;br /&gt;
| Open/Close door&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|s}}&lt;br /&gt;
| Start engine&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|Ctrl|o}}&lt;br /&gt;
| Start/Stop aerotowing&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Manual ===&lt;br /&gt;
This section originally contained material which was suspected of not complying with the GPL and was removed.&lt;br /&gt;
&lt;br /&gt;
The original Cub manual may be found by searching for &amp;quot;how to fly a Piper Cub&amp;quot; on the net. This link should also work - http://www.paragonair.com/N/70497/FLY_A_CUB.pdf&lt;br /&gt;
&lt;br /&gt;
=== Pilot Check List ===&lt;br /&gt;
==== Pre start ====&lt;br /&gt;
# Chocks on&lt;br /&gt;
# Check fuel quantity&lt;br /&gt;
# Check controls movements&lt;br /&gt;
&lt;br /&gt;
==== Start ====&lt;br /&gt;
# Switch fuel on&lt;br /&gt;
# Check magneto off&lt;br /&gt;
# Swing prop&lt;br /&gt;
# Switch magneto to both&lt;br /&gt;
# Swing prop&lt;br /&gt;
# Chocks away&lt;br /&gt;
# Check oil pressure&lt;br /&gt;
# Check door close&lt;br /&gt;
# S-taxi to runway&lt;br /&gt;
&lt;br /&gt;
==== Take off ====&lt;br /&gt;
# Check all clear&lt;br /&gt;
# Throttle to 1400 rpm&lt;br /&gt;
# Check tachometer&lt;br /&gt;
# Ease throttle forward&lt;br /&gt;
# At 100 feet ease tail up&lt;br /&gt;
# Stick to neutral&lt;br /&gt;
# Stick back pressure to 10 feet altitude&lt;br /&gt;
# Stick neutral again&lt;br /&gt;
# Climb&lt;br /&gt;
# Fly&lt;br /&gt;
&lt;br /&gt;
==== Landing ====&lt;br /&gt;
# Prepare to land&lt;br /&gt;
# Ease throttle back&lt;br /&gt;
# Check carb heater&lt;br /&gt;
# Glide to runway&lt;br /&gt;
# Clear engine with throttle&lt;br /&gt;
# At 15 feet back pressure&lt;br /&gt;
# At 2 feet stick all way back&lt;br /&gt;
# No need to brake&lt;br /&gt;
# S-taxi&lt;br /&gt;
# Switch magneto off&lt;br /&gt;
&lt;br /&gt;
=== Flying ===&lt;br /&gt;
&lt;br /&gt;
FG 2.4 Default aircraft --aicraft=Cub&lt;br /&gt;
&lt;br /&gt;
Having been familiar with the Piper cub model in earlier versions of FG, I was pleasantly surprised by the improvement in detail.  Overall the model seemed more accurate and the cockpit was especially pleasing.&lt;br /&gt;
&lt;br /&gt;
The aircraft starts with the engine ticking over, so increasing the throttle, rudder has to be used to keep the aircraft straight, but this brings the left wing low, and attempting to correct this immediately lifts the aircraft off in a second. Climb is good, and visibility is very good, enhanced by the view of the high definition model of the tire sticking out as seem from the cockpit. &lt;br /&gt;
&lt;br /&gt;
An easy aircraft to fly, the instruments, although as clear as any, take some getting used to, but then we are flying VFR. The RPM reads right to left, and there is an ASI, altimeter but no VSI at all. There are no radios or other electrical encumbrances.&lt;br /&gt;
&lt;br /&gt;
Landing was particularly easy, slowing down to 50 kt or so, and landing on the grass outside of KSFO which undoubtedly will not be permitted in real life.&lt;br /&gt;
&lt;br /&gt;
Probably the original LSA, the Cub will  probably never lose its charm, and is well worth checking out. &lt;br /&gt;
&lt;br /&gt;
--[[User:Openflight|Openflight]] ([[User talk:Openflight|talk]]) 00:42, 8 February 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== Aerotowing ===&lt;br /&gt;
The J3Cub is capable of  [[Howto: Do aerotow over the net|aerotowing over multiplayer]] by the glider pilot pressing {{key press|Ctrl|o}} while behind the Cub.&lt;br /&gt;
&lt;br /&gt;
== Development status/Issues/Todo ==&lt;br /&gt;
The aircraft was fully remodelled in April 2010 and made available as the Cub. The original low resolution model is still available as the Piper J3 Cub in FGFS version 1.9.1 and older.&lt;br /&gt;
&lt;br /&gt;
=== Liveries ===&lt;br /&gt;
As of 6/2015, a livery system and three new liveries have been added.&lt;br /&gt;
&lt;br /&gt;
=== 3D Cockpit ===&lt;br /&gt;
* No switches and levers available&lt;br /&gt;
* Altimeter can't be adjusted with the mouse&lt;br /&gt;
* While an inclinometer (slip/skid bubble) is optional in a J3 Cub, it's highly recommended, since we can't feel uncoordinated flight in FlightGear&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
* Engine sound in cockpit differs only slightly from outside engine sound&lt;br /&gt;
&lt;br /&gt;
=== Non-bugs ===&lt;br /&gt;
* Pilot door is open and partly in the the wing rods - this is accurate, and how the J3 can be flown&lt;br /&gt;
* Does this airplane have flaps? - no&lt;br /&gt;
* No electrical system, therefore no cockpit, instrument, or aircraft lights - but there is an engine start to make it easy&lt;br /&gt;
* No HUD&lt;br /&gt;
&lt;br /&gt;
{{Piper}}&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=List_of_developed_airports&amp;diff=106957</id>
		<title>List of developed airports</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=List_of_developed_airports&amp;diff=106957"/>
		<updated>2017-02-15T01:58:25Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: /* List of airports */ fix description for CYGK&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is an incomplete '''list of developed airports''' in the FlightGear [[TerraSync]] scenery.&lt;br /&gt;
&lt;br /&gt;
Airports can be listed here if these two conditions are fulfilled:&lt;br /&gt;
* At least one building or [[Signs|taxi signs]] have been placed&lt;br /&gt;
* Objects are represented in the [[FlightGear Scenery Database]].&lt;br /&gt;
&lt;br /&gt;
Every improvement listed here should be possible to download using TerraSync.  These improvements will also be included in the next [[World Scenery]] release. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== For airport developers ==&lt;br /&gt;
If you are currently developing an airport, please feel free to add it to [[Airports under construction]]. For a list of currently ongoing scenery related projects, please check out [[Current Scenery Projects]].&lt;br /&gt;
&lt;br /&gt;
== List of airports ==&lt;br /&gt;
The ICAO codes link to the FlightGear mapserver, which - among other things - contains information about the current status of the [[FlightGear Scenery Database]]. On a map, you will see:&lt;br /&gt;
* The current airport layout with runways, taxiways and aprons&lt;br /&gt;
* Red dots: static objects in the scenery database made especially for this airport&lt;br /&gt;
* Dark red dots: shared models in the scenery database placed at this airport&lt;br /&gt;
* Green dots: [[Signs|taxi signs]] placed at the airport&lt;br /&gt;
&lt;br /&gt;
{{inote|You can sort the table by clicking one of the [[File:Sort none.gif]] symbols in the row headers.}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! ICAO !! Name !! Country !! Continent !! class=&amp;quot;unsortable&amp;quot; | Comment&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| CYGK || [[Kingston Norman Rogers]] || Canada || North America || Custom objects for all major buildings, including public terminal. (Buildings may not align with taxiways in default scenery, until it starts using the newest recommended airport data from X-Plane.)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=13.76716&amp;amp;lat=51.13277&amp;amp;z=13 EDDC] || [[Dresden Airport]] || Germany || Europe || Fully modeled with tower, terminal, animated hangars etc.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=8.56293&amp;amp;lat=50.03795&amp;amp;z=13 EDDF] || [[Frankfurt am Main Airport]] || Germany || Europe || Fully modeled with [[Signs]] and [[Interactive Traffic]] and unique scycrapers downtown&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EDDG || [[Münster Osnabrück]] || Germany || Europe || 1 static + 100 shared objects&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EDDH || [[Hamburg Airport]] || Germany || Europe || Fully modeled, plus unique buildings downtown&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=13.40379&amp;amp;lat=52.47502&amp;amp;z=13 EDDI] ||[[Berlin Tempelhof Airport]] || Germany || Europe || Fully modeled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EDDL || [[Düsseldorf International Airport|Düsseldorf Airport]] || Germany || Europe || Fully modeled, many shared objects&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=11.78609&amp;amp;lat=48.35378&amp;amp;z=13 EDDM] || [[Munich Airport]] || Germany || Europe || Fully modelled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=12.23603&amp;amp;lat=51.42262&amp;amp;z=13 EDDP] || [[Leipzig/Halle Airport]] || Germany || Europe || Fully modelled with [[Signs]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EDDS || [[Stuttgart Airport]] || Germany || Europe || Fully modelled based on Shared-Models, incl. [[Signs]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=13.28992&amp;amp;lat=52.55917&amp;amp;z=13 EDDT] || [[Berlin Tegel Airport]] || Germany || Europe || Tower, terminals, [[Signs]] and unique buildings downtown&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EDFB || Reichelsheim Airport || Germany || Europe || Tower done&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EDFM || [[Mannheim City Airport]] || Germany || Europe || Basic models of tower, terminals and hangars&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=10.71706&amp;amp;lat=53.80496&amp;amp;z=13 EDHL] || [[Lübeck Blankensee Airport]] || Germany || Europe || Almost complete, home of the [[Piper PA34-200T Seneca II|Seneca]] used to model the FlightGear version. A modified tile is available at [http://www.t3r.de/fg/scenery/ Torsten's scenery site]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=7.16278&amp;amp;lat=50.76767&amp;amp;z=13 EDKB] || [[Bonn-Hangelar Airport]] || Germany || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EDLW || [[Flughafen Dortmund]] || Germany || Europe || Fully modelled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EDVE || [[Braunschweig Airport]] || Germany || Europe || Fully modelled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EEKE || Kuressaare Airport || Estonia || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EETN || Lennart Meri Tallinn Airport || Estonia || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EETU || Tartu Airport || Estonia || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=25.04487&amp;amp;lat=60.25318&amp;amp;z=13 EFHF] || Helsinki-Malmi Airport || Finland || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=24.95253&amp;amp;lat=60.3206&amp;amp;z=13 EFHK] || Helsinki-Vantaa Airport || Finland || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=22.26281&amp;amp;lat=60.51412&amp;amp;z=13 EFTU] || Turku Airport || Finland || Europe || Tower and terminal modelled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EGFF || Cardiff Airport || United Kingdom || Europe || One building: British Airways Maintenance Facility&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EGGP || Liverpool John Lennon Airport || United Kingdom || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EGGW || London Luton Airport || United Kingdom || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EGKA || Shoreham Airport || United Kingdom || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-0.19224&amp;amp;lat=51.14869&amp;amp;z=13 EGKK] || [[London Gatwick]] || United Kingdom || Europe || Complete and fully modeled to highest level of detail with day and night textures; AI parking and ground network&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-0.46095&amp;amp;lat=51.47139&amp;amp;z=13 EGLL] || London Heathrow Airport || United Kingdom || Europe || Basic development only&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EGPH || Edinburgh Airport || United Kingdom || Europe || Tower, terminal, park deck, and some shared models&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=1.28469&amp;amp;lat=52.67713&amp;amp;z=13 EGSH] || Norwich Airport || United Kingdom || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EH01 || [[VU University Medical Center]] || Netherlands || Europe || Complete hospital building including on-roof heli platform.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=4.75487&amp;amp;lat=52.31296&amp;amp;z=13 EHAM] || [[Amsterdam Airport Schiphol]] || Netherlands || Europe || Fully modeled, bussiest AI airport currently&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EHEH || Eindhoven Airport || Netherlands || Europe || Basic development only&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=5.51885&amp;amp;lat=52.45717&amp;amp;z=13 EHLE] || [[Lelystad Airport]] || Netherlands || Europe || Fully modeled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EHVK || [[Volkel Air Base]] || Netherlands || Europe || Shelters and detailed airport layout.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EIDW || [[Dublin Airport]] || Ireland || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=6.11017&amp;amp;lat=62.56037&amp;amp;z=13 ENAL] || Ålesund Airport || Norway || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=6.10949&amp;amp;lat=61.83027&amp;amp;z=13 ENSD] || Sandane Airport || Norway || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ENVA || Trondheim Værnes Airport || Norway || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ESGP || Göteborg Airport || Sweden || Europe || Basic development only&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-106.60912&amp;amp;lat=35.04021&amp;amp;z=13 KABQ] || Albuquerque Sunport Airport, NM || USA || America || Basic development only&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-84.42809&amp;amp;lat=33.63672&amp;amp;z=13 KATL] || [[Hartsfield - Jackson Atlanta International Airport]], GA || USA || America || Terminal modeled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-81.4629595&amp;amp;lat=41.0421187&amp;amp;z=13 KAKR] || [[Akron-Fulton International Airport]], OH || USA || America || Fully modelled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-81.43676804&amp;amp;lat=40.91510112&amp;amp;z=13 KCAK] || Akron-Canton Regional Airport, OH || USA || America ||  Fully modelled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KAUS || Austin-Bergstrom Airport, TX || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KBOS || Boston Logan || USA || America || Tower, Terminals done&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KFNT || Bishop Intl, MI || USA || America || Fully modelled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-76.66833&amp;amp;lat=39.17535&amp;amp;z=13 KBWI] || Baltimore-Washington International, MD || USA || America || Terminal modeled with jetways, parking garage, support buildings and [[Signs]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lat=37.9858289&amp;amp;lon=-122.05529346000002&amp;amp;z=15 KCCR] || Buchanan Field Airport, Concord, CA || USA || America || Fully modeled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-76.92254&amp;amp;lat=38.98062&amp;amp;z=13 KCGS] || College Park Airport, MD || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KCVG || Cincinnati/Northern Kentucky International Airport, KY || USA || America || Terminals, Concourses, Towers, Signs, DHL Hub, and Other Buildings (Almost Fully Modeled)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KDCA || Reagan National Airport, VA || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-104.67318&amp;amp;lat=39.86166&amp;amp;z=13 KDEN] || [[Denver_International_Airport|Denver Airport, CO]] || USA || America || One terminal modelled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KDTW || Detroit Metropolitan Wayne County Airport, MI || USA || America || Basic development only&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KFHR || Friday Harbor Airport, WA || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KIND || Indianapolis Airport, IN || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-90.07589&amp;amp;lat=32.31118&amp;amp;z=13 KJAN] || Jackson-Evers Airport, MS || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KJFK || [[John F. Kennedy International Airport]], NY || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KLAS || Las Vegas McCarran Airport, NV || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-118.40809&amp;amp;lat=33.9425&amp;amp;z=13 KLAX] || [[Los Angeles International Airport]], CA || USA|| America || Fully modeled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KLSV || [[Nellis Air Force Base]], NV || USA || America || Fully modeled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-109.4667&amp;amp;lat=47.04924&amp;amp;z=13 KLWT] || Lewistown Municipal Airport, MT || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KMCI || Kansas City Airport, MO || USA || America || Basic development only&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KMPI || Mariposa-Yosemite Airport, CA || USA || America || Hangars and FBO.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KMTN || Martin State Airport, MD || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-117.69181&amp;amp;lat=35.68565&amp;amp;z=13 KNID] || China Lake Naval Air Weapons Station, CA || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-122.04918&amp;amp;lat=37.4162&amp;amp;z=13 KNUQ] || Moffett Federal Airfield, CA || USA || America || Fully modeled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-122.22062&amp;amp;lat=37.7214&amp;amp;z=13 KOAK] || [[Oakland International Airport]], CA || USA || America || Realistic terminal, currently undergoing maintenance&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KORD || Chicago [[O'Hare International Airport]], IL || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-88.55704&amp;amp;lat=43.98436&amp;amp;z=13 KOSH] || Wittman Regional Airport, Oshkosh, WI || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-75.12398&amp;amp;lat=38.31045&amp;amp;z=13 KOXB] || Ocean City Municipal Airport, MD || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-122.59751&amp;amp;lat=45.58871&amp;amp;z=13 KPDX] || Portland Airport, OR || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KPHX || Phoenix Sky Harbor Airport, AZ || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KRNO || Reno/Tahoe Airport, NV || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KSEA || [[Seattle-Tacoma International Airport]], WA || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-122.3749&amp;amp;lat=37.61897&amp;amp;z=13 KSFO] || [[San Francisco International Airport]], CA || USA || America || FlightGear's default airport, terminal buildings, airport lights and airport train.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KSLC || Salt Lake City International Airport, UT || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lat=33.80112251&amp;amp;lon=-118.34134126&amp;amp;z=15 KTOA] || Zamperini Field, Torrance, CA || USA || America || Fully modeled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KXTA || Edwards Airforce Base Detachment 3 (Homey Airport, or Area 51), NV || USA || America || Fully Modelled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KVUO || Pearson Field Airport, Vancouver, WA || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| LDSP || Split Airport || Croatia || Europe || Basic development only&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| LEBB || Bilbao || Spain || Europe || Fully modeled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| LEMD || Madrid - Barajas || Spain || Europe || Fully modeled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-3.19889&amp;amp;lat=47.32611&amp;amp;z=13 LFEA] || Belle-Ile || France || Europe ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-3.10167&amp;amp;lat=47.48139&amp;amp;z=13 LFEQ]  || Quiberon || France || Europe ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-3.66479&amp;amp;lat=48.05247&amp;amp;z=13 LFES] || Guiscriff Scaër || France || Europe ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=2.35465&amp;amp;lat=49.04626&amp;amp;z=13 LFFE] || Enghien Moisselles Airfield || France || Europe || Fully modeled, high resolution textures&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=4.8264&amp;amp;lat=45.25226&amp;amp;z=13 LFLR] || Saint Rambert d'Albon Airport || France || Europe || Fully modeled, high resolution textures &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=13.76716&amp;amp;lat=51.13277&amp;amp;z=13 LFMA] || Aix - Les Milles Airfield || France || Europe || Fully modeled, high resolution textures &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=0.08816&amp;amp;lat=49.53404&amp;amp;z=13 LFOH] || Le Havre Octeville Airport || France || Europe || Fully modeled, high resolution textures &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=5.36736&amp;amp;lat=43.50499&amp;amp;z=13 LFPG] || Charles de Gaulle International Airport || France || Europe || Fully modeled, very detailed, high resolution textures &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=2.60632&amp;amp;lat=48.89629&amp;amp;z=13 LFPH] || Chelles Le Pin Airport || France || Europe || Fully modeled, high resolution textures&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=2.622793&amp;amp;lat=48.822237&amp;amp;z=13 LFPL] || Lognes Emerainville Airport || France || Europe || Fully modeled, very detailed, high resolution textures&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=2.359443&amp;amp;lat=48.72551&amp;amp;z=13 LFPO] || Paris-Orly Airport || France || Europe || Fully modeled, very detailed, high resolution textures&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=2.073197&amp;amp;lat=48.810622&amp;amp;z=13 LFPZ] || St-Cyr-l’École Airport || France || Europe || Fully modeled, very detailed, high resolution textures&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-4.41785&amp;amp;lat=48.44413&amp;amp;z=13 LFRB] || Brest Bretagne Airport || France || Europe || Modeled airport with static models&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-4.15167&amp;amp;lat=48.53014&amp;amp;z=13 LFRL] || Lanvéoc Naval Air Base || France || Europe || Airport fitted with shared models (for helos and training)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-4.15167&amp;amp;lat=48.53014&amp;amp;z=13 LFRJ] || [[Landivisiau Naval Air Base]] || France || Europe || Modeled airport with arresting cables and [[Signs]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-4.167981&amp;amp;lat=47.97553&amp;amp;z=13 LFRQ] || Quimper || France || Europe ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-3.816762&amp;amp;lat=48.601247&amp;amp;z=13 LFRU] || Morlaix || France || Europe ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-2.736754&amp;amp;lat=47.717558&amp;amp;z=13 LFRV] || Vannes || France || Europe || Airport fitted with shared models&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-3.439579&amp;amp;lat=47.760964&amp;amp;z=13  LFRH] || Lorient - Bretagne Sud || France || Europe ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-3.439579&amp;amp;lat=47.760964&amp;amp;z=13 LFSB] || [[EuroAirport Basel-Mulhouse-Freiburg|Basel Mulhouse]] || Switzerland || Europe || Nice modelling of Terminal.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| LILN || Venegono Airport || Italy || Europe || Developed airport&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| LILQ || Massa Cinquale Airport || Italy || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| LILV || Valbrembo Airport || Italy  || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| LIMC || Milano-Malpensa Airport || Italy  || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=9.70741&amp;amp;lat=45.66952&amp;amp;z=13 LIME] || [[Orio al Serio Airport]], Bergamo || Italy || Europe || Fully modeled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=9.27521&amp;amp;lat=45.44776&amp;amp;z=13 LIML] || [[LIML|Milano-Linate Airport]] || Italy || Europe || Fully modeled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=7.36789&amp;amp;lat=45.73857&amp;amp;z=13 LIMW] || Aosta Airport || Italy || Europe || Fully modeled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=14.26&amp;amp;lat=50.100833&amp;amp;z=13 LKPR] || [[Václav Havel Airport Prague]] (Ruzyne) || Czech Republic || Europe || Fully modeled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=11.34397&amp;amp;lat=47.26023&amp;amp;z=13 LOWI] || [[Innsbruck Airport]] || Austria || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| LROP || Bucharest Otopeni || Romania || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| LSGG || Geneve (Cointrin) Airport || Switzerland || Europe || Fully Modelled. OSM2city available on https://github.com/FGMEMBERS-SCENERY/LSGG-fg-CustomScenery&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| LSGS || Sion Airport || Switzerland || Europe || Basic development only&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| LSZB || Bern-Belp Airport || Switzerland || Europe || Basic development only&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PANC || Ted Stevens Anchorage International Airport || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=136.80541&amp;amp;lat=34.85841&amp;amp;z=13 RJGG] || [[Chūbu Centrair International Airport]] || Japan || Asia || Detailed airport buildings, taxiway layout and customized terrain.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=139.78114&amp;amp;lat=35.5533&amp;amp;z=13 RJTT] || [[Tokyo Haneda International Airport]] || Japan || Asia || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=126.45051&amp;amp;lat=37.46909&amp;amp;z=13 RKSI] || Seoul Incheon Airport || South Korea || Asia || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=121.01349&amp;amp;lat=14.51024&amp;amp;z=13 RPLL] || Manila Aquino Airport || Philippines || Asia || Tower and three large terminals&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SAEZ || Aeropuerto Internacional Ministro Pistarini || Argentina || America || Several static buildings&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| [[SVMI]] || Aeropuerto Internacional Simon Bolivar || Venezuela || America || Several static buildings&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TAPA || V.C. Bird Intl Airport || Antigua and Barbuda || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TDPD || Melville Hall Airport || Dominica || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TFFF || Martinique Aimé Césaire International Airport || Martinique, France || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TFFG || Grand Case Airport || St. Maarten, Netherlands || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TIST || Cyril E. King Airport || US Virgin Islands || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TJSJ || Luis Muñoz Marín International Airport || Puerto Rico || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TKPK || Robert L. Bradshaw International Airport || St. Kitts || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TNCM || [[Princess Juliana International Airport]] || St. Maarten, Netherlands || America || Fully modeled, customized terrain&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TNCS || Juancho E. Yrausquin Airport || Saba || America || Fully modeled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TQPF || Clayton J. Lloyd International Airport || Anguilla || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-49.17201&amp;amp;lat=-25.53101&amp;amp;z=13 SBCT] || Afonso Pena International Airport || Brazil || South America || 3D Fully modeled - Download [http://djrick1.wix.com/grupofgbr/aeroportos#!__aeroportos Site Group FGBR]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-46.65768&amp;amp;lat=-23.62558&amp;amp;z=13 SBSP] || Congonhas Airport || Brazil || South America || 3D Fully modeled - Download [http://djrick1.wix.com/grupofgbr/aeroportos#!__aeroportos Site Group FGBR]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-46.46864&amp;amp;lat=-23.43351&amp;amp;z=13 SBGR] || Guarulhos International Airport || Brazil || South America || 3D Fully modeled - Download [http://djrick1.wix.com/grupofgbr/aeroportos#!__aeroportos Site Group FGBR]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-48.54304&amp;amp;lat=-27.6685&amp;amp;z=13 SBFL] || Hercílio Luiz International Airport || Brazil || South America || 3D Fully modeled - Download [http://djrick1.wix.com/grupofgbr/aeroportos#!__aeroportos Site Group FGBR]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| SKRG || Jose Maria Cordoba International Airport, Rionegro, Antioquia || Colombia || South America || Fully Modelled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| VIDP || Indira Gandhi International Airport || India || Asia || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=89.42272&amp;amp;lat=27.39994&amp;amp;z=13 VQPR] || [[Paro Airport]] || Bhutan || Asia || Terminal, Buildings, Refernce Points and other POIs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=91.50917&amp;amp;lat=27.25961&amp;amp;z=13 VQ10] || [[Yongphulla Airport]] || Bhutan || Asia || Terminal, some other Buildings &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=113.9183&amp;amp;lat=22.308&amp;amp;z=13 VHHH] || Hong Kong International Airport || Hong Kong || Asia || Terminals, control towers, some other buildings &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-81.41707414&amp;amp;lat=41.15689289&amp;amp;z=13 1G3] || Kent State University Airfield, OH || USA || America || &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-81.76281774&amp;amp;lat=41.13448335&amp;amp;z=13 1G5] || [[Medina Municipal Airport]], OH || USA || America || &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-81.24620281&amp;amp;lat=41.20973295&amp;amp;z=13 29G] || Portage Co, OH || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-90.13769&amp;amp;lat=43.83872&amp;amp;z=13 82C] || Mauston-New Lisbon Union Airport, WI || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-89.02545&amp;amp;lat=44.50485&amp;amp;z=13 68C] || Iola Central County Airport, WI || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-123.00815977&amp;amp;lat=43.93009927&amp;amp;z=13 77S] || Hobby Field, Creswell, OR || USA || America || Nearly complete: Hangars (one accidently missing), fuel pump, GA aircraft, cars, trees, bushes (shared models)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Authors ==&lt;br /&gt;
&lt;br /&gt;
Airports by HerbyW in Yakutia, Irkutsk and Krasnoyarsk:&lt;br /&gt;
UIBB UEEE UEST UEMS UEBN UEBT UEWD UEMA UERR UEMT UEEA UEMU UIII UITT UEBB UEVV UENW UEMO UERL UERT UEMH UERO UERP UNAA UIUN UENN UIBV UNCC UEMJ&lt;br /&gt;
&lt;br /&gt;
Airports by D-ABBA:&lt;br /&gt;
EDXW,EDFE,EDGS,EDFQ,EDFH,EDFL,EDFO,ED03&lt;br /&gt;
&lt;br /&gt;
Airports by [[User:Laserman]]:&lt;br /&gt;
EDDG,EDLM,EDLB,EDLK,EDLN,EDLV,EDLW,LJLJ,LJAJ,LJSG,LJCE,LJPZ &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [http://iveze.nl/fgmap/ Builtup airports in Flightgear] – Interactive world map by KL-666. ''See also related forum topic [http://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=23613 Map of airports with buildings in terrasync].''&lt;br /&gt;
&lt;br /&gt;
{{Suggested}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Lists]]&lt;br /&gt;
[[Category:Airports]]&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=List_of_developed_airports&amp;diff=106956</id>
		<title>List of developed airports</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=List_of_developed_airports&amp;diff=106956"/>
		<updated>2017-02-15T01:57:30Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: /* List of airports */ added caveat for CYGK&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is an incomplete '''list of developed airports''' in the FlightGear [[TerraSync]] scenery.&lt;br /&gt;
&lt;br /&gt;
Airports can be listed here if these two conditions are fulfilled:&lt;br /&gt;
* At least one building or [[Signs|taxi signs]] have been placed&lt;br /&gt;
* Objects are represented in the [[FlightGear Scenery Database]].&lt;br /&gt;
&lt;br /&gt;
Every improvement listed here should be possible to download using TerraSync.  These improvements will also be included in the next [[World Scenery]] release. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== For airport developers ==&lt;br /&gt;
If you are currently developing an airport, please feel free to add it to [[Airports under construction]]. For a list of currently ongoing scenery related projects, please check out [[Current Scenery Projects]].&lt;br /&gt;
&lt;br /&gt;
== List of airports ==&lt;br /&gt;
The ICAO codes link to the FlightGear mapserver, which - among other things - contains information about the current status of the [[FlightGear Scenery Database]]. On a map, you will see:&lt;br /&gt;
* The current airport layout with runways, taxiways and aprons&lt;br /&gt;
* Red dots: static objects in the scenery database made especially for this airport&lt;br /&gt;
* Dark red dots: shared models in the scenery database placed at this airport&lt;br /&gt;
* Green dots: [[Signs|taxi signs]] placed at the airport&lt;br /&gt;
&lt;br /&gt;
{{inote|You can sort the table by clicking one of the [[File:Sort none.gif]] symbols in the row headers.}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! ICAO !! Name !! Country !! Continent !! class=&amp;quot;unsortable&amp;quot; | Comment&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| CYGK || [[Kingston Norman Rogers]] || Canada || North America || Custom objects for all major buildings, including FBO. (Buildings may not align with taxiways in default scenery, until it starts using the newest recommended airport data from X-Plane.)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=13.76716&amp;amp;lat=51.13277&amp;amp;z=13 EDDC] || [[Dresden Airport]] || Germany || Europe || Fully modeled with tower, terminal, animated hangars etc.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=8.56293&amp;amp;lat=50.03795&amp;amp;z=13 EDDF] || [[Frankfurt am Main Airport]] || Germany || Europe || Fully modeled with [[Signs]] and [[Interactive Traffic]] and unique scycrapers downtown&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EDDG || [[Münster Osnabrück]] || Germany || Europe || 1 static + 100 shared objects&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EDDH || [[Hamburg Airport]] || Germany || Europe || Fully modeled, plus unique buildings downtown&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=13.40379&amp;amp;lat=52.47502&amp;amp;z=13 EDDI] ||[[Berlin Tempelhof Airport]] || Germany || Europe || Fully modeled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EDDL || [[Düsseldorf International Airport|Düsseldorf Airport]] || Germany || Europe || Fully modeled, many shared objects&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=11.78609&amp;amp;lat=48.35378&amp;amp;z=13 EDDM] || [[Munich Airport]] || Germany || Europe || Fully modelled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=12.23603&amp;amp;lat=51.42262&amp;amp;z=13 EDDP] || [[Leipzig/Halle Airport]] || Germany || Europe || Fully modelled with [[Signs]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EDDS || [[Stuttgart Airport]] || Germany || Europe || Fully modelled based on Shared-Models, incl. [[Signs]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=13.28992&amp;amp;lat=52.55917&amp;amp;z=13 EDDT] || [[Berlin Tegel Airport]] || Germany || Europe || Tower, terminals, [[Signs]] and unique buildings downtown&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EDFB || Reichelsheim Airport || Germany || Europe || Tower done&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EDFM || [[Mannheim City Airport]] || Germany || Europe || Basic models of tower, terminals and hangars&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=10.71706&amp;amp;lat=53.80496&amp;amp;z=13 EDHL] || [[Lübeck Blankensee Airport]] || Germany || Europe || Almost complete, home of the [[Piper PA34-200T Seneca II|Seneca]] used to model the FlightGear version. A modified tile is available at [http://www.t3r.de/fg/scenery/ Torsten's scenery site]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=7.16278&amp;amp;lat=50.76767&amp;amp;z=13 EDKB] || [[Bonn-Hangelar Airport]] || Germany || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EDLW || [[Flughafen Dortmund]] || Germany || Europe || Fully modelled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EDVE || [[Braunschweig Airport]] || Germany || Europe || Fully modelled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EEKE || Kuressaare Airport || Estonia || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EETN || Lennart Meri Tallinn Airport || Estonia || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EETU || Tartu Airport || Estonia || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=25.04487&amp;amp;lat=60.25318&amp;amp;z=13 EFHF] || Helsinki-Malmi Airport || Finland || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=24.95253&amp;amp;lat=60.3206&amp;amp;z=13 EFHK] || Helsinki-Vantaa Airport || Finland || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=22.26281&amp;amp;lat=60.51412&amp;amp;z=13 EFTU] || Turku Airport || Finland || Europe || Tower and terminal modelled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EGFF || Cardiff Airport || United Kingdom || Europe || One building: British Airways Maintenance Facility&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EGGP || Liverpool John Lennon Airport || United Kingdom || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EGGW || London Luton Airport || United Kingdom || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EGKA || Shoreham Airport || United Kingdom || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-0.19224&amp;amp;lat=51.14869&amp;amp;z=13 EGKK] || [[London Gatwick]] || United Kingdom || Europe || Complete and fully modeled to highest level of detail with day and night textures; AI parking and ground network&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-0.46095&amp;amp;lat=51.47139&amp;amp;z=13 EGLL] || London Heathrow Airport || United Kingdom || Europe || Basic development only&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EGPH || Edinburgh Airport || United Kingdom || Europe || Tower, terminal, park deck, and some shared models&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=1.28469&amp;amp;lat=52.67713&amp;amp;z=13 EGSH] || Norwich Airport || United Kingdom || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EH01 || [[VU University Medical Center]] || Netherlands || Europe || Complete hospital building including on-roof heli platform.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=4.75487&amp;amp;lat=52.31296&amp;amp;z=13 EHAM] || [[Amsterdam Airport Schiphol]] || Netherlands || Europe || Fully modeled, bussiest AI airport currently&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EHEH || Eindhoven Airport || Netherlands || Europe || Basic development only&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=5.51885&amp;amp;lat=52.45717&amp;amp;z=13 EHLE] || [[Lelystad Airport]] || Netherlands || Europe || Fully modeled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EHVK || [[Volkel Air Base]] || Netherlands || Europe || Shelters and detailed airport layout.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EIDW || [[Dublin Airport]] || Ireland || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=6.11017&amp;amp;lat=62.56037&amp;amp;z=13 ENAL] || Ålesund Airport || Norway || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=6.10949&amp;amp;lat=61.83027&amp;amp;z=13 ENSD] || Sandane Airport || Norway || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ENVA || Trondheim Værnes Airport || Norway || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ESGP || Göteborg Airport || Sweden || Europe || Basic development only&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-106.60912&amp;amp;lat=35.04021&amp;amp;z=13 KABQ] || Albuquerque Sunport Airport, NM || USA || America || Basic development only&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-84.42809&amp;amp;lat=33.63672&amp;amp;z=13 KATL] || [[Hartsfield - Jackson Atlanta International Airport]], GA || USA || America || Terminal modeled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-81.4629595&amp;amp;lat=41.0421187&amp;amp;z=13 KAKR] || [[Akron-Fulton International Airport]], OH || USA || America || Fully modelled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-81.43676804&amp;amp;lat=40.91510112&amp;amp;z=13 KCAK] || Akron-Canton Regional Airport, OH || USA || America ||  Fully modelled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KAUS || Austin-Bergstrom Airport, TX || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KBOS || Boston Logan || USA || America || Tower, Terminals done&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KFNT || Bishop Intl, MI || USA || America || Fully modelled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-76.66833&amp;amp;lat=39.17535&amp;amp;z=13 KBWI] || Baltimore-Washington International, MD || USA || America || Terminal modeled with jetways, parking garage, support buildings and [[Signs]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lat=37.9858289&amp;amp;lon=-122.05529346000002&amp;amp;z=15 KCCR] || Buchanan Field Airport, Concord, CA || USA || America || Fully modeled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-76.92254&amp;amp;lat=38.98062&amp;amp;z=13 KCGS] || College Park Airport, MD || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KCVG || Cincinnati/Northern Kentucky International Airport, KY || USA || America || Terminals, Concourses, Towers, Signs, DHL Hub, and Other Buildings (Almost Fully Modeled)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KDCA || Reagan National Airport, VA || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-104.67318&amp;amp;lat=39.86166&amp;amp;z=13 KDEN] || [[Denver_International_Airport|Denver Airport, CO]] || USA || America || One terminal modelled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KDTW || Detroit Metropolitan Wayne County Airport, MI || USA || America || Basic development only&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KFHR || Friday Harbor Airport, WA || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KIND || Indianapolis Airport, IN || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-90.07589&amp;amp;lat=32.31118&amp;amp;z=13 KJAN] || Jackson-Evers Airport, MS || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KJFK || [[John F. Kennedy International Airport]], NY || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KLAS || Las Vegas McCarran Airport, NV || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-118.40809&amp;amp;lat=33.9425&amp;amp;z=13 KLAX] || [[Los Angeles International Airport]], CA || USA|| America || Fully modeled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KLSV || [[Nellis Air Force Base]], NV || USA || America || Fully modeled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-109.4667&amp;amp;lat=47.04924&amp;amp;z=13 KLWT] || Lewistown Municipal Airport, MT || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KMCI || Kansas City Airport, MO || USA || America || Basic development only&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KMPI || Mariposa-Yosemite Airport, CA || USA || America || Hangars and FBO.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KMTN || Martin State Airport, MD || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-117.69181&amp;amp;lat=35.68565&amp;amp;z=13 KNID] || China Lake Naval Air Weapons Station, CA || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-122.04918&amp;amp;lat=37.4162&amp;amp;z=13 KNUQ] || Moffett Federal Airfield, CA || USA || America || Fully modeled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-122.22062&amp;amp;lat=37.7214&amp;amp;z=13 KOAK] || [[Oakland International Airport]], CA || USA || America || Realistic terminal, currently undergoing maintenance&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KORD || Chicago [[O'Hare International Airport]], IL || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-88.55704&amp;amp;lat=43.98436&amp;amp;z=13 KOSH] || Wittman Regional Airport, Oshkosh, WI || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-75.12398&amp;amp;lat=38.31045&amp;amp;z=13 KOXB] || Ocean City Municipal Airport, MD || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-122.59751&amp;amp;lat=45.58871&amp;amp;z=13 KPDX] || Portland Airport, OR || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KPHX || Phoenix Sky Harbor Airport, AZ || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KRNO || Reno/Tahoe Airport, NV || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KSEA || [[Seattle-Tacoma International Airport]], WA || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-122.3749&amp;amp;lat=37.61897&amp;amp;z=13 KSFO] || [[San Francisco International Airport]], CA || USA || America || FlightGear's default airport, terminal buildings, airport lights and airport train.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KSLC || Salt Lake City International Airport, UT || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lat=33.80112251&amp;amp;lon=-118.34134126&amp;amp;z=15 KTOA] || Zamperini Field, Torrance, CA || USA || America || Fully modeled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KXTA || Edwards Airforce Base Detachment 3 (Homey Airport, or Area 51), NV || USA || America || Fully Modelled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KVUO || Pearson Field Airport, Vancouver, WA || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| LDSP || Split Airport || Croatia || Europe || Basic development only&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| LEBB || Bilbao || Spain || Europe || Fully modeled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| LEMD || Madrid - Barajas || Spain || Europe || Fully modeled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-3.19889&amp;amp;lat=47.32611&amp;amp;z=13 LFEA] || Belle-Ile || France || Europe ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-3.10167&amp;amp;lat=47.48139&amp;amp;z=13 LFEQ]  || Quiberon || France || Europe ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-3.66479&amp;amp;lat=48.05247&amp;amp;z=13 LFES] || Guiscriff Scaër || France || Europe ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=2.35465&amp;amp;lat=49.04626&amp;amp;z=13 LFFE] || Enghien Moisselles Airfield || France || Europe || Fully modeled, high resolution textures&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=4.8264&amp;amp;lat=45.25226&amp;amp;z=13 LFLR] || Saint Rambert d'Albon Airport || France || Europe || Fully modeled, high resolution textures &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=13.76716&amp;amp;lat=51.13277&amp;amp;z=13 LFMA] || Aix - Les Milles Airfield || France || Europe || Fully modeled, high resolution textures &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=0.08816&amp;amp;lat=49.53404&amp;amp;z=13 LFOH] || Le Havre Octeville Airport || France || Europe || Fully modeled, high resolution textures &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=5.36736&amp;amp;lat=43.50499&amp;amp;z=13 LFPG] || Charles de Gaulle International Airport || France || Europe || Fully modeled, very detailed, high resolution textures &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=2.60632&amp;amp;lat=48.89629&amp;amp;z=13 LFPH] || Chelles Le Pin Airport || France || Europe || Fully modeled, high resolution textures&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=2.622793&amp;amp;lat=48.822237&amp;amp;z=13 LFPL] || Lognes Emerainville Airport || France || Europe || Fully modeled, very detailed, high resolution textures&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=2.359443&amp;amp;lat=48.72551&amp;amp;z=13 LFPO] || Paris-Orly Airport || France || Europe || Fully modeled, very detailed, high resolution textures&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=2.073197&amp;amp;lat=48.810622&amp;amp;z=13 LFPZ] || St-Cyr-l’École Airport || France || Europe || Fully modeled, very detailed, high resolution textures&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-4.41785&amp;amp;lat=48.44413&amp;amp;z=13 LFRB] || Brest Bretagne Airport || France || Europe || Modeled airport with static models&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-4.15167&amp;amp;lat=48.53014&amp;amp;z=13 LFRL] || Lanvéoc Naval Air Base || France || Europe || Airport fitted with shared models (for helos and training)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-4.15167&amp;amp;lat=48.53014&amp;amp;z=13 LFRJ] || [[Landivisiau Naval Air Base]] || France || Europe || Modeled airport with arresting cables and [[Signs]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-4.167981&amp;amp;lat=47.97553&amp;amp;z=13 LFRQ] || Quimper || France || Europe ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-3.816762&amp;amp;lat=48.601247&amp;amp;z=13 LFRU] || Morlaix || France || Europe ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-2.736754&amp;amp;lat=47.717558&amp;amp;z=13 LFRV] || Vannes || France || Europe || Airport fitted with shared models&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-3.439579&amp;amp;lat=47.760964&amp;amp;z=13  LFRH] || Lorient - Bretagne Sud || France || Europe ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-3.439579&amp;amp;lat=47.760964&amp;amp;z=13 LFSB] || [[EuroAirport Basel-Mulhouse-Freiburg|Basel Mulhouse]] || Switzerland || Europe || Nice modelling of Terminal.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| LILN || Venegono Airport || Italy || Europe || Developed airport&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| LILQ || Massa Cinquale Airport || Italy || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| LILV || Valbrembo Airport || Italy  || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| LIMC || Milano-Malpensa Airport || Italy  || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=9.70741&amp;amp;lat=45.66952&amp;amp;z=13 LIME] || [[Orio al Serio Airport]], Bergamo || Italy || Europe || Fully modeled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=9.27521&amp;amp;lat=45.44776&amp;amp;z=13 LIML] || [[LIML|Milano-Linate Airport]] || Italy || Europe || Fully modeled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=7.36789&amp;amp;lat=45.73857&amp;amp;z=13 LIMW] || Aosta Airport || Italy || Europe || Fully modeled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=14.26&amp;amp;lat=50.100833&amp;amp;z=13 LKPR] || [[Václav Havel Airport Prague]] (Ruzyne) || Czech Republic || Europe || Fully modeled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=11.34397&amp;amp;lat=47.26023&amp;amp;z=13 LOWI] || [[Innsbruck Airport]] || Austria || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| LROP || Bucharest Otopeni || Romania || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| LSGG || Geneve (Cointrin) Airport || Switzerland || Europe || Fully Modelled. OSM2city available on https://github.com/FGMEMBERS-SCENERY/LSGG-fg-CustomScenery&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| LSGS || Sion Airport || Switzerland || Europe || Basic development only&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| LSZB || Bern-Belp Airport || Switzerland || Europe || Basic development only&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PANC || Ted Stevens Anchorage International Airport || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=136.80541&amp;amp;lat=34.85841&amp;amp;z=13 RJGG] || [[Chūbu Centrair International Airport]] || Japan || Asia || Detailed airport buildings, taxiway layout and customized terrain.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=139.78114&amp;amp;lat=35.5533&amp;amp;z=13 RJTT] || [[Tokyo Haneda International Airport]] || Japan || Asia || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=126.45051&amp;amp;lat=37.46909&amp;amp;z=13 RKSI] || Seoul Incheon Airport || South Korea || Asia || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=121.01349&amp;amp;lat=14.51024&amp;amp;z=13 RPLL] || Manila Aquino Airport || Philippines || Asia || Tower and three large terminals&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SAEZ || Aeropuerto Internacional Ministro Pistarini || Argentina || America || Several static buildings&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| [[SVMI]] || Aeropuerto Internacional Simon Bolivar || Venezuela || America || Several static buildings&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TAPA || V.C. Bird Intl Airport || Antigua and Barbuda || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TDPD || Melville Hall Airport || Dominica || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TFFF || Martinique Aimé Césaire International Airport || Martinique, France || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TFFG || Grand Case Airport || St. Maarten, Netherlands || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TIST || Cyril E. King Airport || US Virgin Islands || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TJSJ || Luis Muñoz Marín International Airport || Puerto Rico || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TKPK || Robert L. Bradshaw International Airport || St. Kitts || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TNCM || [[Princess Juliana International Airport]] || St. Maarten, Netherlands || America || Fully modeled, customized terrain&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TNCS || Juancho E. Yrausquin Airport || Saba || America || Fully modeled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TQPF || Clayton J. Lloyd International Airport || Anguilla || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-49.17201&amp;amp;lat=-25.53101&amp;amp;z=13 SBCT] || Afonso Pena International Airport || Brazil || South America || 3D Fully modeled - Download [http://djrick1.wix.com/grupofgbr/aeroportos#!__aeroportos Site Group FGBR]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-46.65768&amp;amp;lat=-23.62558&amp;amp;z=13 SBSP] || Congonhas Airport || Brazil || South America || 3D Fully modeled - Download [http://djrick1.wix.com/grupofgbr/aeroportos#!__aeroportos Site Group FGBR]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-46.46864&amp;amp;lat=-23.43351&amp;amp;z=13 SBGR] || Guarulhos International Airport || Brazil || South America || 3D Fully modeled - Download [http://djrick1.wix.com/grupofgbr/aeroportos#!__aeroportos Site Group FGBR]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-48.54304&amp;amp;lat=-27.6685&amp;amp;z=13 SBFL] || Hercílio Luiz International Airport || Brazil || South America || 3D Fully modeled - Download [http://djrick1.wix.com/grupofgbr/aeroportos#!__aeroportos Site Group FGBR]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| SKRG || Jose Maria Cordoba International Airport, Rionegro, Antioquia || Colombia || South America || Fully Modelled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| VIDP || Indira Gandhi International Airport || India || Asia || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=89.42272&amp;amp;lat=27.39994&amp;amp;z=13 VQPR] || [[Paro Airport]] || Bhutan || Asia || Terminal, Buildings, Refernce Points and other POIs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=91.50917&amp;amp;lat=27.25961&amp;amp;z=13 VQ10] || [[Yongphulla Airport]] || Bhutan || Asia || Terminal, some other Buildings &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=113.9183&amp;amp;lat=22.308&amp;amp;z=13 VHHH] || Hong Kong International Airport || Hong Kong || Asia || Terminals, control towers, some other buildings &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-81.41707414&amp;amp;lat=41.15689289&amp;amp;z=13 1G3] || Kent State University Airfield, OH || USA || America || &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-81.76281774&amp;amp;lat=41.13448335&amp;amp;z=13 1G5] || [[Medina Municipal Airport]], OH || USA || America || &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-81.24620281&amp;amp;lat=41.20973295&amp;amp;z=13 29G] || Portage Co, OH || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-90.13769&amp;amp;lat=43.83872&amp;amp;z=13 82C] || Mauston-New Lisbon Union Airport, WI || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-89.02545&amp;amp;lat=44.50485&amp;amp;z=13 68C] || Iola Central County Airport, WI || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-123.00815977&amp;amp;lat=43.93009927&amp;amp;z=13 77S] || Hobby Field, Creswell, OR || USA || America || Nearly complete: Hangars (one accidently missing), fuel pump, GA aircraft, cars, trees, bushes (shared models)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Authors ==&lt;br /&gt;
&lt;br /&gt;
Airports by HerbyW in Yakutia, Irkutsk and Krasnoyarsk:&lt;br /&gt;
UIBB UEEE UEST UEMS UEBN UEBT UEWD UEMA UERR UEMT UEEA UEMU UIII UITT UEBB UEVV UENW UEMO UERL UERT UEMH UERO UERP UNAA UIUN UENN UIBV UNCC UEMJ&lt;br /&gt;
&lt;br /&gt;
Airports by D-ABBA:&lt;br /&gt;
EDXW,EDFE,EDGS,EDFQ,EDFH,EDFL,EDFO,ED03&lt;br /&gt;
&lt;br /&gt;
Airports by [[User:Laserman]]:&lt;br /&gt;
EDDG,EDLM,EDLB,EDLK,EDLN,EDLV,EDLW,LJLJ,LJAJ,LJSG,LJCE,LJPZ &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [http://iveze.nl/fgmap/ Builtup airports in Flightgear] – Interactive world map by KL-666. ''See also related forum topic [http://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=23613 Map of airports with buildings in terrasync].''&lt;br /&gt;
&lt;br /&gt;
{{Suggested}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Lists]]&lt;br /&gt;
[[Category:Airports]]&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=List_of_developed_airports&amp;diff=106955</id>
		<title>List of developed airports</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=List_of_developed_airports&amp;diff=106955"/>
		<updated>2017-02-15T01:55:51Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: Added CYGK.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is an incomplete '''list of developed airports''' in the FlightGear [[TerraSync]] scenery.&lt;br /&gt;
&lt;br /&gt;
Airports can be listed here if these two conditions are fulfilled:&lt;br /&gt;
* At least one building or [[Signs|taxi signs]] have been placed&lt;br /&gt;
* Objects are represented in the [[FlightGear Scenery Database]].&lt;br /&gt;
&lt;br /&gt;
Every improvement listed here should be possible to download using TerraSync.  These improvements will also be included in the next [[World Scenery]] release. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== For airport developers ==&lt;br /&gt;
If you are currently developing an airport, please feel free to add it to [[Airports under construction]]. For a list of currently ongoing scenery related projects, please check out [[Current Scenery Projects]].&lt;br /&gt;
&lt;br /&gt;
== List of airports ==&lt;br /&gt;
The ICAO codes link to the FlightGear mapserver, which - among other things - contains information about the current status of the [[FlightGear Scenery Database]]. On a map, you will see:&lt;br /&gt;
* The current airport layout with runways, taxiways and aprons&lt;br /&gt;
* Red dots: static objects in the scenery database made especially for this airport&lt;br /&gt;
* Dark red dots: shared models in the scenery database placed at this airport&lt;br /&gt;
* Green dots: [[Signs|taxi signs]] placed at the airport&lt;br /&gt;
&lt;br /&gt;
{{inote|You can sort the table by clicking one of the [[File:Sort none.gif]] symbols in the row headers.}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! ICAO !! Name !! Country !! Continent !! class=&amp;quot;unsortable&amp;quot; | Comment&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| CYGK || [[Kingston Norman Rogers]] || Canada || North America || Custom objects for all major buildings, including FBO.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=13.76716&amp;amp;lat=51.13277&amp;amp;z=13 EDDC] || [[Dresden Airport]] || Germany || Europe || Fully modeled with tower, terminal, animated hangars etc.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=8.56293&amp;amp;lat=50.03795&amp;amp;z=13 EDDF] || [[Frankfurt am Main Airport]] || Germany || Europe || Fully modeled with [[Signs]] and [[Interactive Traffic]] and unique scycrapers downtown&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EDDG || [[Münster Osnabrück]] || Germany || Europe || 1 static + 100 shared objects&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EDDH || [[Hamburg Airport]] || Germany || Europe || Fully modeled, plus unique buildings downtown&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=13.40379&amp;amp;lat=52.47502&amp;amp;z=13 EDDI] ||[[Berlin Tempelhof Airport]] || Germany || Europe || Fully modeled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EDDL || [[Düsseldorf International Airport|Düsseldorf Airport]] || Germany || Europe || Fully modeled, many shared objects&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=11.78609&amp;amp;lat=48.35378&amp;amp;z=13 EDDM] || [[Munich Airport]] || Germany || Europe || Fully modelled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=12.23603&amp;amp;lat=51.42262&amp;amp;z=13 EDDP] || [[Leipzig/Halle Airport]] || Germany || Europe || Fully modelled with [[Signs]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EDDS || [[Stuttgart Airport]] || Germany || Europe || Fully modelled based on Shared-Models, incl. [[Signs]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=13.28992&amp;amp;lat=52.55917&amp;amp;z=13 EDDT] || [[Berlin Tegel Airport]] || Germany || Europe || Tower, terminals, [[Signs]] and unique buildings downtown&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EDFB || Reichelsheim Airport || Germany || Europe || Tower done&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EDFM || [[Mannheim City Airport]] || Germany || Europe || Basic models of tower, terminals and hangars&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=10.71706&amp;amp;lat=53.80496&amp;amp;z=13 EDHL] || [[Lübeck Blankensee Airport]] || Germany || Europe || Almost complete, home of the [[Piper PA34-200T Seneca II|Seneca]] used to model the FlightGear version. A modified tile is available at [http://www.t3r.de/fg/scenery/ Torsten's scenery site]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=7.16278&amp;amp;lat=50.76767&amp;amp;z=13 EDKB] || [[Bonn-Hangelar Airport]] || Germany || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EDLW || [[Flughafen Dortmund]] || Germany || Europe || Fully modelled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EDVE || [[Braunschweig Airport]] || Germany || Europe || Fully modelled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EEKE || Kuressaare Airport || Estonia || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EETN || Lennart Meri Tallinn Airport || Estonia || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EETU || Tartu Airport || Estonia || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=25.04487&amp;amp;lat=60.25318&amp;amp;z=13 EFHF] || Helsinki-Malmi Airport || Finland || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=24.95253&amp;amp;lat=60.3206&amp;amp;z=13 EFHK] || Helsinki-Vantaa Airport || Finland || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=22.26281&amp;amp;lat=60.51412&amp;amp;z=13 EFTU] || Turku Airport || Finland || Europe || Tower and terminal modelled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EGFF || Cardiff Airport || United Kingdom || Europe || One building: British Airways Maintenance Facility&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EGGP || Liverpool John Lennon Airport || United Kingdom || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EGGW || London Luton Airport || United Kingdom || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EGKA || Shoreham Airport || United Kingdom || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-0.19224&amp;amp;lat=51.14869&amp;amp;z=13 EGKK] || [[London Gatwick]] || United Kingdom || Europe || Complete and fully modeled to highest level of detail with day and night textures; AI parking and ground network&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-0.46095&amp;amp;lat=51.47139&amp;amp;z=13 EGLL] || London Heathrow Airport || United Kingdom || Europe || Basic development only&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EGPH || Edinburgh Airport || United Kingdom || Europe || Tower, terminal, park deck, and some shared models&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=1.28469&amp;amp;lat=52.67713&amp;amp;z=13 EGSH] || Norwich Airport || United Kingdom || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EH01 || [[VU University Medical Center]] || Netherlands || Europe || Complete hospital building including on-roof heli platform.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=4.75487&amp;amp;lat=52.31296&amp;amp;z=13 EHAM] || [[Amsterdam Airport Schiphol]] || Netherlands || Europe || Fully modeled, bussiest AI airport currently&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EHEH || Eindhoven Airport || Netherlands || Europe || Basic development only&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=5.51885&amp;amp;lat=52.45717&amp;amp;z=13 EHLE] || [[Lelystad Airport]] || Netherlands || Europe || Fully modeled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EHVK || [[Volkel Air Base]] || Netherlands || Europe || Shelters and detailed airport layout.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EIDW || [[Dublin Airport]] || Ireland || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=6.11017&amp;amp;lat=62.56037&amp;amp;z=13 ENAL] || Ålesund Airport || Norway || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=6.10949&amp;amp;lat=61.83027&amp;amp;z=13 ENSD] || Sandane Airport || Norway || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ENVA || Trondheim Værnes Airport || Norway || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ESGP || Göteborg Airport || Sweden || Europe || Basic development only&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-106.60912&amp;amp;lat=35.04021&amp;amp;z=13 KABQ] || Albuquerque Sunport Airport, NM || USA || America || Basic development only&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-84.42809&amp;amp;lat=33.63672&amp;amp;z=13 KATL] || [[Hartsfield - Jackson Atlanta International Airport]], GA || USA || America || Terminal modeled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-81.4629595&amp;amp;lat=41.0421187&amp;amp;z=13 KAKR] || [[Akron-Fulton International Airport]], OH || USA || America || Fully modelled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-81.43676804&amp;amp;lat=40.91510112&amp;amp;z=13 KCAK] || Akron-Canton Regional Airport, OH || USA || America ||  Fully modelled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KAUS || Austin-Bergstrom Airport, TX || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KBOS || Boston Logan || USA || America || Tower, Terminals done&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KFNT || Bishop Intl, MI || USA || America || Fully modelled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-76.66833&amp;amp;lat=39.17535&amp;amp;z=13 KBWI] || Baltimore-Washington International, MD || USA || America || Terminal modeled with jetways, parking garage, support buildings and [[Signs]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lat=37.9858289&amp;amp;lon=-122.05529346000002&amp;amp;z=15 KCCR] || Buchanan Field Airport, Concord, CA || USA || America || Fully modeled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-76.92254&amp;amp;lat=38.98062&amp;amp;z=13 KCGS] || College Park Airport, MD || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KCVG || Cincinnati/Northern Kentucky International Airport, KY || USA || America || Terminals, Concourses, Towers, Signs, DHL Hub, and Other Buildings (Almost Fully Modeled)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KDCA || Reagan National Airport, VA || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-104.67318&amp;amp;lat=39.86166&amp;amp;z=13 KDEN] || [[Denver_International_Airport|Denver Airport, CO]] || USA || America || One terminal modelled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KDTW || Detroit Metropolitan Wayne County Airport, MI || USA || America || Basic development only&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KFHR || Friday Harbor Airport, WA || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KIND || Indianapolis Airport, IN || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-90.07589&amp;amp;lat=32.31118&amp;amp;z=13 KJAN] || Jackson-Evers Airport, MS || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KJFK || [[John F. Kennedy International Airport]], NY || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KLAS || Las Vegas McCarran Airport, NV || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-118.40809&amp;amp;lat=33.9425&amp;amp;z=13 KLAX] || [[Los Angeles International Airport]], CA || USA|| America || Fully modeled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KLSV || [[Nellis Air Force Base]], NV || USA || America || Fully modeled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-109.4667&amp;amp;lat=47.04924&amp;amp;z=13 KLWT] || Lewistown Municipal Airport, MT || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KMCI || Kansas City Airport, MO || USA || America || Basic development only&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KMPI || Mariposa-Yosemite Airport, CA || USA || America || Hangars and FBO.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KMTN || Martin State Airport, MD || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-117.69181&amp;amp;lat=35.68565&amp;amp;z=13 KNID] || China Lake Naval Air Weapons Station, CA || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-122.04918&amp;amp;lat=37.4162&amp;amp;z=13 KNUQ] || Moffett Federal Airfield, CA || USA || America || Fully modeled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-122.22062&amp;amp;lat=37.7214&amp;amp;z=13 KOAK] || [[Oakland International Airport]], CA || USA || America || Realistic terminal, currently undergoing maintenance&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KORD || Chicago [[O'Hare International Airport]], IL || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-88.55704&amp;amp;lat=43.98436&amp;amp;z=13 KOSH] || Wittman Regional Airport, Oshkosh, WI || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-75.12398&amp;amp;lat=38.31045&amp;amp;z=13 KOXB] || Ocean City Municipal Airport, MD || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-122.59751&amp;amp;lat=45.58871&amp;amp;z=13 KPDX] || Portland Airport, OR || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KPHX || Phoenix Sky Harbor Airport, AZ || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KRNO || Reno/Tahoe Airport, NV || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KSEA || [[Seattle-Tacoma International Airport]], WA || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-122.3749&amp;amp;lat=37.61897&amp;amp;z=13 KSFO] || [[San Francisco International Airport]], CA || USA || America || FlightGear's default airport, terminal buildings, airport lights and airport train.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KSLC || Salt Lake City International Airport, UT || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lat=33.80112251&amp;amp;lon=-118.34134126&amp;amp;z=15 KTOA] || Zamperini Field, Torrance, CA || USA || America || Fully modeled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KXTA || Edwards Airforce Base Detachment 3 (Homey Airport, or Area 51), NV || USA || America || Fully Modelled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| KVUO || Pearson Field Airport, Vancouver, WA || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| LDSP || Split Airport || Croatia || Europe || Basic development only&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| LEBB || Bilbao || Spain || Europe || Fully modeled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| LEMD || Madrid - Barajas || Spain || Europe || Fully modeled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-3.19889&amp;amp;lat=47.32611&amp;amp;z=13 LFEA] || Belle-Ile || France || Europe ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-3.10167&amp;amp;lat=47.48139&amp;amp;z=13 LFEQ]  || Quiberon || France || Europe ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-3.66479&amp;amp;lat=48.05247&amp;amp;z=13 LFES] || Guiscriff Scaër || France || Europe ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=2.35465&amp;amp;lat=49.04626&amp;amp;z=13 LFFE] || Enghien Moisselles Airfield || France || Europe || Fully modeled, high resolution textures&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=4.8264&amp;amp;lat=45.25226&amp;amp;z=13 LFLR] || Saint Rambert d'Albon Airport || France || Europe || Fully modeled, high resolution textures &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=13.76716&amp;amp;lat=51.13277&amp;amp;z=13 LFMA] || Aix - Les Milles Airfield || France || Europe || Fully modeled, high resolution textures &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=0.08816&amp;amp;lat=49.53404&amp;amp;z=13 LFOH] || Le Havre Octeville Airport || France || Europe || Fully modeled, high resolution textures &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=5.36736&amp;amp;lat=43.50499&amp;amp;z=13 LFPG] || Charles de Gaulle International Airport || France || Europe || Fully modeled, very detailed, high resolution textures &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=2.60632&amp;amp;lat=48.89629&amp;amp;z=13 LFPH] || Chelles Le Pin Airport || France || Europe || Fully modeled, high resolution textures&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=2.622793&amp;amp;lat=48.822237&amp;amp;z=13 LFPL] || Lognes Emerainville Airport || France || Europe || Fully modeled, very detailed, high resolution textures&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=2.359443&amp;amp;lat=48.72551&amp;amp;z=13 LFPO] || Paris-Orly Airport || France || Europe || Fully modeled, very detailed, high resolution textures&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=2.073197&amp;amp;lat=48.810622&amp;amp;z=13 LFPZ] || St-Cyr-l’École Airport || France || Europe || Fully modeled, very detailed, high resolution textures&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-4.41785&amp;amp;lat=48.44413&amp;amp;z=13 LFRB] || Brest Bretagne Airport || France || Europe || Modeled airport with static models&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-4.15167&amp;amp;lat=48.53014&amp;amp;z=13 LFRL] || Lanvéoc Naval Air Base || France || Europe || Airport fitted with shared models (for helos and training)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-4.15167&amp;amp;lat=48.53014&amp;amp;z=13 LFRJ] || [[Landivisiau Naval Air Base]] || France || Europe || Modeled airport with arresting cables and [[Signs]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-4.167981&amp;amp;lat=47.97553&amp;amp;z=13 LFRQ] || Quimper || France || Europe ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-3.816762&amp;amp;lat=48.601247&amp;amp;z=13 LFRU] || Morlaix || France || Europe ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-2.736754&amp;amp;lat=47.717558&amp;amp;z=13 LFRV] || Vannes || France || Europe || Airport fitted with shared models&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-3.439579&amp;amp;lat=47.760964&amp;amp;z=13  LFRH] || Lorient - Bretagne Sud || France || Europe ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-3.439579&amp;amp;lat=47.760964&amp;amp;z=13 LFSB] || [[EuroAirport Basel-Mulhouse-Freiburg|Basel Mulhouse]] || Switzerland || Europe || Nice modelling of Terminal.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| LILN || Venegono Airport || Italy || Europe || Developed airport&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| LILQ || Massa Cinquale Airport || Italy || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| LILV || Valbrembo Airport || Italy  || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| LIMC || Milano-Malpensa Airport || Italy  || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=9.70741&amp;amp;lat=45.66952&amp;amp;z=13 LIME] || [[Orio al Serio Airport]], Bergamo || Italy || Europe || Fully modeled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=9.27521&amp;amp;lat=45.44776&amp;amp;z=13 LIML] || [[LIML|Milano-Linate Airport]] || Italy || Europe || Fully modeled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=7.36789&amp;amp;lat=45.73857&amp;amp;z=13 LIMW] || Aosta Airport || Italy || Europe || Fully modeled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=14.26&amp;amp;lat=50.100833&amp;amp;z=13 LKPR] || [[Václav Havel Airport Prague]] (Ruzyne) || Czech Republic || Europe || Fully modeled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=11.34397&amp;amp;lat=47.26023&amp;amp;z=13 LOWI] || [[Innsbruck Airport]] || Austria || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| LROP || Bucharest Otopeni || Romania || Europe || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| LSGG || Geneve (Cointrin) Airport || Switzerland || Europe || Fully Modelled. OSM2city available on https://github.com/FGMEMBERS-SCENERY/LSGG-fg-CustomScenery&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| LSGS || Sion Airport || Switzerland || Europe || Basic development only&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| LSZB || Bern-Belp Airport || Switzerland || Europe || Basic development only&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PANC || Ted Stevens Anchorage International Airport || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=136.80541&amp;amp;lat=34.85841&amp;amp;z=13 RJGG] || [[Chūbu Centrair International Airport]] || Japan || Asia || Detailed airport buildings, taxiway layout and customized terrain.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=139.78114&amp;amp;lat=35.5533&amp;amp;z=13 RJTT] || [[Tokyo Haneda International Airport]] || Japan || Asia || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=126.45051&amp;amp;lat=37.46909&amp;amp;z=13 RKSI] || Seoul Incheon Airport || South Korea || Asia || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=121.01349&amp;amp;lat=14.51024&amp;amp;z=13 RPLL] || Manila Aquino Airport || Philippines || Asia || Tower and three large terminals&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SAEZ || Aeropuerto Internacional Ministro Pistarini || Argentina || America || Several static buildings&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| [[SVMI]] || Aeropuerto Internacional Simon Bolivar || Venezuela || America || Several static buildings&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TAPA || V.C. Bird Intl Airport || Antigua and Barbuda || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TDPD || Melville Hall Airport || Dominica || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TFFF || Martinique Aimé Césaire International Airport || Martinique, France || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TFFG || Grand Case Airport || St. Maarten, Netherlands || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TIST || Cyril E. King Airport || US Virgin Islands || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TJSJ || Luis Muñoz Marín International Airport || Puerto Rico || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TKPK || Robert L. Bradshaw International Airport || St. Kitts || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TNCM || [[Princess Juliana International Airport]] || St. Maarten, Netherlands || America || Fully modeled, customized terrain&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TNCS || Juancho E. Yrausquin Airport || Saba || America || Fully modeled&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TQPF || Clayton J. Lloyd International Airport || Anguilla || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-49.17201&amp;amp;lat=-25.53101&amp;amp;z=13 SBCT] || Afonso Pena International Airport || Brazil || South America || 3D Fully modeled - Download [http://djrick1.wix.com/grupofgbr/aeroportos#!__aeroportos Site Group FGBR]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-46.65768&amp;amp;lat=-23.62558&amp;amp;z=13 SBSP] || Congonhas Airport || Brazil || South America || 3D Fully modeled - Download [http://djrick1.wix.com/grupofgbr/aeroportos#!__aeroportos Site Group FGBR]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-46.46864&amp;amp;lat=-23.43351&amp;amp;z=13 SBGR] || Guarulhos International Airport || Brazil || South America || 3D Fully modeled - Download [http://djrick1.wix.com/grupofgbr/aeroportos#!__aeroportos Site Group FGBR]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-48.54304&amp;amp;lat=-27.6685&amp;amp;z=13 SBFL] || Hercílio Luiz International Airport || Brazil || South America || 3D Fully modeled - Download [http://djrick1.wix.com/grupofgbr/aeroportos#!__aeroportos Site Group FGBR]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| SKRG || Jose Maria Cordoba International Airport, Rionegro, Antioquia || Colombia || South America || Fully Modelled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| VIDP || Indira Gandhi International Airport || India || Asia || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=89.42272&amp;amp;lat=27.39994&amp;amp;z=13 VQPR] || [[Paro Airport]] || Bhutan || Asia || Terminal, Buildings, Refernce Points and other POIs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=91.50917&amp;amp;lat=27.25961&amp;amp;z=13 VQ10] || [[Yongphulla Airport]] || Bhutan || Asia || Terminal, some other Buildings &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=113.9183&amp;amp;lat=22.308&amp;amp;z=13 VHHH] || Hong Kong International Airport || Hong Kong || Asia || Terminals, control towers, some other buildings &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-81.41707414&amp;amp;lat=41.15689289&amp;amp;z=13 1G3] || Kent State University Airfield, OH || USA || America || &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-81.76281774&amp;amp;lat=41.13448335&amp;amp;z=13 1G5] || [[Medina Municipal Airport]], OH || USA || America || &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-81.24620281&amp;amp;lat=41.20973295&amp;amp;z=13 29G] || Portage Co, OH || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-90.13769&amp;amp;lat=43.83872&amp;amp;z=13 82C] || Mauston-New Lisbon Union Airport, WI || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-89.02545&amp;amp;lat=44.50485&amp;amp;z=13 68C] || Iola Central County Airport, WI || USA || America || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [https://scenery.flightgear.org/map/?lon=-123.00815977&amp;amp;lat=43.93009927&amp;amp;z=13 77S] || Hobby Field, Creswell, OR || USA || America || Nearly complete: Hangars (one accidently missing), fuel pump, GA aircraft, cars, trees, bushes (shared models)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Authors ==&lt;br /&gt;
&lt;br /&gt;
Airports by HerbyW in Yakutia, Irkutsk and Krasnoyarsk:&lt;br /&gt;
UIBB UEEE UEST UEMS UEBN UEBT UEWD UEMA UERR UEMT UEEA UEMU UIII UITT UEBB UEVV UENW UEMO UERL UERT UEMH UERO UERP UNAA UIUN UENN UIBV UNCC UEMJ&lt;br /&gt;
&lt;br /&gt;
Airports by D-ABBA:&lt;br /&gt;
EDXW,EDFE,EDGS,EDFQ,EDFH,EDFL,EDFO,ED03&lt;br /&gt;
&lt;br /&gt;
Airports by [[User:Laserman]]:&lt;br /&gt;
EDDG,EDLM,EDLB,EDLK,EDLN,EDLV,EDLW,LJLJ,LJAJ,LJSG,LJCE,LJPZ &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [http://iveze.nl/fgmap/ Builtup airports in Flightgear] – Interactive world map by KL-666. ''See also related forum topic [http://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=23613 Map of airports with buildings in terrasync].''&lt;br /&gt;
&lt;br /&gt;
{{Suggested}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Lists]]&lt;br /&gt;
[[Category:Airports]]&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Using_OSM_Vector_Data_in_FlightGear&amp;diff=106420</id>
		<title>Using OSM Vector Data in FlightGear</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Using_OSM_Vector_Data_in_FlightGear&amp;diff=106420"/>
		<updated>2016-12-27T18:19:52Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: /* Power Lines (vanosten, owenpsmith, Soitanen) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{OSM Navigation}}&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
This is referring to procedural/autogen scenery generation/enrichment (buildings, cities, roads, bridges and power lines) via OSM data.&lt;br /&gt;
&lt;br /&gt;
Actually, using OSM data isn't really conflicting with &amp;quot;autogen&amp;quot; at all - it just requires the built-in autogen component to expose an interface, so that the placement heuristics can be affected according to the OSM vector data. &lt;br /&gt;
&lt;br /&gt;
After looking at the website, I do understand that the approach taken by OSM2XP is a little different, in that it creates the buildings externally and then provides precompiled scenery for use by XP (?) - obviously, that is because OSM2XP is an external tool, written in Java.&lt;br /&gt;
&lt;br /&gt;
That's actually similar to how FlightGear uses precompiled scenery which is created using TerraGear. XPlane on the other hand, creates airports, runways and taxiways procedurally at runtime.&lt;br /&gt;
&lt;br /&gt;
We previously talked about exposing the placement heuristics, so that a Nasal script could affect the placement algorithm in some way - once that is supported, a Nasal script could place buildings while honouring OSM vector data.&lt;br /&gt;
The probem is that (as usual) people pull into different directions.&lt;br /&gt;
&lt;br /&gt;
Actually, we've seen a number of related developments - such as IntelQube's &amp;quot;Instant City&amp;quot; addon, or the more recent effort by Rickbritto. So people are clearly interested in this.&lt;br /&gt;
Like Thorsten also rightly pointed out, people are pulling into different directions, which are unfortunately somewhat conflicting. But overall, it's pretty obvious that people are interested in extending the scenery and populating it with buildings in particular.&lt;br /&gt;
&lt;br /&gt;
Stuart has a 'random with certain moderately simple rules' algorithm with the aim to be as fast as possible without generating nonsense like overlapping or floating buildings. This probably means you can't have fancy night illumination, too much individual configuration or realistic arrangements beyond a point, and all placement info is encoded in the texture sheet (that's not a bad feature, because that means random buildings stay in sync with the underlying sheet!)&lt;br /&gt;
&lt;br /&gt;
We've seen quite a few people working on this independently in 2013 and making very promising progress in different fields.&lt;br /&gt;
Many of them being contributors able to build from source, and able to write C++ code.&lt;br /&gt;
TorstenD mentioned a while ago, that he was also considering porting PixelCity to use Stuart's random buildings system (and thus, OSG) for these purposes.&lt;br /&gt;
Now, we also have osgEarth as a secondary scenery engine, so it makes sense to coordinate things accordingly.&lt;br /&gt;
&lt;br /&gt;
Besides, we also have guys working on improved generation of procedurally-created vegetation, road networks, bridges and buildings/cities, which are other areas that could greatly benefit from a little coordination with osgEarth support in FlightGear, to ensure that a generic approach is found over time and to avoid a &amp;quot;technology lock-in&amp;quot;, like some people are complaining about related to Rembrandt.&lt;br /&gt;
&lt;br /&gt;
Please see thee ongoing discussion at: http://wiki.flightgear.org/User_talk:F-JJTH#Implement_an_OSM_client_in_FG&lt;br /&gt;
&lt;br /&gt;
The main point being that we should work out a way to expose the underlying APIs to FG, so that these can be used as the common back-end for OSM vector data access (probably via Tom's cppbind) - so that related efforts can benefit without having to duplicate work, and without having to use approaches that are not native to FG (such as python code).&lt;br /&gt;
&lt;br /&gt;
As could be seen in 2013, we have an unprecedented number of people interested in this currently, who are able to contribute to the code  - so if we could coordinate this a little, this could work out as well as the NavDisplay effort, which had a similar amount of people interested in related things.&lt;br /&gt;
&lt;br /&gt;
We now have so many people doing work related to this, that the wiki is the only sane place to coordinate things - because some use the devel list, others only the forum - and others only IRC ... so better use the wiki for now.&lt;br /&gt;
&lt;br /&gt;
Also, the wiki is the only future-safe method to organize things, in case we need to drop the effort for a &amp;quot;while&amp;quot; (weeks, months or years).&lt;br /&gt;
&lt;br /&gt;
== Objective ==&lt;br /&gt;
&lt;br /&gt;
Any OSM-processing should ideally be exposed via FG APIs, so that OSM data can be processed by other subsystems (either via fgcommands, extension function or cppbind), to ensure that we cannot just visualize OSM data using the Canvas, but also use it affect the placement heuristics in [[Random Buildings]] according to Stuart's plans [http://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=17598#p166794] or interface OSM with osgEarth.&lt;br /&gt;
&lt;br /&gt;
== Status (01/2015) ==&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  | I've been working on a tool that combines all the static models within a .stg file into a single .osgb file using quadtrees, texture atlases etc. to make it as efficient as possible.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=229623#p229623&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;stgmerge&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;stuart&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Tue Jan 13&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I've written a little tool that&amp;lt;br/&amp;gt;&lt;br /&gt;
does the following:&amp;lt;br/&amp;gt;&lt;br /&gt;
1) Loads all the .ac files in the STG file passed in as an argument&amp;lt;br/&amp;gt;&lt;br /&gt;
2) Runs the osgUtil::Optimizer to merge all the textures together, build a&amp;lt;br/&amp;gt;&lt;br /&gt;
quad tree and optimize the meshes&amp;lt;br/&amp;gt;&lt;br /&gt;
3) Outputs the result as a native osg format (.osgb)&amp;lt;br/&amp;gt;&lt;br /&gt;
4) Writes a new STG file with the .ac model references removed, and the&amp;lt;br/&amp;gt;&lt;br /&gt;
.osgb file added.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
The idea is that this could be used within our scenery generation toolchain&amp;lt;br/&amp;gt;&lt;br /&gt;
to generate a more efficient set of static tile objects.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/33230184/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] STG model merge tool&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Stuart Buchanan&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2015-01-13&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The main benefit of this is that it would allow the output of osm2city to be uploaded into the scenery object database and distributed via Terrasync.  At the moment this isn't possible because the database requires models to be uploaded individually, and the large number of individual models produced by osm2city (unless various combine options are enabled) has too much performance impact.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
This would also allow random buildings to be generated offline and stored in the scenery object database as well, which was the original trigger for writing the tool.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=229623#p229623&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;stgmerge&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;stuart&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Tue Jan 13&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |The idea is that this tool would be run on the scenery server itself so the data downloaded via terrasync would already be merged.  &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
It would probably be fast enough to run at runtime, but doing so is complicated by the deferred loading we have in place within FlightGear which means that not all models are loaded at once.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Doing it on the scenery server also saves some CPU time on the user's computer.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
osm2city would then revert to creating individual models, and get them added to the scenery DB.  I think we'd want to tag them so they can be easily replaced by subsequent runs of osm2city.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=229644#p229644&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: stgmerge&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;stuart&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Tue Jan 13&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |There's still a place for random buildings, but I think they would be generated offline and similarly placed in the scenery DB.  PostGIS has the function available that would allow us to easily generate building locations based on the OSM street data.  We'd probably move away from the shader-based instantiated buildings and instead just have big meshes.  This has the advantage of allowing collision detection, helicopter landing etc. but obviously uses more memory.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=229644#p229644&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: stgmerge&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;stuart&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Tue Jan 13&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |I'd like to try to initiate a strategy discussion about how we should handle cities in the future. Right now, there's tools like osm2city.py, there's the urban shader, there are random buildings, there are static buildings (Paris...), there's streets painted on the texture, streets as part of the vector mesh and (experimental) streets draped onto the terrain....&lt;br /&gt;
Which is fine as long as these approaches aren't mutually exclusive, but unfortunately we left that state, so I think we should eventually have a strategy how to proceed.&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/33054935/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;[Flightgear-devel] Future city terrain strategy (see full posting)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Renk Thorsten&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-11-19&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Moving to ‘real’ OSM data for this seems the best plan - for all the reasons you list. It also have a very nice ‘user upgrade path’ - not enough buildings in your area? Submit them to OSM!&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
I would prefer to avoid hardcoding a distinction at scenery creation time - actually I’d be looking to go the other way, and have road data and building data be fetched at runtime + cached directly. So if you disable buildings, they aren’t fetched. This would bring the tile complexity (vertex count) right down, since we also have to do flattening of the terrain for buildings / roads at runtime. (We could still include the road/building data in the scenery dirs, but separate from the BTG).&lt;br /&gt;
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/33055284/&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] Future city terrain strategy (see full posting)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;James Turner&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;2014-11-19&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you are interested in pre-processing and enriching vector data, you'll probably want to get in touch with some of the other folks who have done similar things, such as the osm2xp project.&lt;br /&gt;
Also, if that's definitely your main interest, you may also want to look at TerraGear, which is the &amp;quot;FG scenery compiler suite&amp;quot; to build scenery.&lt;br /&gt;
&lt;br /&gt;
That said, a &amp;quot;pre-processor&amp;quot; could also be implemented as a native FG component, i.e. within the main fgfs executable - quite probably even as a fully threaded component, so that pre-processing could take place in a simple worker thread using exclusive read/write access.&lt;br /&gt;
&lt;br /&gt;
I'm just saying this because &amp;quot;compiling&amp;quot; scenery from scratch is generally understood not to be a simple task for most people here. In other words, even if you should come up with such an OSM-pre-processor to enrich FG scenery, the resulting data may not be usable by most people - not without an official scenery rebuild at least.&lt;br /&gt;
&lt;br /&gt;
Thus, having a component that would be running inside (or next to) FG would be easier from a deployment point of view.&lt;br /&gt;
&lt;br /&gt;
== Efforts ==&lt;br /&gt;
=== Random Buildings (Stuart) ===&lt;br /&gt;
Stuart is the developer of the random buildings code (and the random trees), so he's got plenty of experience with procedural creation of scenery elements.&lt;br /&gt;
To understand the C++ side of things, you'll definitely also need to be familiar with OpenGL and preferably OSG, i.e. 3D graphics and 3D maths.&lt;br /&gt;
But even if that's not your thing, reusing Stuart's code to the largest possible degree would definitely be a good idea, because he's already tackled many of the difficult issues - and creating an interface (scripting or property tree) is definitely simpler than writing such a system from scratch.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
FlightGear's random building code is implemented as part of the SimGear library, in the tgdb folder: {{simgear source|path=simgear/scene/tgdb}}&lt;br /&gt;
The most important file is SGBuildingBin.cxx: {{simgear source|path=simgear/scene/tgdb/SGBuildingBin.cxx}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Probably the best way to do this would be to separate the &amp;quot;random&amp;quot; from the &amp;quot;buildings&amp;quot; in the curent random buildings, and use the OSM data as an alternative data source for the latter.&lt;br /&gt;
&lt;br /&gt;
However, before we do that I need to get the PageLOD working well enough that I can replace the (relatively) memory efficient instantiation approach with the original memory-heavy implementation of random buildings which allows better control over each individual building.&lt;br /&gt;
&lt;br /&gt;
I'd suggest to get in touch with TheTom or Zakalawe and use TheTom's cppbind framework (see simgear/nasal/cppbind) to expose the building generation hooks to scripting space, that would then allow arbitrary input data to be used.&lt;br /&gt;
&lt;br /&gt;
=== Random Buildings Scripting Interface (Hooray, Thorsten) ===&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |let's assume that downloading the footprint of an airport terminal building from OSM/overpass turbo is fast enough.&amp;lt;br/&amp;gt;&lt;br /&gt;
Can Nasal create an object and put into the scenery in RAM/on the fly without writing an .ac file to the filesystem ?&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=228150#p228150&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;create terminal buildings with Nasal ?&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;pommesschranke&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Fri Dec 26&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
This would require some form of interface, so that stuart's random buildings can be aligned using networks of roads, rivers, railway tracks - like Gijs said, the randomness would be gone then&lt;br /&gt;
&lt;br /&gt;
'''Hooray:''' we have had a fair share of discussions related to this. Stuart's work has certainly paved the way for even more improvements.&lt;br /&gt;
Like I mentioned, I would be interested in exposing the creation of procedural scenery to scripting space (or even just the property tree) so that customizing this aspect of FG is no longer possible purely from C++ space.&lt;br /&gt;
&lt;br /&gt;
it would be great to have a way to dynamically assemble buildings and blocks of buildings and then combine them into a single geometry, so that the performance hit is decreased. But that would obviously require exposing some more hooks to Nasal scripts.&lt;br /&gt;
&lt;br /&gt;
Now, what Stuart has done already addresses the needs in C++ space.&lt;br /&gt;
Adding a Nasal interface to existing C++ code is much easier that way, and certainly easier than creating the whole thing from scratch.&lt;br /&gt;
&lt;br /&gt;
And have better access to the placement heuristics, or rather the underlying criteria would be great. That's not just related to &amp;quot;materials&amp;quot; anymore, but also access to &amp;quot;ground networks&amp;quot;, such as roads, rivers, railways.&lt;br /&gt;
&lt;br /&gt;
The good thing is, adding a Nasal interface to make existing C++ code accessible is fairly trivial and much simpler than writing the original backend code. And this is clearly not a task that needs to be done by the developer of the original C++ code, as can be seen by all the existing Nasal extension functions, most of which were added by people who didn't really write the corresponding backend code.&lt;br /&gt;
&lt;br /&gt;
A Nasal script that may query a scenery tile and get detailed information on these properties, could come up with the heuristics to place models realistically.&lt;br /&gt;
Coming up with the models procedurally would be a different matter.&lt;br /&gt;
But it seems, Stuart has addressed this already in OSG space. So the really difficult work has probably already been done. &lt;br /&gt;
Coming up with an interface to access his code from scripting space should be simpler than writing his code from scratch.&lt;br /&gt;
&lt;br /&gt;
Hooray and Thorsten have some more involved dynamical city-building scheme in mind - finding an algorithm which dynamically generates a street pattern and places a plausible mockup of a city dependent on its knowledge of the underlying terrain. Much of the performance here depends on what models are placed - if models without an xml wrapper are used, it's going to be relatively fast, if not, then not. That's different from the situation with weather where we could never use models without xml wrapper, because the rotation effect needed to be declared there (merging the models to a whole block is also important though).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
How about instead of texturing urban areas and towns, generating &amp;quot;fake roads&amp;quot; with modular blocks of buildings and trees?&lt;br /&gt;
&lt;br /&gt;
For instance, in the western USA you could generate a grid pattern for cities and towns and populate the grids with buildings using a formula.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* it is possible to use various landclasses to distinguish parts of a city in custom scenery&lt;br /&gt;
* that a prototype for autogenerating a city based on these landclasses in Nasal is feasible&lt;br /&gt;
* that both myself and Hooray would help with the coding&lt;br /&gt;
* i.e. that there's a clear and well-defined path from a wish to reality here at the simple expense of doing it&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In Nasal, one could:&lt;br /&gt;
&lt;br /&gt;
* use random geodinfo(); calls across the terrain to find spots where the terrain is urban (or otherwise interesting&lt;br /&gt;
* call an autogeneration algorithm from that point to fill the whole urban region by&lt;br /&gt;
** first creating a street pattern by means of an algorithm (European cities are not much more difficult - you just take a grid and allow for random distortions of the intersections and curvature of the streets, that should be pretty good already)&lt;br /&gt;
** sample terrain while you do this - elevation and especially the presence of rivers alter the pattern&lt;br /&gt;
** then determine what kind of quarter you're trying to build&lt;br /&gt;
** then place buildings next to your streets, orienting them properly&lt;br /&gt;
** throw parks, gardens and so on for good measure&lt;br /&gt;
* do this till you hit the edge of the urban region&lt;br /&gt;
* then go looking for the next&lt;br /&gt;
* have a housekeeping routine in the background which deletes models which are too far away&lt;br /&gt;
&lt;br /&gt;
Too large modular blocks are actually a problem, because they create floating buildings wherever the terrain isn't level. So ideally you'd design the autogeneration with just single buildings as blocks and put the information which buildings are typically adjacent and how they typically arrange into your algorithm (it's a lot like clouds actually - Local Weather could create you a slightly randomized m x n grid of buildings clipped where the urban terrain ends with a higher city center region and lower surroundings with less than 100 lines of additional code, provided you have the models - the real work would be to get it to do European placement patterns, but the functions to do that are probably not as complicated as credible undulatus patterns).&lt;br /&gt;
&lt;br /&gt;
=== PixelCity (Hooray, TorstenD) ===&lt;br /&gt;
Once you do take a look, you'll also find a number of threads related to the open source PixelCity project, which uses a fixed rendering pipeline (i.e. no shaders) - but which is nonetheless extremely impressive. Like Torsten mentioned a while ago, this would need to be ported to OSG (and shaders) to be usable in FG, but this could probably be done by merging it with Stuart's code, because that's a very good (and &lt;br /&gt;
working!) example of how the FlightGear/SimGear side of things works.&lt;br /&gt;
&lt;br /&gt;
It really looks cool from the distance and close up. &lt;br /&gt;
Implementing it into FlightGear requires porting the OpenGL calls to be OpenSceneGraph compatible, probably by implementing osgDrawable.&lt;br /&gt;
The current implementation only shows night-time views, so this has to be tweaked, too.&lt;br /&gt;
Another issue to take care of is interaction with existing scenery models, so the generated buildings do not interfere with our scenery models. The same is true for our landcover, roads and elevation data. &lt;br /&gt;
Definitely worth some thinking. Probably as a google summer of code&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also see [[AutoGen Scenery for FlightGear]].&lt;br /&gt;
&lt;br /&gt;
=== osgEarth (poweroftwo &amp;amp; stuart) ===&lt;br /&gt;
&lt;br /&gt;
'''stuart:'''Random object generation.  osgEarth provides OSM building data, which&lt;br /&gt;
it makes sense to leverage, but for other areas of the planet it would be&lt;br /&gt;
good to be able to use our random buildings/objects, and I'd really like&lt;br /&gt;
to be able to generate random trees.&lt;br /&gt;
&lt;br /&gt;
=== OSM &amp;amp; Canvas (TheTom) ===&lt;br /&gt;
TheTom is also working on something to show tilemaps inside a canvas. I've now pushed a function to fgdata ({{gitorious source|proj=fg|repo=fgdata|commit=41b6c9c688ce78d8c907a07c42b9ea4d8290da0c|view=commit}}) which allows building templates for the tile urls.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also see [https://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38354.html Canvas &amp;amp; Tiled Maps ] Note that osgEarth will probably soon be linked into FG by default according to [http://sourceforge.net/p/flightgear/mailman/flightgear-devel/thread/CAP3ntysiT0x-Fd_xN%2BS4qqSV%2BDwh7FNk%2BMj7BeHhmz-FB%2B5y9w%40mail.gmail.com/#msg31901878], which means that GDAL/OGR can be relied upon, i.e. supporting GeoTIFF processing would be another useful option for any mapping/charting needs implemented via Tom's Canvas system. &lt;br /&gt;
&lt;br /&gt;
=== Procedural Airports (psadro_gm, zakalawe, papillon81) ===&lt;br /&gt;
As was said previously, X-Plane has been doing that for years - and meanwhile we may have the computing power (and idle cores!) to actually sonsider doing that in FG, too. So it would be a great addition and would quite certainly lower the entry barrier for people doing scenery development if airport changes became directly visible without having to go through the hassle of running TG tools.&lt;br /&gt;
&lt;br /&gt;
fully dynamically created airports is another really long-standing scenery related idea, that's been discussed among core developer on and off for over a decade already, including David Megginson and Andy Ross&lt;br /&gt;
&lt;br /&gt;
http://forum.flightgear.org/viewtopic.php?p=176132#p176151&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
What about a purely symbolic representation? Store just centerline&lt;br /&gt;
and width for each taxiway, and keep the existing polygonal&lt;br /&gt;
representation for &amp;quot;tarmac&amp;quot; areas. Throw out the &amp;quot;pre-cut&amp;quot; airport&lt;br /&gt;
&lt;br /&gt;
This means that the tile loader will be forced to do some&lt;br /&gt;
computational geometry at load time to decide on the actual polygons&lt;br /&gt;
to be rendered by OpenGL. But that's not likely to be too much --&lt;br /&gt;
even the biggest airpots have no more than 30 taxiways with no more&lt;br /&gt;
than ~4 curves on each. Figure an individual curve has no more than&lt;br /&gt;
10 segments, with 6 polygons for each segment (two yellow paint, four&lt;br /&gt;
pavement). So that's a few thousand polygons generated and intersect&lt;br /&gt;
per airport loaded. Not so bad, really -- note that because it can&lt;br /&gt;
happen in the loader thread, and therefore make good use of the&lt;br /&gt;
multi-dispatch multi-core CPUs that are becoming so popular these&lt;br /&gt;
days.&lt;br /&gt;
&lt;br /&gt;
The biggest advantage is that (if you do it with the runways too) it&lt;br /&gt;
means that the airports can be generated at runtime and edited by the&lt;br /&gt;
user without doing a terragear scenery regeneration.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
we already have all the data to generate the ground polygons, inside FlightGear - that's exactly how the airfield chart / ground-radar work. And we can do it adaptively (more bezier interpolation on faster machines) and also get airports editable in mostly-realtime (unless the airport boundary changes).&lt;br /&gt;
&lt;br /&gt;
The trick is to make an OSG 'loader' which creates the airport geometry from the apt.dat definitions, which of course is exactly what genapts does - this is why I was working with Chris to make it fast enough to run inside the loader thread, in FG.&lt;br /&gt;
I'd love to fully generate the apts at runtime. LEMD is probably the most complex layout, and genapt currently takes about 2.5 seconds to generate. I imagine it could be generated in 2 stages for LOD. 1 for runways and taxiways, which are really quick, the 2nd stage for the line data which is slower.&lt;br /&gt;
&lt;br /&gt;
'''psadro_gm:'''Although I haven't written a line of code in SimGear for draping, yet - I'm getting a pretty good idea on how it will work. I think we could speed up the OBJECT_STATIC_AGL using the envisioned draping code.&lt;br /&gt;
&lt;br /&gt;
Currently, when a tile loads, it first gathers the type of objects in the tile. If there is a draped object, I plan on keeping raw btg data (nodes and triangles) around. I need the Geodetic nodes, unfortunately for proper draping, so I'm going to have to create a parallel node list Cartesian -&amp;gt;Geodetic. The triangles are all index based anyway, so we'll just refer to the Geodetic nodes when using these triangles.&lt;br /&gt;
&lt;br /&gt;
A draped object's 2D bounding box will be used to quickly find the relevant triangles (using the geodetic nodes long/lat) that need to be considered, then I plan to use barycentric interpolation to find node heights at specific lat/long coordinates. This node will then be converted back to Cartesian space.&lt;br /&gt;
&lt;br /&gt;
=== Procedural Buildings &amp;amp; Cities (radi &amp;amp; vanosten) ===&lt;br /&gt;
Also see [[Osm2city.py]]&lt;br /&gt;
&lt;br /&gt;
'''Zakalawe:'''A thought occurs - this is much more blue-sky, could we run a C++ version of the script in real-time? As an alternative / replacement for random-buildings. This relies on two assumptions: that the input data per tile is sensible sized (tens of kbytes, or worst case a hundred for centre of really built up city), and that the script could run in 'almost real time' on the OSG Pager thread.&lt;br /&gt;
&lt;br /&gt;
So we'd add the outline data as an additional file in each Objects/foo/foo/dir, and if this mode is enabled, look for the file and run the buildings creation script at that time.&lt;br /&gt;
&lt;br /&gt;
'''Radi:''' focused on OSM buildings/bridges in the past, but is now interested in procedural city generation in general. OSM xml data for LOWI region alone is 50 MB. Might be a bit heavy a download for some users. Radi discussed this with James at FSweekend last year: we could pre-process OSM data, extract what's useful for us, and ship the outcome with our scenery. OSM buildings for LOWI would then add perhaps 1MB or so. OTOH, if this is generated at run-time (and then cached), users could decide themselves if/what OSM features they wish/can afford.&lt;br /&gt;
&lt;br /&gt;
I like the idea of having this generated at run-time, and I'm quite sure a c++ version could be fast enough. Raw OSM input data is too big (50 MB for LOWI), but that a) includes *everything* and b) is xml. &lt;br /&gt;
&lt;br /&gt;
But storing pre-processed data could be an option. A typical scene now easily contains 50k buildings. Reducing that to, say, 10k, should fit into well under 1MB. And of course I could modify the script to generate that outline data. Perhaps we can come up with a spec of the outline data at FSweekend.&lt;br /&gt;
&lt;br /&gt;
I wrote a similar script recently, using python. Got Dresden (EDDC) area populated with some 20,000 buildings from OSM. There is some frame rate impact, but I still get ~20fps on an i5-2500k/GeForce 650TI/Ubuntu.&lt;br /&gt;
&lt;br /&gt;
I put all buildings in one .ac file. Loading time is pretty quick, maybe some 5 seconds more than the default scenery. I pre-calculate the elevation: I extract the elevation on a rectangular grid (10m step size) from FG in the relevant area once using a slightly modified version of http://wiki.flightgear.org/Howto:Get_a_number_of_elevation_offsets_for_a_number_of_objects. Then the script loads the elevation data, and linearly interpolates elevation at the buildings positions.&lt;br /&gt;
&lt;br /&gt;
Some facade texturing is also done. Roof geometry and texturing is still work in progress&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''vanosten:''' &lt;br /&gt;
So the idea would be to procedurally generate buildings based on OSM data (not uploading to OSM!) based on other OSM data like streets, area classifications, ... I thought of enriching offline OSM data with buildings - which could then in a later step be used to actually generate buildings in Flightgear (or X-Plane with http://osm2xp.com/). Due to differences in landuse patters between e.g. cnetral Europe and USA the algorithm would naturally have to be configurable - however somewhere we need to start.&lt;br /&gt;
&lt;br /&gt;
Would that be a good idea? Has this already been attempted (I mean based on OSM data, not generic procedural cities)?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I first let bob.pl generate all *.ac files and *stg entries. Then I parse the *.stg files for lines starting with OBJECT_STATIC, get out the lat and long, set the properties, wait 1 second and then get /position/ground-elev-m, which I write back to the file (instead of -9999).&lt;br /&gt;
&lt;br /&gt;
I understand there are advantages to do stuff on the fly - it might be even faster to do calculations than reading detailed info like ac-files from the file system. However I wonder whether it really is the same thing that people try to accomplish. Together with Radi I want with osm2city make a plausible world, which satisfies also someone on sightseeing with a helicopter, who knows the area. The other is generating a plausible world. The first one needs a lot of parametrization and logic on a per object level. If the first one can be satisfied with on-the-fly processing, then I would look into porting code to C++ and learning C++. If not, then potentially we should leave the initiatives apart?&lt;br /&gt;
&lt;br /&gt;
I agree that we might have to go with less details and a few / couple of buildings - maybe even replacing existing OSM floorplans in place. It is not about matching reality - it is about making something that looks realistic. &lt;br /&gt;
I have built some paper based algorithms and the next thing is to try the stuff in programming. I will most probably go for a Java based prototype using the JTS Topology Suite library.&lt;br /&gt;
If the prototype prooves sucessful and estimates for the next step do not look too bad, then I need to take a decision with your input, whether to port it to C++ / GEOS or C++ / Simgear. However this would mean that i need to learn C++.&lt;br /&gt;
&lt;br /&gt;
I finally got bob.pl working using a custom Java program, which also reads the height to place the buildings (I will share the java program once it works outside Eclipse without hassle). Basically I now have 9000 objects around LSZR at the lake of Constance in Switzerland. See following image (which looks good, but which I think still shows a case for intelligently generating all those buildings, which are not yet in OSM datasource).&lt;br /&gt;
&lt;br /&gt;
9000 objects means 9000 *.ac files - a lot of which could be reduced to a few, if objects would be intelligently replaced by shared objects (e.g. for residential houses, not so much for other buildings). Which leads to the following questions:&lt;br /&gt;
* Right now startup is very slow due to scenery loading. Would the startup be significantly (linearily) be faster, if e.g. 60-70% of the buildings were shared buildings?&lt;br /&gt;
* At night all the buildings generated by bob.pl are without lights. Could that be changed or would that again be a case for using shared buildings?&lt;br /&gt;
* bob.pl is written in Perl FG is written in C++. Is there a policy against writing some of the scenery tools in e.g. Java, if one would like to contribute?&lt;br /&gt;
* A previous post by Soitanen in this thread used OBJECT_STATIC_AGL to dynamically get the height over sea level for the buildings. However I guess that precalculating during scenery generation is worth the hassle in order to reduce CPU?&lt;br /&gt;
&lt;br /&gt;
=== cppbind &amp;amp; Nasal ===&lt;br /&gt;
I think C++ is not the problem, we have some really experienced C++ developers interested in working with OSM data,&lt;br /&gt;
such as psadro_gm, zakalawe, papillon81 and TheTom. And these guys not only know C++ already, but are also familliar with SimGear ,FlightGear and TerraGear.&lt;br /&gt;
&lt;br /&gt;
So the C++ part can be handled by them - these guys want to use the same data in FG for similar purposes.&lt;br /&gt;
So it makes sense to let them handle the C++ side of things.&lt;br /&gt;
&lt;br /&gt;
Now, what could be done instead of requiring use of Perl, Python or Java is this: We now have a new framework which is called &amp;quot;cppbind&amp;quot;. This was added by TheTom, as part of the Canvas effort.&lt;br /&gt;
This framework can be used to expose C++ code to Nasal, so that you can do the same things in Nasal that you would normally use Perl, Python or Java for.&lt;br /&gt;
&lt;br /&gt;
A similar method is used by Thorsten's weather system: all the important (performance-critical stuff) is handled by C++ developers and code that they have written, and there are just some special, new, commands/classes added that can be called from Nasal, and which will directly call the C++ code, to speed up things.&lt;br /&gt;
&lt;br /&gt;
This could be also done here - the C++ guys would handle the C++ side of things, and merely expose these functions and classes via Nasal scripting - in FG, we could then directly use Nasal code to access OSM vector data, and use it to procedurally modify and add to the scenery - no matter if it's buildings, cities, rivers, roads, powerlines or bridges. &lt;br /&gt;
&lt;br /&gt;
So we really only need cppbind bindings to expose some OSM specific stuff to scripting space (Nasal) - to procedurally add/modify buildings and cities, we should probably reuse Stuart's existing code.&lt;br /&gt;
&lt;br /&gt;
This would mean that people could directly focus on their domains (C++ vs. scripting - and procedural scenery generation)&lt;br /&gt;
&lt;br /&gt;
Also, Nasal itself is actually designed to be thread-safe - so carefully-written Nasal code could in fact interact with the OSG pager thread, or even be running there directly, i.e. we could be running high-performance C++ code there, which is only parameterized via Nasal calls.&lt;br /&gt;
&lt;br /&gt;
===Populate FG world with OSM data (F-JJTH) ===&lt;br /&gt;
F-JJTH's idea here is to populate FG world with OSM data. OSM provides some API for HTTP request ( [http://overpass-turbo.eu] )&lt;br /&gt;
Once data are downloaded we could be able to draw them on-the-fly in FG. In other words: it's similar to the osm2fg but in-live.&lt;br /&gt;
&lt;br /&gt;
BTW, this feature is not at the top of my priority and I would wait the osgEarth integration before all.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Using the HTTP APIs is a bit overlapping with the recent work on HTTP bindings for Nasal via cppbind, but also with poweroftwo's osgEarth integration, which uses curl to provide fully threaded access to this kind of data. Also, Stuart repeatedly mentioned on the forums that he would be supportive of exposing the placement heuristics for his random buildings code-seconded by Zakalawe [http://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=16083&amp;amp;p=192393&amp;amp;hilit=osm2city#p192393], so that these can be affected via corresponding APIs - we've had quite a bit of progress regarding procedural scenery generation in 2013, including buildings &amp;amp; cities (radi, Soitanen/osm2fg) [http://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=19625] [http://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=16083&amp;amp;p=192393&amp;amp;hilit=osm2city#p192393], roads, rivers - even railways (vivian) and procedural bridge generation (radi) [http://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=21061&amp;amp;hilit=bridges], but also procedural power lines (vanosten) [http://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=20665&amp;amp;hilit=osm2city]. In other words, there's some serious -and unprecented manpower- to be leveraged and coordinated here, including quite a few folks who are able to build from source and able to write C++ code. So this deserves being coordinated among all interested parties. And it would clearly make sense not to just expose things to the Canvas system, but to expose the corresponding APIs so that other subsystems and users can access these and use these for the purposes outlined above.&lt;br /&gt;
&lt;br /&gt;
Here is an example: [http://www.youtube.com/watch?v=TK85iSeLrGY]&lt;br /&gt;
&lt;br /&gt;
=== OSM2FG (Soitanen) ===&lt;br /&gt;
This is script, which helps to automate convert landuse, lines, waterway etc data from OSM to FG.&lt;br /&gt;
Git repository located here: [https://github.com/soitanen/osm2fg]&lt;br /&gt;
Also it needs to have custom materials for textured roads and railroads from Project Russia: [https://github.com/soitanen/Project-Russia]&lt;br /&gt;
Currently, this converter works only for Russia and CIS countries.&lt;br /&gt;
&lt;br /&gt;
Workflow:&lt;br /&gt;
Converter must be run from commandline. No GUI is presented. In commandline bounding box for generation is set. Then it automatically download heights (from the same source, as World Scenery 2.0), automatically downloads freshest X-Plane airport base, downloads full world coastlines and regional shapes for different regions of Russia, depending on BBOX. So, if select to generate some terrain outside of Russia, then scenery will be generated as land with normal coastlines and airports. No roads, no landuse.&lt;br /&gt;
In case of acceptable region it automatically makes textured roads and railroads. Mostly number of lines on roads will match real one (if presented in OSM data). Forests, water polygons, water lines - all will be converted good. Also, some simplification will be done for shapes to reduce number of polygons and generating time. If scenery tile is too complex and bugs are appearing, LOD level can be set for generating to reduce number of generated features (on low LOD levels roads with low majority level are not generated, the same for low majority landuse).&lt;br /&gt;
And after all automatic preparations it just runs standard Terragear routine to generate final scenery.&lt;br /&gt;
&lt;br /&gt;
In earlier version there was building generator, that generates each building as single object, but that was too bad for FPS.&lt;br /&gt;
Better way to use osm2city from radi, but I can't automate it because of need to run FG and get elevations for the tile.&lt;br /&gt;
&lt;br /&gt;
using OBJECT_STATIC_AGL gives big slowdown in FG working. So precalculation is much better. How you program gets elevation? Does it use the same data, as TerraGear use for terrain generation?&lt;br /&gt;
&lt;br /&gt;
http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38134.html&lt;br /&gt;
&lt;br /&gt;
=== Power Lines (vanosten, owenpsmith, Soitanen, David.megginson) ===&lt;br /&gt;
&lt;br /&gt;
'''vanosten:'''It is meant to be to support pylons from the shared objects library be placed based on OSM data in Python (extending osm2city).&lt;br /&gt;
&lt;br /&gt;
'''f-ojac:'''Have a look at {{gitorious source|proj=fgscenery|repo=tools|full=1}} too to avoid duplicate work. Power lines are showing in OSM, for instance http://osm.org/go/WJHUyw34-&lt;br /&gt;
For mapserver, yes we'll have to wait a little as there are some prioritary works on. Automated power line object generation from OSM data has already been tested a few years ago. Right now we're trying to make this process rework, with other objects (windturbines, watertowers...) before going into more complicated stuff. Aligning the pylons is also doable, Jon wrote a script on that a few years ago. Now the webforms are done and terrain generation is quite finished, we'll focus on some other nice features.&lt;br /&gt;
&lt;br /&gt;
'''Soitanen:'''data can be taken from OSM - if two power pylons are connected with line tagged power=line, that means there are wires in the air. I think wires can be modeled with one 3D model. It must be some kind of parabolic function, when viewing on it from side. But, if power line is turning, length of wires on one and other side will not be the same. So, script, that will place pylons, must compute attaching point for wires and place 3D model in needed place with needed scale.&lt;br /&gt;
&lt;br /&gt;
'''Hooray:'''You can do that procedurally even without touching TerraGear or 3D modeling - e.g. by using a Nasal script that uses the OSM data to add those lines to the scenery - you would look up height/elevation, distance and connection points - and then use a technique like the one demonstrated in the glideslope tunnel script to add lines&lt;br /&gt;
&lt;br /&gt;
'''owenpsmith:'''When flying VFR in the heavily forested areas of western Canada, it is never the power lines you look for, it is the clearing through the trees made for the power lines. They stick out like a sore thumb. Terrain and auto-generated trees are not my domain by any means, but I would think that it would be easier to make a script to omit trees under the lines that it would be to generate the lines themselves. If you could say draw a line between any two models in a set of models (various transmission tower models) that are closer than a certain distance apart, then omit the trees within a given distance of that line? Just my 2 bits. If we can clear the trees, this might come along as a bonus with winter ground textures &lt;br /&gt;
&lt;br /&gt;
'''Johan G:'''Goes for Sweden as well. In the about 60% of Sweden's area covered by forest no other line features, except for rivers and highways, sticks out like a 25-50 m (80-160 ft) wide clear cut that stretches for mile after mile. It just struck me that the power line clearings is not really a problem related to the random tree placement algorithms, but rather a land classing problem. The area in the clearings are in essence a different land class than the surroundings.&lt;br /&gt;
&lt;br /&gt;
'''Hooray:'''You would need to get in touch with Thorsten and/or Stuart to see if omitting trees based on heuristics is currently possible or not, I have no idea - otherwise I agree, that it would seem like a straightforward improvement.&lt;br /&gt;
&lt;br /&gt;
'''owenpsmith:'''Setting the elevation offsets is a bit tricky and is done in several steps. First I add the towers on either side of the span if they do not already exist. Once they are uploaded and their terrain elevations have been set, I plug the lat/long/terrain elevation/tower height into a spreadsheet. Each spreadsheet is tweaked based on the number and layout of markers. The spreadsheet is set up to calculate the lat/long of each marker, and the absolute elevation based on a catenary curve. The coefficient of the curve is set for each span based on the length and adjusted until it &amp;quot;looks right&amp;quot;. I then create all the objects locally and fire up the sim. I find the terrain elevation below each marker and subtract this from the absolute elevation to get the elevation offset. Once uploaded, I reload scenery in the sim and do a flypast to double check. This work is on hold right now because the mapserver site is acting up, and I can't access the object properties from the map. This is preventing me from getting the information for the towers on each end of the span. In the meantime I'm adding more towers so hopefully I can do a marker blitz once the mapserver is working properly again. On the subject of implementing the clearing through the trees, I've been thinking about this a bit. It occurred to me that the roads in FG use OSM line data and in the simulator, we get a grey line on the terrain, on which the trees have been omitted. So if we could implement a line type for power lines for which the trees will be omitted, but not draw the grey line, then we'd have the clearing we want. The line data could be derived from existing power pylon object positions. The line type may already be defined, we just need to set positions and process it appropriately in FG. Will dig into OSM when I get a chance.  It would be nice to get automated power line object generation complete with tree clearing. Object heading might be a bit tricky. Adding power pylons is not that exciting but it is pretty quick work. I'd settle for OSM based tree clearing provided it aligns accurately with existing FG power pylons. It would seem that the power line data in OSM is just line data, similar to the roads for which we already clear the trees in FG. So if we can add the pylon objects based on this line data, can't we clear the trees the same way we currently do for roads? How is the line data (roads, power lines) defined? Are they not just a series of &amp;quot;waypoints&amp;quot; defined by lat/lon? If they are then couldn't the line data in the btg files, and the pylon positions in the stg files be based on the same set of lat/lon points? Then they would align in the rendered scenery? My development experience is in the C family (C, C++, C#), Perl, SQL databases, mostly &amp;quot;backend&amp;quot; development, very little GUI work. About 15 years ago I did some work on ATC systems, and ISS robotics using Ada :-/ Most of my career has been spent in aerospace/defence which grew out of my first career choice which was to be a commercial pilot. I got my commercial licence and my parents and a few other relatives have had various Cessna's over the years. So I pretty much grew up at small airports along the west coast of Canada. My favorite times in the cockpit have been on Cessna 180/185 floatplanes. So with this backwoods VFR experience, power lines have always been far more available than navaids for navigation. So is this how the roads are generated then? The road line data gets &amp;quot;baked&amp;quot; into the terrain files by giving these areas their own land class? So FG knows nothing about line data when it renders scenery at runtime? So if we have some power line line data, it would be similarly &amp;quot;baked&amp;quot; into the terrain using a land class which would ideally have the same terrain texture as the surrounding land classes with the exception that no trees would be generated.  I see how it could get more complicated if you consider the impact on all terrain types, and the type of random objects on each (trees, buildings etc). Obviously for certain types of landclass the effects could be ignored, ie water, grassland, tundra, dessert etc. Others would require trees to be cleared. The urban effects are still a mystery to me but everything is slowly becoming less mysterious! I guess each landclass would have to be analyzed and grouped into categories based on impact of power lines. Then sibling/child land classes introduced based on that analysis, to be substituted for the base landclass.&lt;br /&gt;
&lt;br /&gt;
'''psadro_gm:'''ow that World Scenery 2.0 is rolling out, we're looking for new ideas to sketch out a roadmap for scenery features that require changes to the terragear tools and the .btg file format. I think one of the largest requests is from shader developers to get more into the .btg file. I'm currently looking at adding vertex attributes, and alternate texture coordinates. The biggest concern is backwards compatibility. Any new additions to the .btg should (hopefully) be ignored by older simgear versions. This will be an exciting time for experimentation to see what sticks.. I am unsure what we could do to 'clear out' tree generation on existing landclasses, as I am unfamiliar with how the trees are positioned. If there's anything that could be done with added info for the shader, let me know.&lt;br /&gt;
&lt;br /&gt;
'''Hooray:'''Having runtime access to certain vector data would be useful for a number of other subsystems in FlightGear. Time has shown, that the more data is available, the more people are going to use it come up with novel features. And then, being able to dynamically place/replace scenery textures easily has been requested several times (see the runway skid marks discussions for example). Also, it would be awesome if TG development could be closely coordinated with the ongoing random buildings/OSM efforts (by radi et al). These are two areas that are clearly overlapping in various ways - despite the fact, that FlightGear's random buildings are less static than TG scenery compilation historically is. But you guys once mentioned that you were looking into creating more and more stuff procedurally at runtime anways - so given that both efforts seem to be alive and kicking currently, it would be great to see some form of JV for the greater good (i.e. final outcome)regarding random trees/buildings, Stuart is the right person to talk to - he should be able to explain how everything works currently. But if I remember correctly, he announced a while that he was reworking the whole subsystem, and considering to decouple the &amp;quot;randomness&amp;quot; aspect a little more, so that other placement heuristics could be used, too.&lt;br /&gt;
&lt;br /&gt;
'''david.megginson:'''As an Eastern Canadian pilot, I agree with @owenpsmith — unless you're flying very low level (e.g. landing, taking off, pipeline inspection, etc) it's mainly the clearing that you see, not the pylons and wires themselves.  I'd suggest that we need a material for &amp;quot;DefaultClearing&amp;quot; that can vary by region: for example, it would be grass in wet, temperate parts of North America, but we wouldn't want a strip of lush grass running through the desert under a power line.&lt;br /&gt;
&lt;br /&gt;
== Related ==&lt;br /&gt;
* http://sourceforge.net/p/flightgear/mailman/flightgear-devel/thread/9E39B0CA-5417-45EB-8683-C99DB3AB67B3%40web.de/#msg32324151&lt;br /&gt;
* http://sourceforge.net/p/flightgear/mailman/flightgear-devel/thread/E495A106FF5F31448739E79D34138C193C8DBAE1%40mbs2.ad.jyu.fi/#msg32325675&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Plans]]&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Using_TerraGear&amp;diff=106299</id>
		<title>Using TerraGear</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Using_TerraGear&amp;diff=106299"/>
		<updated>2016-12-08T21:52:31Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: Note ogr-decode =&amp;gt; poly-decode&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Out of date}}&lt;br /&gt;
&lt;br /&gt;
[[File:Terragearprocesschart.png|thumb|TerraGear Process Flow Chart]]&lt;br /&gt;
The [[TerraGear]] software project supports [[FlightGear]] by creating the files used by FlightGear to represent the elevation and texture of the earth, including airports, cities, fields, forests, rivers, roads and so on. The TerraGear software reads data files containing ground elevation, airport locations and layouts, geographical land-cover data, and more, and produces the scenery files used by FlightGear to represent the terrain of the world.&lt;br /&gt;
&lt;br /&gt;
For simplicity and convenience, most FlightGear users simply download the plug-and-play scenery files from the FlightGear scenery server, or use [[TerraSync]] to automatically download scenery as needed. But there is a variety of reasons you might want to use TerraGogrear to produce your own terrain files, rather than downloading the standard FlightGear scenery. &lt;br /&gt;
&lt;br /&gt;
For instance, if you use [[WorldEditor]] to modify/improve information about an [[:Category:Airports|airport]]'s taxiway/apron layout, you might wish to see how that modified airport would look in the scenery before deciding you're happy with the results. Maybe the official scenery is too detailed for your slow machine, and you'd like to build terrain using a digital elevation model (DEM) with poorer resolution, to decrease the number of polygons and thus improve your framerates. Or maybe you've got a fantastically fast machine, and you want to build your own terrain using higher-resolution vector data (vmap1, Tiger, osm) to get better roads/streams. For all these reasons, learning how to use TerraGear is a good idea.&lt;br /&gt;
&lt;br /&gt;
== Obtaining TerraGear ==&lt;br /&gt;
You can either build TerraGear yourself, or download a pre-compiled binary. The later is the easiest and advised for starters.&lt;br /&gt;
&lt;br /&gt;
* '''Option 1a - Download TerraGear pre-compiled (recommended for beginners) on Windows'''&lt;br /&gt;
*# Download the latest TerraGear build from the [http://build.flightgear.org:8080/job/TerraGear-Win-Cmake/lastSuccessfulBuild/artifact/*zip*/archive.zip FlightGear Build Server].&lt;br /&gt;
*# Create or choose a directory to hold the TerraGear tools. &lt;br /&gt;
*# Unzip the package and move the files from &amp;lt;code&amp;gt;archive/install/msvc100/TerraGear/bin&amp;lt;/code&amp;gt; into a sub-directory named &amp;lt;code&amp;gt;Terragear/&amp;lt;/code&amp;gt; in the base directory.&lt;br /&gt;
&lt;br /&gt;
* '''Option 1b - Download ppa packages for Ubuntu Linux'''&lt;br /&gt;
&lt;br /&gt;
https://launchpad.net/~saiarcot895/+archive/ubuntu/flightgear-edge/+index?batch=75&amp;amp;memo=75&amp;amp;start=75&lt;br /&gt;
&lt;br /&gt;
* '''Option 2 - Compile TerraGear from source code''' as explained in [[Building TerraGear|this article]].&lt;br /&gt;
&lt;br /&gt;
{{note|1=You might need &amp;lt;code&amp;gt;default_priorities.txt&amp;lt;/code&amp;gt; from the {{terragear source|path=src/BuildTiles/Main/default_priorities.txt|text=git repository}} or from the archive downloaded from the build server (in the &amp;lt;code&amp;gt;archive/install/msvc100/TerraGear/share&amp;lt;/code&amp;gt; subdirectory). See [http://forum.flightgear.org/viewtopic.php?f=5&amp;amp;p=77950 this forum thread] for details.}}&lt;br /&gt;
&lt;br /&gt;
=== GUI tool ===&lt;br /&gt;
A [[TerraGear GUI]] is available for those that would like to use TerraGear without knowing/using the command line options.&lt;br /&gt;
&lt;br /&gt;
== Using TerraGear ==&lt;br /&gt;
First, choose the boundaries for the area of scenery you want to build, in terms of latitude and longitude. The smaller the area of scenery you generate, the smaller the amount of data you will need, and the less CPU time it will take. For example, if you are just interested in generating a new airport layout at 12.3W 34.4N, then simply generating the scenery between 12W 34N and 13W 35N would be sufficient. &lt;br /&gt;
&lt;br /&gt;
Write down the bounding box (minimum and maximum longitude and latitude) for the scenery you want to generate. Remember that West and South are negative - in essence 4W 10S would be -4, -10. Try not to get mixed up, otherwise you'll end up generating scenery or airports on the other side of the planet! &lt;br /&gt;
&lt;br /&gt;
You'll be dealing with multiple different types of data in various formats. Create a new directory for your scenery work. Within that directory, create the following sub-directories: &lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;data/&amp;lt;/code&amp;gt;:    For raw and pre-processed data (eg elevation files) &lt;br /&gt;
; &amp;lt;code&amp;gt;output/&amp;lt;/code&amp;gt;:  For the scenery files you will create &lt;br /&gt;
; &amp;lt;code&amp;gt;work/&amp;lt;/code&amp;gt;:    For data that has been processed (eg by shape-decode) and is ready to be munged into scenery &lt;br /&gt;
&lt;br /&gt;
=== Obtaining and processing data ===&lt;br /&gt;
TerraGear uses three different kinds of information to generate scenery:&lt;br /&gt;
&lt;br /&gt;
# The elevation of the land (provided by SRTM) &lt;br /&gt;
# The location and layout of airports (provided by apt.dat or a custom .dat) &lt;br /&gt;
# Whether a given lat/lon is sea, land, city, forest, town, road, railway (provided by VMAP0, [[CORINE]] etc. or custom shapefiles) &lt;br /&gt;
&lt;br /&gt;
This article describes how obtain and process each of these types of data in order, and bring it together for use by FlightGear. The order of these steps is important. For example, the airport data step needs the elevation data to determine the elevation of the airports and thus you should start with preparing elevation data.&lt;br /&gt;
&lt;br /&gt;
{{caution|For inclusion in the official FlightGear scenery, all data '''must''' come from [[GNU GPL]] compatible sources!}}&lt;br /&gt;
&lt;br /&gt;
==== Elevation data ====&lt;br /&gt;
The best worldwide elevation data currently available is from the Shuttle Radar Topography Mission (SRTM). There are two types of SRTM data: &lt;br /&gt;
* Highly accurate 1-arcsecond resolution data, known as SRTM-1, for the USA &lt;br /&gt;
* Less accurate 3-arcsecond resolution data, known as SRTM-3, for the rest of the world. &lt;br /&gt;
From now on, we'll assume you are using SRTM-3 data. Unless otherwise noted, the process for SRTM-1 is identical.&lt;br /&gt;
&lt;br /&gt;
You can download the appropriate data from http://dds.cr.usgs.gov/srtm/version2_1/. You want all .hgt.zip files covering your region of interest. Depending on the size of your scenery, there may be quite a few. Download them to &amp;lt;code&amp;gt;data/SRTM-1/&amp;lt;/code&amp;gt; (or SRTM-3/SRTM-30 depending on the type you downloaded) in your base directory. (Genapts looks for a few known, hardcoded elevation data directories in its working directory. SRTM-30 is one of them and this is the least confusing in that list. Note: W.E.F. 31st July 2010, the genapts tool now also looks for SRTM-1/SRTM-3 directories. If you are using an older version, please supply the directories using --dem-path).&lt;br /&gt;
&lt;br /&gt;
Now we've got the data, we need to convert it into something of use to TerraGear. First, you need to unzip each of the .hgt files. After that, open the commandline (Windows: Start &amp;gt; Run &amp;gt; &amp;lt;code&amp;gt;cmd.exe&amp;lt;/code&amp;gt;) and change into the base directory (&amp;lt;code&amp;gt;cd .../.../TerraGear&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
{{note|According to [[TerraGear_Documentation]], hgtchop is superseded by gdalchop.}}&lt;br /&gt;
{{note|For SRTM-1 data, replace the &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; by a &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; in the first argument to hgtchop}}&lt;br /&gt;
{{tip|If you want to create a batch-file, replace &amp;lt;code&amp;gt;%f&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;%%f&amp;lt;/code&amp;gt;, see [http://technet.microsoft.com/en-us/library/bb490909.aspx]}}&lt;br /&gt;
&lt;br /&gt;
For Windows:&lt;br /&gt;
 for %f in (.\data\SRTM-3\*.hgt) do .\Terragear\hgtchop.exe 3 %f .\work\SRTM-3&lt;br /&gt;
or&lt;br /&gt;
 for %f in (.\data\SRTM-3\*.hgt) do .\Terragear\hgtchop.exe 3 .\data\SRTM-3\%f .\work\SRTM-3&lt;br /&gt;
&lt;br /&gt;
For Linux:&lt;br /&gt;
 for f in ${PWD}/data/SRTM-3/*.hgt; do ./Terragear/hgtchop 3 &amp;quot;${f}&amp;quot; &amp;quot;${PWD}/work/SRTM-3&amp;quot;; done&lt;br /&gt;
&lt;br /&gt;
Now you will get a lot of .arr.gz files in your work/SRTM-3/ directory. We need to convert these to the .fit.gz format. Run the commandline again with&lt;br /&gt;
&lt;br /&gt;
{{note|The space and dot at the and are important!}}&lt;br /&gt;
&lt;br /&gt;
For Windows:&lt;br /&gt;
 .\Terragear\terrafit.exe work\SRTM-3&lt;br /&gt;
&lt;br /&gt;
For Linux:&lt;br /&gt;
 ./Terragear/terrafit work/SRTM-3&lt;br /&gt;
&lt;br /&gt;
==== Airport data ====&lt;br /&gt;
Now we've got elevation data, we can generate our airports. First, create a &amp;lt;code&amp;gt;data/airports/&amp;lt;/code&amp;gt; directory and copy in your apt.dat file. This may be direct from your FlightGear data package (though you'll need to unzip it), or it may be one that you've modified with [[WorldEditor]]. &lt;br /&gt;
&lt;br /&gt;
The command to create airports is &amp;quot;genapts850&amp;quot;. Run it without any arguments to see the various command-line options. &lt;br /&gt;
&lt;br /&gt;
If it is simply run with a specified apt.dat and work directory, it will generate airport layouts for every airport in the file, which can take a long time. Make sure the input is not the apt.dat.gz, but an uncompressed file. Otherwise genapts850 will block and not produce any output.&lt;br /&gt;
&lt;br /&gt;
If you are just creating a single airport and you know the ICAO ID (for example [[San Francisco International Airport|KSFO]], EGPH or EG32), use it as follows from your root scenery directory (in essence the directory above your data, work and output directories). If you use an apt.dat file with one single airport in it you should omit the &amp;lt;code&amp;gt;--airport&amp;lt;/code&amp;gt; parameter. &lt;br /&gt;
&lt;br /&gt;
 genapts850 --input=data/airports/apt.dat --work=./work --airport=&amp;lt;AIRPORT_ID&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or, if you have elevation data available:&lt;br /&gt;
&lt;br /&gt;
 genapts850 --input=data/airports/apt.dat --work=./work --dem-path=SRTM-3&lt;br /&gt;
&lt;br /&gt;
If you are generating a larger set of scenery, then you can specify the minimum and maximum longitude and latitude. &lt;br /&gt;
&lt;br /&gt;
Genapts will create two sub-directories in your work directory:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;AirportArea/&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;AirportObj/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These contain the definitions of the airport layout and any objects present (e.g. windsocks and beacons).&lt;br /&gt;
&lt;br /&gt;
==== Landuse data ====&lt;br /&gt;
The final piece of data we need to generate is the landuse data. In general, this is taken from the VMAP0 dataset as shapefiles from the scenery database mapserver, but other sources can also be used.&lt;br /&gt;
&lt;br /&gt;
The landuse data can be split into a number of different types:&lt;br /&gt;
&lt;br /&gt;
; Landmass:  Separates the land from the sea. It can be used as a mask for all other data. The most commonly used is the VMAP0 Landmass, but GSHHS can also be used. When running tg-construct with &amp;lt;code&amp;gt;--ignore-landmass&amp;lt;/code&amp;gt;, all input shapefiles will be taken into consideration, so no landmass mask is required then.&lt;br /&gt;
; Land use data:  Defines whether a piece of land is forest, urban, sand, lava, glacier etc. These are usually VMAP0 data, defined as polygons.&lt;br /&gt;
; Line data:  Includes railroads, streams, roads. Typically VMAP0, but also OpenStreetMap for roads.&lt;br /&gt;
; Point data:  Is currently only used for defining towns.&lt;br /&gt;
 &lt;br /&gt;
By far the easiest way to get this data is to download shapefiles from the wonderful [http://mapserver.flightgear.org MapServer]. The MapServer lets you download the shapefiles for any selected scenery area. Click on the &amp;quot;Download Shapefiles&amp;quot; link (or go direct: http://mapserver.flightgear.org/download.psp). Enter in the bounding box of the scenery you want to generate, select the type of shapefile data you want, and click download.&lt;br /&gt;
&lt;br /&gt;
==== Layers ====&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;v0&amp;lt;/code&amp;gt;:  Global coverage, low detail. This is &amp;quot;the last resort&amp;quot;, but unfortunately it is the only layer that covers the entire world.&lt;br /&gt;
; &amp;lt;code&amp;gt;cs&amp;lt;/code&amp;gt;:  It is v0 with some contributions someone did in the past. Get this instead of v0.&lt;br /&gt;
; &amp;lt;code&amp;gt;v1&amp;lt;/code&amp;gt;:  Only parts of some countries available, higher detail than v0.&lt;br /&gt;
; &amp;lt;code&amp;gt;clc06&amp;lt;/code&amp;gt;:  European '''only'''. Very high detail, this is the preferred choice for an European country.&lt;br /&gt;
; &amp;lt;code&amp;gt;osm&amp;lt;/code&amp;gt;:  Global coverage, high resolution but very low detail.&lt;br /&gt;
: This means: if you are interested in an area out of Europe and forests are defined in OpenStreetMaps for your area, this is going to be the best data source. If forests are not defined, you will get a dull, neverending DEFAULT landclass. OSM provides the best coastline and I encourage you to use this coastline even in Europe. [http://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=25549&amp;amp;sid=d501cb651ef9e34ca9dc8fae429d51ab&amp;amp;p=234002#p234002]&lt;br /&gt;
&lt;br /&gt;
{{caution|Make sure each shape file is in its own directory whether you download shape files or create your own otherwise the ogrDecode step will fail.}}&lt;br /&gt;
Download each shapefile into a seperate (!) &amp;lt;code&amp;gt;data/shapefiles/...&amp;lt;/code&amp;gt; directory. So, for v0_landmass, you would end up with &amp;lt;code&amp;gt;data/shapefiles/v0_landmass/v0_landmass.shp&amp;lt;/code&amp;gt; etc.&lt;br /&gt;
&lt;br /&gt;
You can load these shapefiles into a GIS editor such as [[QGIS]] or GRASS to view and edit. This is a good idea to verify you have the correct files! Later on, you can experiment with replacing various shapefiles with other versions (GSHHS for coastline, OSM for roads etc.).&lt;br /&gt;
&lt;br /&gt;
The next step is to decode the shape-files into TerraGear format using the '''ogr-decode''' command (renamed to '''poly-decode''' in recent versions of TerraGear). &lt;br /&gt;
&lt;br /&gt;
There are three important command-line arguments for ogr-decode:&lt;br /&gt;
* the destination directory for the decoded data&lt;br /&gt;
* the location of the shapefile's directory&lt;br /&gt;
* the material type&lt;br /&gt;
&lt;br /&gt;
Each shape-file corresponds with one of the material types defined in the materials.xml files. The mapping is pretty obvious. For example, &amp;lt;code&amp;gt;v0_mixedcroppasturecover&amp;lt;/code&amp;gt; maps to &amp;lt;code&amp;gt;MixedCropPastureCover&amp;lt;/code&amp;gt;. Note that the material types are case-sensitive, so it is a good idea to refer to the &amp;lt;code&amp;gt;[[$FG_ROOT]]/Materials/default/materials.xml&amp;lt;/code&amp;gt; file (&amp;lt;code&amp;gt;[[$FG ROOT]]/materials.xml&amp;lt;/code&amp;gt; in FlightGear 2.6.0 and older) to hand so you can check. The exception is landmass, which - when used - MUST be mapped onto the type Default.&lt;br /&gt;
&lt;br /&gt;
Additionally, there are a number of optional arguments, to indicate the width of line data (for roads, streams, railways), how large to make point data (for towns) and how long the longest straight line is allowed to be.&lt;br /&gt;
&lt;br /&gt;
For example, to decode the &amp;lt;code&amp;gt;v0_landmass&amp;lt;/code&amp;gt; shapefile, you use the following command:&lt;br /&gt;
&lt;br /&gt;
 ogr-decode --max-segment 500 --area-type Default work/Default data/shapefiles/v0_landmass&lt;br /&gt;
&lt;br /&gt;
To create streams of width 10 metres&lt;br /&gt;
&lt;br /&gt;
 ogr-decode --max-segment 500 --line-width 10 --area-type Stream work/Stream data/shapefiles/v0_stream&lt;br /&gt;
&lt;br /&gt;
To generate some towns about 1km across&lt;br /&gt;
&lt;br /&gt;
 ogr-decode --point-width 500 --area-type Town work/Town data/shapefiles/v0_town&lt;br /&gt;
&lt;br /&gt;
Run this command for each shapefile in the set.&lt;br /&gt;
&lt;br /&gt;
== Generating scenery ==&lt;br /&gt;
You will now have a work directory, with subdirectories like:&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
: AirportArea&lt;br /&gt;
: AirportObj&lt;br /&gt;
: Bog&lt;br /&gt;
: Default&lt;br /&gt;
: DryCropPastureCover&lt;br /&gt;
: EvergreenBroadCover&lt;br /&gt;
: GrassCover&lt;br /&gt;
: IrrCropPastureCover&lt;br /&gt;
: Lake&lt;br /&gt;
: Marsh&lt;br /&gt;
: MixedCropPastureCover&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
: MixedForestCover&lt;br /&gt;
: Railroad&lt;br /&gt;
: Road&lt;br /&gt;
: Sand&lt;br /&gt;
: ScrubCover&lt;br /&gt;
: Shared&lt;br /&gt;
: SRTM-3&lt;br /&gt;
: Stream&lt;br /&gt;
: Town&lt;br /&gt;
: Urban&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Now we can actually generate the scenery. This is done by the tg-construct command. Run the command with &amp;lt;code&amp;gt;--help&amp;lt;/code&amp;gt; to get usage information. &lt;br /&gt;
&lt;br /&gt;
We need to define:&lt;br /&gt;
* The work (&amp;lt;code&amp;gt;--work-dir&amp;lt;/code&amp;gt;) and output (&amp;lt;code&amp;gt;--output-dir&amp;lt;/code&amp;gt;) directories.&lt;br /&gt;
* The center of the scenery we want to generate (&amp;lt;code&amp;gt;--lat&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--lon&amp;lt;/code&amp;gt;).&lt;br /&gt;
* The radius (&amp;lt;code&amp;gt;--xdist&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--ydist&amp;lt;/code&amp;gt;) from which to generate.&lt;br /&gt;
* All the work directories to include in the scenery.&lt;br /&gt;
&lt;br /&gt;
{{note|The output directory must point to a &amp;lt;code&amp;gt;Terrain/&amp;lt;/code&amp;gt; directory, else recent FlightGear versions will be unable to load the terrain.}}&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
{{Pre2|&amp;lt;nowiki&amp;gt;tg-construct --work-dir=./work --output-dir=./output/Terrain --min-lon=55 --max-lon=57 --min-lat=60 --max-lat=62 AirportArea SRTM-3 AirportObj Default Stream Bog IrrCropPastureCover Town Lake Urban Railroad DryCropPastureCover Road EvergreenBroadCover Marsh Sand MixedCropPastureCover ScrubCover GrassCover MixedForestCover&amp;lt;/nowiki&amp;gt; }}&lt;br /&gt;
&lt;br /&gt;
When this finishes, the output directory will contain a scenery sub-tree. Point to it by setting either [[$FG_SCENERY]] or by using the &amp;lt;code&amp;gt;--fg-scenery&amp;lt;/code&amp;gt; command-line option to fgfs, and give your new scenery a try!&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
Below is a list of common problems and solutions. If in doubt - Google it. Many problems (particularly when compiling TerraGear) have been hit before: &lt;br /&gt;
&lt;br /&gt;
* Crashes in genapts. Sometimes genapts will crash when dealing with a particular airport. In that case, try running it again with the &amp;lt;code&amp;gt;--start-id&amp;lt;/code&amp;gt; argument to start at the airport it failed on, and the &amp;lt;code&amp;gt;--nudge&amp;lt;/code&amp;gt; argument which tries to nudge the calculations in the right direction. &lt;br /&gt;
* tg-construct killed. The tg-construct process may kill itself if it is using too many system resources. Increasing the values for &amp;lt;code&amp;gt;setrlimit&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;src/BuildTiles/Main/main.cxx&amp;lt;/code&amp;gt; is the best solution. &lt;br /&gt;
* tg-construct silently stops immediately without an error and nothing goes to the &amp;quot;output&amp;quot; directory: make sure that lon/lat values correspond to tiles boundaries. See [[Tile Index Scheme]]&lt;br /&gt;
* Airports appear in the bottom of holes, or there are spaces between the airports and the scenery. This typically happens when genapts is unable to find the correct elevation data, or the elevation data changed between running genapts and shape-decode. Try generating a single airport in your scenery area using genapts, and look at the output. In particular, make sure there is a work/SRTM-3 directory. &lt;br /&gt;
* Only the airports appear in the scenery. There are three typical causes for this: &lt;br /&gt;
** You didn't download the correct shapefiles for the area. &lt;br /&gt;
** You haven't run shape-decode on the &amp;lt;code&amp;gt;v0_landmass&amp;lt;/code&amp;gt; shapefile as Default &lt;br /&gt;
** You didn't include the correct directories in tg-construct. &lt;br /&gt;
* Generate scenery includes data removed from the shapefiles. If you are editing shapefiles, you need to delete the appropriate work subdirectory before running shape-decode. Otherwise your changes will be in addition to those already present. &lt;br /&gt;
* All the scenery is flat and at sea-level. Typically this is because you didn't include any elevation data in your tg-construct command. Make sure there's a STRM-3 directory included in the command-line. &lt;br /&gt;
* All terrain copies the material of a certain shapefile. You have probably forgotten to put each of the downloaded shapefiles in a seperate directory inside the Data/shapefiles directory.&lt;br /&gt;
* genapts850 never passes the stage &amp;quot;Adding airport &amp;lt;ICAO&amp;gt; to parse list&amp;quot;: did you unzip &amp;lt;code&amp;gt;apt.dat.gz&amp;lt;/code&amp;gt;?&lt;br /&gt;
&lt;br /&gt;
== General comments from forum discussion ==&lt;br /&gt;
{{cquote|f-ojac, you are right, the parameters used in scenery 2.0 were &amp;quot;-e 5 -x 20000&amp;quot; according to the wiki. I don't know why I had the impression these parameters were not public. In any case, it does not matter because using the same parameters will create closer results, but they are not guaranteed to be the same.&lt;br /&gt;
&lt;br /&gt;
The parameters used to create scenery 2,0 seem to be:&lt;br /&gt;
&lt;br /&gt;
-m ??: the minimum number of vertices in a tile. In FG, any number bellow 100 (and probably, any number below 1000) will do. I don't think there is any surface on the world perfectly flat for several kilometers. The default value is 50 and I'm sure is ok for any normal use.&lt;br /&gt;
-e 5: the max allowed error for elevation, in meters. That is: if terrafit calculates a simplification of the terrain where all points are at most this distance from the real elevation, no more vertices are created. The default value is 40 meters: a point may have an elevation error up to 40m (~100ft) High values for this parameter create less detailed mountains and smaller (in disk size) and more efficient (in FPS) terrain.&lt;br /&gt;
-x 20000: the max number of vertices in a tile. If this number of vertices is reached, terrafit stop regardless the max error of the vertices. The default value is 1000&lt;br /&gt;
&lt;br /&gt;
Keep in mind you can set values that do not make sense:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;-e 1 -x 100&amp;quot; does not make sense because it is going to be impossible to calculate errors less than 1 meters using only 100 vertices. The max number of vertices will be reached always and the max error will be probably ignored.&lt;br /&gt;
* &amp;quot;-e 300 -x 20000&amp;quot; does not make sense, tiles are going to use for sure much less vertices than 20,000 because you are allowing huge elevation errors.&lt;br /&gt;
&lt;br /&gt;
If you want an efficient scenery (less vertices), use the default values &amp;quot;-e 40 -x 1000&amp;quot;. If you want more accurate elevation at the cost of disk space and FPS, use values similar to scenery 2.0 (&amp;quot;-e 5 -x 20000&amp;quot;) Anything in the middle will produce performance and disk use in the middle.&amp;lt;ref&amp;gt;{{cite web |url=http://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=24681#p225363 &lt;br /&gt;
|title=Re: Terrasync Help (surprinsingly!) :)&lt;br /&gt;
|author=ludomotico |date= Mon Nov 24, 2014 4:28 am}}&amp;lt;/ref&amp;gt;|ludomotico}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Related content ==&lt;br /&gt;
* [[Howto:Create custom terrain]], editing/making terrain data.&lt;br /&gt;
* [[TerraGear CORINE]], building terrain from CORINE data.&lt;br /&gt;
* [[TerraGear Documentation]], using TerraGear details.&lt;br /&gt;
&lt;br /&gt;
{{Terra}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Scenery enhancement|TerraGear, Using]]&lt;br /&gt;
&lt;br /&gt;
[[fr:Utiliser TerraGear]]&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Starting_in_the_Air&amp;diff=97362</id>
		<title>Starting in the Air</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Starting_in_the_Air&amp;diff=97362"/>
		<updated>2016-04-22T01:42:27Z</updated>

		<summary type="html">&lt;p&gt;David.megginson: Added section on setting up an approach&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To start FlightGear in the air, you need at a minimum to set the following:&lt;br /&gt;
&lt;br /&gt;
* the [[altitude]] in feet [[MSL]], using the [[altitude]] option&lt;br /&gt;
* the [[calibrated airspeed]], using the vc option (or alternately, the [[Mach number]], using the mach option)&lt;br /&gt;
&lt;br /&gt;
You can also set the heading using the heading option, but note that the heading is in degrees true rather than degrees magnetic, so in some parts of North America it can be more than 30 degrees different than runway alignment. Here's a simple [[command line]] to start flying true north at 110 kcas (typical cruise speed for a [[Piper Cherokee Warrior II|Warrior]] or [[Cessna C172]]) at 5000 ft northbound:&lt;br /&gt;
&lt;br /&gt;
    fgfs --altitude=5000 --heading=0 --vc=110&lt;br /&gt;
&lt;br /&gt;
Often, you will want to start flying in a position relative to an airport, navaid, or intersection. In that case, you can specify the reference position using the normal airport, vor, ndb, or fix options. You then use offset-distance to specify your distance from the starting point (in statute miles, which needs to be fixed), and offset-azimuth to specify the bearing to the reference point (again, in degrees true). This command line starts at 5000 ft 5 statue miles to the east of the Oakland [[VOR]]:&lt;br /&gt;
&lt;br /&gt;
    fgfs --altitude=5000 --heading=270 --vc=110 --vor=OAK --offset-distance=5 --offset-azimuth=270&lt;br /&gt;
&lt;br /&gt;
Note that you do not have to be flying towards the reference point: you can pick any heading you want.&lt;br /&gt;
&lt;br /&gt;
==Setting up an approach==&lt;br /&gt;
&lt;br /&gt;
To set up an ILS approach realistically, you should start the plane in the air, outside the final approach fix, below the glideslope, on a 30° or 45° intercept. You will normally intercept the localiser first, hold altitude until the glideslope comes down, then reduce power to stay on the glideslope.  Here are the steps to set up in the air for the ILS 32 approach into Ottawa (CYOW):&lt;br /&gt;
&lt;br /&gt;
# Determine the final approach fix (in this case, the Greeley NDB, YRR) and the glidepath crossing altitude (1,800 ft MSL)&lt;br /&gt;
# Determine the magnetic heading for the approach path (320°), then adjust by the magnetic variation (-14°) to get the true heading (306°)&lt;br /&gt;
# choose a starting altitude 500–1,000 ft above the crossing altitude (2,500 ft)&lt;br /&gt;
# choose an appropriate approach speed for your aircraft (90 kt for the Piper Warrior or Cessna 172, though in real life, you might push it to 110 kt at a busy airport)&lt;br /&gt;
# choose an offset azimuth angle from the final approach fix that is 10° greater or lesser than the approach path (316°)&lt;br /&gt;
# choose a true heading that is 30° greater or lesser than the approach path, in the same direction as the azimuth angle (336°)&lt;br /&gt;
# preset your frequencies (110.3 mhz for the ILS 32 localiser; 377 khz for the Greeley NDB)&lt;br /&gt;
&lt;br /&gt;
Resulting command line (using the Warrior II, which launches with the engine running by default):&lt;br /&gt;
&lt;br /&gt;
    fgfs --aircraft=pa28-161 --prop:/controls/engines/engine/throttle=0.7 --ndb=YRR \&lt;br /&gt;
         --altitude=2500 --offset-azimuth=316 --heading=336 --nav1=320:110.3 --dme=nav1 --adf=377 --offset-distance=5 --vc=90&lt;br /&gt;
&lt;br /&gt;
Be prepared to make rapid throttle and trim adjustments on startup. Fly straight and level until the LOC needle comes alive, then turn left on intercept; maintain 2,500 ft until the GS needle comes alive, then reduce power to keep it centred.  Decision height is 571 ft.&lt;br /&gt;
&lt;br /&gt;
[[Category:FlightGear feature]]&lt;/div&gt;</summary>
		<author><name>David.megginson</name></author>
	</entry>
</feed>