OpenRadar: Editing routes
About
You can define standard routes to OpenRadar. This can be done by converting a NavaidDB file and improve the result or define it from scratch by adding lines, curves and bows to the radar screen. So you can define waiting loops, STARs and SIDs if you want to and if you need them.
Please send your finished work in to include it into the next OpenRadar update for everybody.
To have an example, check out airport LFSB. It is our showcase in this matter.
Please be warned: Defining all approaches and procedures for a more complex airport may produce too much details to work with. Concentrate on the important things, like additional vectors or waiting rooms.
A collection of possibilities:
- Highlight only the navaids that you need to see
- Create only the holding areas
- Create the Approaches to appear on a higher viewpoint and the STAR/SID routes on lower viewpoints
- Use texts to have the taxiways names in the map at the best spot (hide them on higher viewlevels)
- Use texts to have the maximum speed in the map
- Create only the most important routes, or
- Create all standard STAR and SID routes
Generating the OpenRadar definitions from existing ProceduresDB file
There is already an XML format that contains the STARs and SIDs. Converting it can save you some work.
We do not use it directly because:
- It purpose it to provide input for the autopilot/flight manager, not for an ATC screen
- Our format is made to display the important information which an ATC needs:
- adaptive detail (you can define the lower and upper zoom level values between the route is being displayed)
- display of STARs and SIDs can depend on the runway usage mode
- colors (each route, each element can have its own color), strokes and line width
- more graphical elements curves, bows and text
- NAVAID hightlighting
Currently I do not know where this file is usually located. In my flightgear directory it is not existing. Maybe it is because my version (2.6) is too old.
The file is usually located in a directory structure like /E/L/L/ELLX.procedure.xml.
Create the directory OpenRadar/data/routes/ELLX and put your procedure XML into it. After you have started ELLX in Openradar, you have a converted file ELLX.procedure.or.xml. The orginal file is not needed anymore after this step. You can and should modify the new file following the explanations below.
Manual creation / refinement
The most important first: SHIFT+F12 reloads the standard routes of your current airport. So you can see changes quickly...
The files must be located in directory data/routes/[airport name].
The files must end with ".xml", so they must be xml documents. Here is a simple example of everything around your route definitions:
<?xml version="1.0" encoding="UTF-8" ?> <!-- This file contains the STAR and SID of RW 26 --> <routes> --- here are your definitions --- </routes>
A Route
A route is a collection of definitions that belong together. The values zoomMin and zoomMax allow you to define adaptive details or layers of information that appear within those constraints. Omitting them means there is no constraint at this side...
A route can have the following attributes:
attribute | opt. | description |
---|---|---|
name | no | A meaningful name for this route |
zoomMin | yes | The minimum zoom level at which this route is being displayed. If you zoom in more, it disappears. (default values: Ground: 14, Tower: 26, App: 100) |
zoomMax | yes | The maximum zoom level at which this route is being displayed. If you zoom out more, it disappears. (default values: Ground: 14, Tower: 26, App: 100) |
stroke | yes | can be "line","dashed","dots" or a pattern definition followed optionally by a comma and the line width as decimal, if omitted it is a plain line, 2 dots in width. A pattern definition is a dash separated list of decimals defining the length of the visible and invisible sub-lines of the pattern. e.g. "1-1" (dots), "5-1" (dashes), "10-3-5-3" a long dash, 3 dots space a shorter dash, 3 dots space... |
color | yes | Defines the color of the elements of this route. Use it carefully and rarely. You still want to be able to read the most important information on the radar: The contacs position info.... |
Supported are the following xml tags:
tag | opt. | description |
---|---|---|
activeStartRunways | yes | A comma separated list of runways. If one of them is active for starts the route will be displayed. |
activeLandingRunways | yes | A comma separated list of runways. If one of them is active for landings the route will be displayed. If neither activeStartRunways nor activeLandingRunways is defined, the route will always be displayed. Use this for parking rooms... |
navaids | yes | A comma separated list of navaid ids (FIX,NDB,VOR,Airportcodes) that will be highlighted if this route is being displayed, regardless if the main switches for FIX/NDB etc. are enabled or not.
This tag can have an attribute |
(other elements) | yes | the graphical tags explained below |
Example:
<?xml version="1.0" encoding="UTF-8" ?> <!-- This file contains the STAR and SID of RW 26 --> <routes> <route name="RW 26 SID" zoomMin="10" zoomMax="100" color="120,140,120"> <activeStartRunways>26</activeStartRunways> <navaids>BASUD,BLM,BS,ELBEG,HOC,HOMBO,LUMEL,WIL</navaids> --- more to be explained --- </route> </routes>
Points and Angles
All elements of your route base on points and angles. Angles are magnetic and defined in degrees.
Points on your radar can be defined:
Navaid | You can use the navaid ID, e.g begin="BLM" |
Runway end | You can use any runway end of the current airport. e.g. Runway 15 at Basel: begin="LFSB-RW15" |
Geographic Location | You can use the geographic location separated by a comma. e.g. begin="47.599450,7.531936" |
Relative Location | You can define a point relative to a navaid in the format: dddNMaaa@iii (where ddd is the decimal distance in NM, aaa is the magnetic bearing from iii, which is a navaid id. Distance and heading have the decimal separator 'dot'.
e.g. "2.5NM165@BLM" |
Length' are also given in decimal NM.
Missing Navaids:
If you notice that some navaids are not available in OpenRadar's data, you can use their geographic positions, or better define them in your route file. These additional definitions can be used like navaids defined in the AptNav files... Please remember, very likely your clients will not have them visible in their inflight map...
attribute | opt. | description |
---|---|---|
code | yes | The ID under that your want to find it. Try to use non existing to avoid conflicts |
point | yes | The geographic coordinates of the point. |
Examples:
<?xml version="1.0" encoding="UTF-8" ?> <routes> <addPoint code="AGOLO" point="50.200000,9.676111"/> <addPoint code="BIBTI" point="50.966667,7.108611"/> <addPoint code="ESUPI" point="50.058333,8.121111"/> <addPoint code="FRD" point="50.030556,8.566944"/> <addPoint code="IBVIL" point="50.434444,7.369167"/> <addPoint code="KERAX" point="50.475000,9.581944"/> ... </routes>
Elements
A route can be constructed out of the following Elements:
line
A line is a line is a line. It can be defined (1) either via two points or (2) via one point, direction and length.
two point definition
attribute | opt. | description |
---|---|---|
start | no | The start point of the line |
end | no | The end point of the line |
startOffset | yes | The distance from start point in miles from which the painting should start |
endOffset | yes | The distance from end point in miles from which the painting should start |
stroke | yes | can be "line","dashed","dots" or a pattern definition followed optionally by a comma and the line width as decimal, if omitted it is a plain line, 2 dots in width. A pattern definition is a dash separated list of decimals defining the length of the visible and invisible sub-lines of the pattern. e.g. "1-1" (dots), "5-1" (dashes), "10-3-5-3" a long dash, 3 dots space a shorter dash, 3 dots space... |
lineWidth | yes | (deprecated, define it in stroke!) The width of the lines to be painted. Default is 2px. Use 1px for vectoring helper lines (dashed/dotted)... |
arrows | yes | Paints arrows at the lines end, pointing in direction from start to end: Possible is "begin","end",both", Optionally you can define the arrow size by appending a comma and the size of the arrow. Default is 10, big would be 20. Example: "end,20" |
color | yes | Defines the color of this line. Overwrites the definition in <route> . Define it there if possible.
|
text | yes | Whatever you define, will be displayed in the middle of the line. The line is broken at this spot. |
via one point, direction and length
attribute | opt. | description |
---|---|---|
start | no | The start point of the line |
angle | no | The magnetic angle of this line |
length | no | The length of the line including the offsets |
startOffset | yes | The distance from start point in miles from which the painting should start |
endOffset | yes | The distance from end point in miles from which the painting should start |
stroke | yes | can be "line","dashed","dots" or a pattern definition followed optionally by a comma and the line width as decimal, if omitted it is a plain line, 2 dots in width. A pattern definition is a dash separated list of decimals defining the length of the visible and invisible sub-lines of the pattern. e.g. "1-1" (dots), "5-1" (dashes), "10-3-5-3" a long dash, 3 dots space a shorter dash, 3 dots space... |
lineWidth | yes | (deprecated, define it in stroke!) The width of the lines to be painted. Default is 2px. Use 1px for vectoring helper lines (dashed/dotted)... |
arrows | yes | Paints arrows at the lines end, pointing in direction from start to end: Possible is "begin","end",both", Optionally you can define the arrow size by appending a comma and the size of the arrow. Default is 10, big would be 20. Example: "end,20" |
color | yes | Defines the color of this line. Overwrites the definition in <route> . Define it there if possible.
|
text | yes | Whatever you define, will be displayed at the middle of the line. The line is broken at this spot. |
Examples:
<?xml version="1.0" encoding="UTF-8" ?> <routes> <route name="RW 26 SID" zoomMin="10" zoomMax="100" color="120,140,120"> <activeStartRunways>26</activeStartRunways> <navaids>BASUD,BLM,BS,ELBEG,HOC,HOMBO,LUMEL,WIL</navaids> <line start="BLM" end="ELBEG" text="069" /> <line start="HOC" end="HOMBO" startOffset="3" text="341" /> <line start="5.4NM226@BLM" end="LUMEL" text="226" /> <line start="BLM" startOffset="1.2" angle="003" length="10" text="003" arrows="end"/> <!-- a vectoring line --> <line start="BLM" angle="202" length="4.5" stroke="dashed,1" text="202" /> </route> </routes>
multi-point-line / polygon
This element can be used to draw polygons, both open and closed.
attribute | opt. | description |
---|---|---|
close | yes | "true" is the default, "false" does not connect the last with the first point |
stroke | yes | can be "line","dashed","dots" or a pattern definition followed optionally by a comma and the line width as decimal, if omitted it is a plain line, 2 dots in width. A pattern definition is a dash separated list of decimals defining the length of the visible and invisible sub-lines of the pattern. e.g. "1-1" (dots), "5-1" (dashes), "10-3-5-3" a long dash, 3 dots space a shorter dash, 3 dots space... |
lineWidth | yes | (deprecated, define it in stroke!) The width of the lines to be painted. Default is 2px. Use 1px for vectoring helper lines (dashed/dotted)... |
color | yes | Defines the color of this line. Overwrites the definition in <route> . Define it there if possible.
|
In difference to the other XML elements, this element contains children named points
. Their content is a normal point definition as explained above.
Example:
<?xml version="1.0" encoding="UTF-8" ?> <routes> <route name="Polygon example"> ... <multiPointLine close="false"> <point>ALTIK</point> <point>6NM226@BLM</point> <point>50.454722,7.227222</point> </multiPointLine> ... </route> </routes>
curve
Curves are an easy and comfortable way to connect lines if there is not radius defined and if the angle is small. A curve is implemented as quad curve, so it has a startPoint, an endPoint and an controlPoint which controls the curving. A good start point for the control point is the interception between the lines that should be connected.
attribute | opt. | description |
---|---|---|
start | no | The start point of the curve |
end | no | The end point of the curve |
controlPoint | no | The location of the control point of this curve. |
stroke | yes | can be "line","dashed","dots" or a pattern definition followed optionally by a comma and the line width as decimal, if omitted it is a plain line, 2 dots in width. A pattern definition is a dash separated list of decimals defining the length of the visible and invisible sub-lines of the pattern. e.g. "1-1" (dots), "5-1" (dashes), "10-3-5-3" a long dash, 3 dots space a shorter dash, 3 dots space... |
lineWidth | yes | (deprecated, define it in stroke!) The width of the lines to be painted. Default is 2px. Use 1px for vectoring helper lines (dashed/dotted)... |
arrows | yes | Paints arrows at the lines end, pointing in direction from start to end: Possible is "begin","end",both", Optionally you can define the arrow size by appending a comma and the size of the arrow. Default is 10, big would be 20. Example: "end,20" |
color | yes | Defines the color of this line. Overwrites the definition in <route> . Define it there if possible.
|
Example:
<?xml version="1.0" encoding="UTF-8" ?> <routes> <route name="RW 26 SID" zoomMin="10" zoomMax="100" color="120,140,120"> <activeStartRunways>26</activeStartRunways> <navaids>BASUD,BLM,BS,ELBEG,HOC,HOMBO,LUMEL,WIL</navaids> <curve start="6NM226@BLM" end="13.5NM315@BASUD" controlPoint="7.5NM226@BLM"/> </route> </routes>
bow
A bow is a part of a circle around a specified point. It can be used to define circling approaches or wider curves.
attribute | opt. | description |
---|---|---|
center | no | The center of the bow |
radius | no | The radius of the bow |
startAngle | no | The magnetic start angle of the bow |
extentAngle | no | The extend of the bow in degress. Positive direction is the direction of the compass |
stroke | yes | can be "line","dashed","dots" or a pattern definition followed optionally by a comma and the line width as decimal, if omitted it is a plain line, 2 dots in width. A pattern definition is a dash separated list of decimals defining the length of the visible and invisible sub-lines of the pattern. e.g. "1-1" (dots), "5-1" (dashes), "10-3-5-3" a long dash, 3 dots space a shorter dash, 3 dots space... |
lineWidth | yes | (deprecated, define it in stroke!) The width of the lines to be painted. Default is 2px. Use 1px for vectoring helper lines (dashed/dotted)... |
arrows | yes | Paints arrows at the lines end, pointing in direction from start to end: Possible is "begin","end",both", Optionally you can define the arrow size by appending a comma and the size of the arrow. Default is 10, big would be 20. Example: "end,20" |
color | yes | Defines the color of this line. Overwrites the definition in <route> . Define it there if possible.
|
text | yes | Whatever you define, will be displayed at the center angle of the bow. The line is broken at this spot. |
Example:
<?xml version="1.0" encoding="UTF-8" ?> <routes> <route name="RW 26 SID" zoomMin="10" zoomMax="100" color="120,140,120"> <activeStartRunways>26</activeStartRunways> <navaids>BASUD,BLM,BS,ELBEG,HOC,HOMBO,LUMEL,WIL</navaids> <bow center="BLM" radius="9" startAngle="277" extentAngle="50" text="D9"/> <!-- a misap --> <bow center="BLM" radius="15" startAngle="274" extentAngle="-36" stroke="dashed" arrows="start" text="D15"/> </route> </routes>
loop
This element displays a parking area. It has predefined text locations for min, max and misap height...
attribute | opt. | description |
---|---|---|
navpoint | no | The hook of the parking. The target of the inbound direction, where the pilots turn into the loop. |
inboundHeading | no | As magnetic direction. |
length | yes | the length of a leg in NM (the straight part of the loop) |
width | yes | the distance between the legs in NM |
right | yes | "true" or "false", does the pilot turn to right or left at navpoint? Default: right |
minHeight | yes | The minimum height for planes in this loop (painted bold) |
maxHeight | yes | The maximum height for planes in this loop |
misapHeight | yes | The default height for missed approaches. |
stroke | yes | can be "line","dashed","dots" or a pattern definition followed optionally by a comma and the line width as decimal, if omitted it is a plain line, 2 dots in width. A pattern definition is a dash separated list of decimals defining the length of the visible and invisible sub-lines of the pattern. e.g. "1-1" (dots), "5-1" (dashes), "10-3-5-3" a long dash, 3 dots space a shorter dash, 3 dots space... |
lineWidth | yes | (deprecated, define it in stroke!) The width of the lines to be painted. Default is 2px. Use 1px for vectoring helper lines (dashed/dotted)... |
arrows | yes | Paints arrows at the lines end, pointing in direction from start to end: Possible is "begin","end",both", Optionally you can define the arrow size by appending a comma and the size of the arrow. Default is 10, big would be 20. Example: "end,20" |
color | yes | Defines the color of this line. Overwrites the definition in <route> . Define it there if possible.
|
Example:
<?xml version="1.0" encoding="UTF-8" ?> <routes> <route name="LFSB Wait loops"> <navaids>BLM,ALTIK,SEDOR</navaids> <loop navpoint="SEDOR" inboundHeading="192" width="5" arrows="both" minHeight="7000" maxHeight="MAX 12000"/>> <loop navpoint="ALTIK" inboundHeading="94" width="5" arrows="both" minHeight="5500" maxHeight="MAX 11000" misapHeight="MISAP4000"/> <loop navpoint="BALIR" inboundHeading="319" width="5" arrows="both" minHeight="7000" maxHeight="MAX 12000"/> </route> </routes>
text
This element draws a text at the specified spot
attribute | opt. | description |
---|---|---|
position | no | The position of the text's center |
angle | yes | The text can be rotated, if you need to. Default is horizontal, angle grows clockwise |
font | yes | The font name, please consider using a font everybody has available, or leave it away to take the default |
fontSize | yes | The font size in points. Default is 10pt |
color | yes | Defines the color of this text. Overwrites the definition in <route> . Define it there if possible.
|
text | yes | This text will be displayed. Single line only! |
Example:
<?xml version="1.0" encoding="UTF-8" ?> <routes> <route name="text example"> <text position="5NM327@BLM" font="Arial" fontSize="22" angle="-90" text="Example text"/> </route> </routes>
VFR minimum altitudes
This element draws the known minimum altitude symbol.
attribute | opt. | description |
---|---|---|
position | no | The position of the text's center |
value | no | The altitude in thousands of feet ("3.4" means 3400 ft) |
font | yes | The font name, please consider using a font everybody has available, or leave it away to take the default |
fontSize | yes | The font size in points. Default is 10pt |
color | yes | Defines the color of this text. Overwrites the definition in <route> . Define it there if possible.
|
Example:
<?xml version="1.0" encoding="UTF-8" ?> <routes> <route name="LFSB minimum altitudes"> <!-- black forest --> <minAlt position="47.705141,7.911530" value="5.7"/> <minAlt position="47.861,8.01315" value="5.9"/> <!-- jura --> <minAlt position="47.81546,6.847916" value="5.3"/> <minAlt position="48.084501,7.236557" value="5.4"/> <!-- alsace --> <minAlt position="47.406250,7.706909" value="5.7"/> <minAlt position="47.208841,7.245483" value="6.2"/> </route> </routes>