1
0
Fork 0

FG1000 Refactor to use common map.

Also add degree symbols to various pages.
This commit is contained in:
Stuart Buchanan 2018-03-17 22:04:41 +00:00
parent 921ce612cb
commit 89710b3c45
14 changed files with 809 additions and 445 deletions

View file

@ -23,9 +23,9 @@
borderopacity="0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.2962556"
inkscape:cx="778.1918"
inkscape:cy="230.23655"
inkscape:zoom="3.2473958"
inkscape:cx="817.98224"
inkscape:cy="351.10971"
inkscape:document-units="px"
inkscape:current-layer="DirectToGroup"
showgrid="true"
@ -68,6 +68,18 @@
<g
id="DirectToGroup"
inkscape:label="#g9755">
<g
id="DirectToMap"
inkscape:label="#g60873">
<rect
inkscape:label="#rect59059"
y="278"
x="705"
height="325"
width="315"
id="DirectToMap-bg"
style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
</g>
<path
style="opacity:1;fill:#4b4b4b;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="m 698.99609,58.498047 0,684.503903 325.00391,0 0,-684.503903 -325.00391,0 z M 705.5,279.93359 l 314.4277,0 0,322.2793 -314.4277,0 0,-322.2793 z"
@ -604,7 +616,7 @@
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:11.80263901px;line-height:0%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow, Condensed';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;display:inline;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;"
x="1029.4486"
y="281.5152"
id="text4267"
id="DirectToOrientationDisplay"
transform="scale(0.95485858,1.0472755)"
inkscape:label="RangeDisplay"
sodipodi:linespacing="0%"><tspan

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 42 KiB

View file

@ -0,0 +1,611 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="1024px"
height="768px"
viewBox="0 0 1024 768"
version="1.1"
id="SVGRoot"
inkscape:version="0.91 r13725"
sodipodi:docname="DirectToPFD.svg">
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#ffffff"
borderopacity="0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.6236979"
inkscape:cx="1144.4093"
inkscape:cy="237.70035"
inkscape:document-units="px"
inkscape:current-layer="DirectToGroup"
showgrid="true"
inkscape:window-width="2495"
inkscape:window-height="1416"
inkscape:window-x="65"
inkscape:window-y="24"
inkscape:window-maximized="1"
inkscape:snap-global="true"
inkscape:snap-grids="true"
inkscape:snap-bbox="true"
inkscape:snap-others="true"
inkscape:snap-to-guides="true"
inkscape:bbox-paths="false"
inkscape:snap-nodes="true"
inkscape:snap-page="true"
inkscape:bbox-nodes="true">
<inkscape:grid
type="xygrid"
id="grid4269" />
</sodipodi:namedview>
<defs
id="defs7962" />
<metadata
id="metadata7965">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="DirectToGroup">
<g
id="DirectToGroup"
inkscape:label="#g9755">
<path
style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="m 728.55824,510.55258 0,232.44937 295.44176,0 0,-232.44937 z"
id="rect4230"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#80ffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="738.66016"
y="562.80469"
id="DirectToID"
sodipodi:linespacing="125%"
inkscape:label="#text4166"><tspan
sodipodi:role="line"
id="tspan4168"
x="738.66016"
y="562.80469">KSFO</tspan></text>
<text
sodipodi:linespacing="125%"
id="DirectToName"
y="587.80469"
x="739.26562"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#80ffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"
inkscape:label="#text4170"><tspan
y="587.80469"
x="739.26562"
id="tspan4172"
sodipodi:role="line">SAN FRANCISCO INTERNATIONAL</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#80ffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="822.97852"
y="562.80469"
id="DirectToCity"
sodipodi:linespacing="125%"
inkscape:label="#text4174"><tspan
sodipodi:role="line"
id="tspan4176"
x="822.97852"
y="562.80469">CITY</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#80ffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="898.65234"
y="562.80469"
id="DirectToRegion"
sodipodi:linespacing="125%"
inkscape:label="#text4198"><tspan
sodipodi:role="line"
id="tspan4200"
x="898.65234"
y="562.80469">REGION</tspan></text>
<text
inkscape:label="#text4166"
sodipodi:linespacing="125%"
id="DirectToID0"
y="563"
x="738.66016"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#80ffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="563"
x="738.66016"
id="tspan4227"
sodipodi:role="line">K</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#80ffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="749.81445"
y="562.80469"
id="DirectToID1"
sodipodi:linespacing="125%"
inkscape:label="#text4166"><tspan
sodipodi:role="line"
id="tspan4232"
x="749.81445"
y="562.80469">S</tspan></text>
<text
inkscape:label="#text4166"
sodipodi:linespacing="125%"
id="DirectToID2"
y="563"
x="760.55469"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#80ffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="563"
x="760.55469"
id="tspan4236"
sodipodi:role="line">F</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#80ffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="770.80469"
y="562.80469"
id="DirectToID3"
sodipodi:linespacing="125%"
inkscape:label="#text4166"><tspan
sodipodi:role="line"
id="tspan4240"
x="770.80469"
y="562.80469">O</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:#fffcfa;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="843.21393"
y="527.35352"
id="text3449"
sodipodi:linespacing="125%"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed'"
sodipodi:role="line"
id="tspan3451"
x="843.21393"
y="527.35352">DIRECT TO</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#80ffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="780.56641"
y="618"
id="DirectToVNVAlt"
sodipodi:linespacing="125%"
inkscape:label="#text4166"><tspan
sodipodi:role="line"
id="tspan3515"
x="780.56641"
y="618">00000</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#80ffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="807.98828"
y="618"
id="DirectToVNVAlt3"
sodipodi:linespacing="125%"
inkscape:label="#text4166"><tspan
sodipodi:role="line"
id="tspan3495"
x="807.98828"
y="618">0</tspan></text>
<text
inkscape:label="#text4166"
sodipodi:linespacing="125%"
id="DirectToVNVAlt2"
y="618"
x="798.84766"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#80ffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="618"
x="798.84766"
id="tspan3499"
sodipodi:role="line">0</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#80ffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="789.70703"
y="618"
id="DirectToVNVAlt1"
sodipodi:linespacing="125%"
inkscape:label="#text4166"><tspan
sodipodi:role="line"
id="tspan3503"
x="789.70703"
y="618">0</tspan></text>
<text
inkscape:label="#text4166"
sodipodi:linespacing="125%"
id="DirectToVNVAlt0"
y="618"
x="780.56641"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#80ffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="618"
x="780.56641"
id="tspan3507"
sodipodi:role="line">0</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#80ffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="817.12891"
y="618"
id="DirectToVNVAlt4"
sodipodi:linespacing="125%"
inkscape:label="#text4166"><tspan
sodipodi:role="line"
id="tspan3511"
x="817.12891"
y="618">0</tspan></text>
<text
inkscape:label="#text4166"
sodipodi:linespacing="125%"
id="DirectToVNVAltFt"
y="618"
x="825.98633"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#80ffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="618"
x="825.98633"
id="tspan3519"
sodipodi:role="line">ft</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#80ffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="958.52539"
y="618"
id="text3521"
sodipodi:linespacing="125%"
inkscape:label="#text4166"><tspan
sodipodi:role="line"
x="958.52539"
y="618"
id="tspan3525">-</tspan></text>
<text
inkscape:label="#text4166"
sodipodi:linespacing="125%"
id="DirectToVNVOffset"
y="618"
x="968.76953"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#80ffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="618"
x="968.76953"
sodipodi:role="line"
id="tspan3533">00</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#80ffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="968.76953"
y="618"
id="DirectToVNVOffset0"
sodipodi:linespacing="125%"
inkscape:label="#text4166"><tspan
id="tspan3539"
sodipodi:role="line"
x="968.76953"
y="618">0</tspan></text>
<text
inkscape:label="#text4166"
sodipodi:linespacing="125%"
id="DirectToVNVOffset1"
y="618"
x="977.91016"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#80ffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="618"
x="977.91016"
sodipodi:role="line"
id="tspan3543">0</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="738.66016"
y="657.80469"
id="text3549"
sodipodi:linespacing="125%"
inkscape:label="#text4166"><tspan
sodipodi:role="line"
id="tspan3551"
x="738.66016"
y="657.80469">BRG</tspan></text>
<text
inkscape:label="#text4166"
sodipodi:linespacing="125%"
id="DirectToLocationBRG"
y="657.80469"
x="778.37891"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#80ffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="657.80469"
x="778.37891"
id="tspan3555"
sodipodi:role="line">189</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';text-align:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#80ffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="991.61133"
y="657.80469"
id="DirectToLocationDIS"
sodipodi:linespacing="125%"
inkscape:label="#text4166"><tspan
sodipodi:role="line"
id="tspan3559"
x="991.61133"
y="657.80469">12.3</tspan></text>
<text
inkscape:label="#text4166"
sodipodi:linespacing="125%"
id="text3565"
y="657.80469"
x="874.21875"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="657.80469"
x="874.21875"
id="tspan3567"
sodipodi:role="line">DIS</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#80ffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="778.98438"
y="686.96484"
id="DirectToCourse"
sodipodi:linespacing="125%"
inkscape:label="#text4166"><tspan
sodipodi:role="line"
id="tspan4383"
x="778.98438"
y="686.96484">000</tspan></text>
<rect
y="713.08008"
x="921"
height="25"
width="100"
id="rect4393"
style="opacity:1;fill:#1a3030;fill-opacity:1;fill-rule:nonzero;stroke:#fffcfa;stroke-width:2;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
ry="0" />
<text
sodipodi:linespacing="125%"
id="DirectToActivate"
y="732.46484"
x="971.64844"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow, Condensed';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:#fffcff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"
inkscape:label="#text4395"><tspan
y="732.46484"
x="971.64844"
sodipodi:role="line"
id="tspan4397">ACTIVATE?</tspan></text>
<text
inkscape:label="#text4166"
sodipodi:linespacing="125%"
id="DirectToCourse0"
y="686.96484"
x="778.98438"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#80ffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="686.96484"
x="778.98438"
sodipodi:role="line"
id="tspan4508">0</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#80ffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="788.125"
y="686.96484"
id="DirectToCourse1"
sodipodi:linespacing="125%"
inkscape:label="#text4166"><tspan
id="tspan4514"
sodipodi:role="line"
x="788.125"
y="686.96484">0</tspan></text>
<text
inkscape:label="#text4166"
sodipodi:linespacing="125%"
id="DirectToCourse2"
y="686.96484"
x="797.26562"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#80ffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="686.96484"
x="797.26562"
sodipodi:role="line"
id="tspan4518">0</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#80ffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="988.28125"
y="618"
id="text4227"
sodipodi:linespacing="125%"
inkscape:label="#text4166"><tspan
sodipodi:role="line"
id="tspan4229"
x="988.28125"
y="618">nm</tspan></text>
<text
inkscape:label="#text4166"
sodipodi:linespacing="125%"
id="text58387"
y="687.80469"
x="739.17773"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="687.80469"
x="739.17773"
id="tspan58389"
sodipodi:role="line">CRS</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="874.21875"
y="618"
id="text58391"
sodipodi:linespacing="125%"
inkscape:label="#text4166"><tspan
sodipodi:role="line"
id="tspan58393"
x="874.21875"
y="618">OFFSET</tspan></text>
<text
inkscape:label="#text4166"
sodipodi:linespacing="125%"
id="text58395"
y="616.96484"
x="739.97852"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="616.96484"
x="739.97852"
id="tspan58397"
sodipodi:role="line">ALT</tspan></text>
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 735,533 280,0"
id="path58399"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path58401"
d="m 735,597.5 280,0"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 735,627.5 280,0"
id="path58403"
inkscape:connector-curvature="0" />
<g
id="DirectToWaypointSubmenuGroup"
inkscape:label="#g4271"
transform="translate(25.000005,430.00003)">
<rect
y="143.38834"
x="709.38837"
height="149.22327"
width="115.22327"
id="rect4232"
style="opacity:1;fill:#4b4b4b;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.77672273;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
ry="0"
style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.77518052;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4239"
width="107.22482"
height="141.22482"
x="713.38757"
y="147.38759" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow, Condensed';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#80ffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="765.59869"
y="170.66508"
id="DirectToWaypointSubmenuSelect"
sodipodi:linespacing="125%"
inkscape:label="#text4198"><tspan
sodipodi:role="line"
id="tspan4243"
x="765.59869"
y="170.66508">REGION</tspan></text>
<path
inkscape:label="#path4245"
inkscape:connector-curvature="0"
id="DirectToWaypointSubmenuSelectRight"
d="m 800.5,153.35355 0,20 10,-10 -10,-10"
style="fill:#feffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:label="#path4247"
style="fill:#feffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 730.70711,153.35355 0,20 -10,-10 10,-10"
id="DirectToWaypointSubmenuSelectLeft"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path4249"
d="m 720,178 95,0"
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#4b4b4b;stroke-width:0.85485041px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<text
inkscape:label="#text4198"
sodipodi:linespacing="125%"
id="DirectToWaypointSubmenuScroll0"
y="201.96484"
x="718.65234"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#80ffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="201.96484"
x="718.65234"
id="tspan4253"
sodipodi:role="line">REGION</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#80ffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="718.65234"
y="226.96484"
id="DirectToWaypointSubmenuScroll1"
sodipodi:linespacing="125%"
inkscape:label="#text4198"><tspan
sodipodi:role="line"
id="tspan4257"
x="718.65234"
y="226.96484">REGION</tspan></text>
<text
inkscape:label="#text4198"
sodipodi:linespacing="125%"
id="DirectToWaypointSubmenuScroll2"
y="251.96484"
x="718.65234"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#80ffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="251.96484"
x="718.65234"
id="tspan4261"
sodipodi:role="line">REGION</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#80ffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="718.65234"
y="276.96484"
id="DirectToWaypointSubmenuScroll3"
sodipodi:linespacing="125%"
inkscape:label="#text4198"><tspan
sodipodi:role="line"
id="tspan4265"
x="718.65234"
y="276.96484">REGION</tspan></text>
<rect
inkscape:label="#rect4267"
y="188"
x="810"
height="90"
width="5"
id="DirectToWaypointSubmenuScrollTrough"
style="opacity:1;fill:#c0c0c0;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
inkscape:label="#rect4269"
style="opacity:1;fill:#808080;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="DirectToWaypointSubmenuScrollThumb"
width="5"
height="30"
x="810"
y="188" />
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 35 KiB

View file

@ -23,9 +23,9 @@
borderopacity="0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.8284271"
inkscape:cx="723.45322"
inkscape:cy="612.12112"
inkscape:zoom="1.4142136"
inkscape:cx="851.72535"
inkscape:cy="412.85117"
inkscape:document-units="px"
inkscape:current-layer="NavigationMapGroup"
showgrid="true"
@ -69,103 +69,64 @@
<g
id="NavigationMapGroup"
inkscape:label="#g4869">
<rect
y="718.50403"
x="957.50397"
height="24.992043"
width="66.992043"
id="rect8420"
style="display:inline;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.00795722;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path5127-6"
d="m 958.01562,743.02999 0,-24.54969 65.91218,0"
style="display:inline;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#b6bcbe;stroke-width:0.88936359px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<text
sodipodi:linespacing="0%"
inkscape:label="RangeDisplay"
transform="scale(0.93580798,1.0685953)"
id="NavigationMapRangeDisplay"
y="689.10815"
x="1059.5933"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:12.03934765px;line-height:0%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow, Condensed';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;display:inline;fill:#31ffff;fill-opacity:1;stroke:none"
xml:space="preserve"><tspan
style="font-size:17.55738258px;line-height:1.25;fill:#31ffff;fill-opacity:1"
y="689.10815"
<g
id="NavigationMapNavMap"
inkscape:label="#g4298"
transform="matrix(1,0,0,0.99855072,-3,-2.915942)">
<rect
inkscape:label="#rect4293"
y="58"
x="6"
height="690"
width="1024"
id="NavigationMapNavMap-bg"
style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
</g>
<g
id="NavigationMapLegend"
inkscape:label="#g4959">
<rect
style="display:inline;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.00795722;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect8420"
width="66.992043"
height="24.992043"
x="959.50397"
y="718.50403" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:12.03934765px;line-height:0%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow, Condensed';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;display:inline;fill:#31ffff;fill-opacity:1;stroke:none"
x="1059.5933"
id="tspan5131-3-5"
sodipodi:role="line">Zoom nm</tspan></text>
<rect
style="display:inline;opacity:1;fill:#1a3030;fill-opacity:1;fill-rule:nonzero;stroke:#fffcfa;stroke-width:0.96484423;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4216"
width="74.343285"
height="20.035156"
x="952.10205"
y="55.482422" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#ffffff;fill-opacity:1;stroke:#fffcfa;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="956.10889"
y="70.5"
id="NavigationMapOrientation"
sodipodi:linespacing="125%"
inkscape:label="#text4218"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed'"
sodipodi:role="line"
id="tspan4220"
x="956.10889"
y="70.5">NORTH UP</tspan></text>
</g>
<g
id="NavigationMapGroupPartial"
inkscape:label="#g4878"
transform="translate(14.999977,-0.47363257)">
<rect
y="718.50403"
x="640.57623"
height="24.992043"
width="66.992043"
id="rect4809"
style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.00795722;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path4811"
d="m 641.08786,743.02999 0,-24.54969 65.91218,0"
style="display:inline;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#b6bcbe;stroke-width:0.88936359px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<text
sodipodi:linespacing="0%"
inkscape:label="RangeDisplay"
transform="scale(0.93580798,1.0685953)"
id="NavigationMapRangeDisplayPartial"
y="689.10815"
x="720.92578"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:12.03934765px;line-height:0%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow, Condensed';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;display:inline;fill:#31ffff;fill-opacity:1;stroke:none"
xml:space="preserve"><tspan
style="font-size:17.55738258px;line-height:1.25;fill:#31ffff;fill-opacity:1"
y="689.10815"
x="720.92578"
id="tspan4815"
sodipodi:role="line">Zoom nm</tspan></text>
<rect
style="opacity:1;fill:#1a3030;fill-opacity:1;fill-rule:nonzero;stroke:#fffcfa;stroke-width:0.96484423;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4817"
width="74.343285"
height="20.035156"
x="635.48242"
y="55.956055" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:#fffcfa;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="639.48926"
y="70.973633"
id="NavigationMapOrientationPartial"
sodipodi:linespacing="125%"
inkscape:label="#text4218"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed'"
sodipodi:role="line"
id="tspan4821"
x="639.48926"
y="70.973633">NORTH UP</tspan></text>
id="NavigationMapRangeDisplay"
transform="scale(0.93580798,1.0685953)"
inkscape:label="RangeDisplay"
sodipodi:linespacing="0%"><tspan
sodipodi:role="line"
id="tspan5131-3-5"
x="1059.5933"
y="689.10815"
style="font-size:17.55738258px;line-height:1.25;fill:#31ffff;fill-opacity:1">Zoom nm</tspan></text>
<rect
y="55.482422"
x="952.10205"
height="20.035156"
width="74.343285"
id="rect4216"
style="display:inline;opacity:1;fill:#1a3030;fill-opacity:1;fill-rule:nonzero;stroke:#fffcfa;stroke-width:0.96484423;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
inkscape:label="#text4218"
sodipodi:linespacing="125%"
id="NavigationMapOrientationDisplay"
y="70.5"
x="956.10889"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#ffffff;fill-opacity:1;stroke:#fffcfa;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="70.5"
x="956.10889"
id="tspan4220"
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed'">NORTH UP</tspan></text>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 7.7 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

View file

@ -27,29 +27,32 @@ var ConfigStore = {
# declutter - the maximum declutter level (0-3) that this layer is visible in
# range - the maximum range this layer is visible (configured by user)
# max_range - the maximum range value that a user can configure for this layer.
# static - whether this layer should be displayed on static maps (as opposed to the moving maps)
# factory - name of the factory to use for creating the layer
# priority - layer priority
layerRanges : {
DTO : { enabled: 0, declutter: 3, range: 2000, max_range: 2000 },
DTO : { enabled: 0, declutter: 3, range: 2000, max_range: 2000, static : 0, factory : canvas.SymbolLayer, priority : 4 },
GRID : { enabled: 0, declutter: 1, range: 20, max_range: 2000 },
DME : { enabled: 1, declutter: 1, range: 150, max_range: 300 },
VOR_FG1000 : { enabled: 1, declutter: 1, range: 150, max_range: 300 },
NDB : { enabled: 1, declutter: 1, range: 15, max_range: 30 },
FIX : { enabled: 1, declutter: 1, range: 15, max_range: 30 },
RTE : { enabled: 1, declutter: 3, range: 2000, max_range: 2000 },
WPT : { enabled: 1, declutter: 3, range: 2000, max_range: 2000 },
GRID : { enabled: 0, declutter: 1, range: 20, max_range: 2000, static : 1, factory : canvas.SymbolLayer, priority : 4 },
DME : { enabled: 1, declutter: 1, range: 150, max_range: 300, static : 1, factory : canvas.SymbolLayer, priority : 4 },
VOR_FG1000 : { enabled: 1, declutter: 1, range: 150, max_range: 300, static : 1, factory : canvas.SymbolLayer, priority : 4 },
NDB : { enabled: 1, declutter: 1, range: 15, max_range: 30, static : 1, factory : canvas.SymbolLayer, priority : 4 },
FIX : { enabled: 1, declutter: 1, range: 15, max_range: 30, static : 1, factory : canvas.SymbolLayer, priority : 4 },
RTE : { enabled: 1, declutter: 3, range: 2000, max_range: 2000, static : 0, factory : canvas.SymbolLayer, priority : 4 },
WPT : { enabled: 1, declutter: 3, range: 2000, max_range: 2000, static : 0, factory : canvas.SymbolLayer, priority : 4 },
APS : { enabled: 1, declutter: 3, range: 2000, max_range: 2000 },
FLT : { enabled: 1, declutter: 3, range: 2000, max_range: 2000 },
FLT : { enabled: 1, declutter: 3, range: 2000, max_range: 2000, static : 1, factory : canvas.SymbolLayer, priority : 4 },
WXR : { enabled: 1, declutter: 2, range: 2000, max_range: 2000 },
WXR : { enabled: 1, declutter: 2, range: 2000, max_range: 2000, static : 1, factory : canvas.SymbolLayer, priority : 4 },
APT : { enabled: 1, declutter: 2, range: 150, max_range: 300 },
APT : { enabled: 1, declutter: 2, range: 150, max_range: 300, static : 1, factory : canvas.SymbolLayer, priority : 4 },
TFC : { enabled: 0, declutter: 3, range: 150, max_range: 2000},
TFC : { enabled: 0, declutter: 3, range: 150, max_range: 2000, static : 1, factory : canvas.SymbolLayer, priority : 4 },
APS : { enabled: 1, declutter: 3, range: 2000, max_range: 2000, static : 1, factory : canvas.SymbolLayer, priority : 4 },
OpenAIP : { enabled: 1, declutter: 1, range: 150, max_range: 300 },
STAMEN : { enabled: 1, declutter: 3, range: 500, max_range: 2000 },
STAMEN_terrain : { enabled: 1, declutter: 3, range: 500, max_range: 2000 },
STAMEN_terrain : { enabled: 1, declutter: 3, range: 500, max_range: 2000, static : 1, factory : canvas.OverlayLayer, priority : 1 },
OpenAIP : { enabled: 1, declutter: 1, range: 150, max_range: 300, static : 1, factory : canvas.OverlayLayer, priority : 1 },
STAMEN : { enabled: 1, declutter: 3, range: 500, max_range: 2000, static : 1, factory : canvas.OverlayLayer, priority : 1 },
},
configValues : {

View file

@ -94,9 +94,6 @@ var MFDDisplay =
# If we don't return anything the default font is used
};
canvas.parsesvg(obj._svg,
EIS_SVG,
{'font-mapper': fontmapper});
foreach (var page; MFDPages) {
var svg_file ='/Aircraft/Instruments-3d/FG1000/MFDPages/' ~ page ~ '.svg';
@ -108,6 +105,10 @@ var MFDDisplay =
}
}
canvas.parsesvg(obj._svg,
EIS_SVG,
{'font-mapper': fontmapper});
obj._MFDDevice = canvas.PFD_Device.new(obj._svg, 12, "SoftKey", myCanvas, "MFD");
obj._MFDDevice.device_id = device_id;
obj._MFDDevice.RegisterWithEmesary();

View file

@ -44,7 +44,6 @@ var DirectTo =
"Region",
"LocationBRG",
"LocationDIS",
"RangeDisplay"
];
obj.addTextElements(textelements);
@ -74,40 +73,7 @@ var DirectTo =
obj.WaypointSubmenuScroll = PFD.GroupElement.new(obj.pageName, svg, [ "WaypointSubmenuScroll" ] , 4, "WaypointSubmenuScroll", 0, "WaypointSubmenuScrollTrough" , "WaypointSubmenuScrollThumb", 60);
# The Airport Chart
obj.DirectToChart = obj._group.createChild("map");
obj.DirectToChart.setInt("z-index", 100);
obj.DirectToChart.setController("Static position", "main");
# Initialize a range and screen resolution. Setting a range
# to 15nm means we pick up a good set of surrounding fixes
# We will use the screen range for zooming.
obj.DirectToChart.setRange(8.0);
obj.DirectToChart.setScreenRange(300/2.0);
obj.DirectToChart.setTranslation(860, 440);
obj.DirectToChart.set("clip-frame", canvas.Element.LOCAL);
obj.DirectToChart.set("clip", "rect(-160px, 160px, 160px, -160px)");
var r = func(name,vis=1,zindex=nil) return caller(0)[0];
foreach(var type; [r('APT'),r('DME'),r('VOR'),r('NDB'),r('FIX')] ) {
obj.DirectToChart.addLayer(canvas.SymbolLayer,
type.name,
10,
obj.Styles.getStyle(type.name),
obj.Options.getOption(type.name),
type.vis );
}
foreach(var type; [ r('STAMEN')]) {
obj.DirectToChart.addLayer(factory: canvas.OverlayLayer, type_arg: type.name,
priority: 9,
style: obj.Styles.getStyle(type.name),
options: obj.Options.getOption(type.name),
visible: 1);
}
obj.DirectToChart = fg1000.NavMap.new(obj, obj.getElement("Map"), [860,440], "rect(-160px, 160px, 160px, -160px)", 0, 2, 1);
obj.setController(fg1000.DirectToController.new(obj, svg));
return obj;
@ -123,13 +89,13 @@ var DirectTo =
me.setTextElement("Name", string.uc(destination.name));
me.setTextElement("City", "CITY");
me.setTextElement("Region", "REGION");
me.setTextElement("LocationBRG", "" ~ sprintf("%03d", destination.course));
me.setTextElement("LocationBRG", "" ~ sprintf("%03d°", destination.course));
me.setTextElement("LocationDIS", sprintf("%d", destination.range_nm) ~ "nm");
me.IDEntry.setValue(destination.id);
me.VNVAltEntry.setValue("00000");
me.VNVOffsetEntry.setValue("00");
me.CourseEntry.setValue("" ~ sprintf("%03d", destination.course));
me.CourseEntry.setValue("" ~ sprintf("%03d°", destination.course));
} else {
me.DirectToChart.setVisible(1);
me.setTextElement("Name", "");
@ -145,12 +111,6 @@ var DirectTo =
}
},
setRange : func(range, label) {
me.DirectToChart.setRange(range);
me.DirectToChart.update();
me.setTextElement("RangeDisplay", label);
},
offdisplay : func() {
me._group.setVisible(0);
me.getController().offdisplay();
@ -160,6 +120,9 @@ var DirectTo =
me._group.setVisible(1);
# Display a false title, as underneath we're showing the navigation map.
me.mfd.setPageTitle("MAP - NAVIGATION MAP");
me.getElement("Map").setVisible(1);
me.getElement("Map-bg").setVisible(1);
me.DirectToChart.setVisible(1);
me.getController().ondisplay();
# The DirectTo pages displays over the NavigationMap. This is a hack

View file

@ -17,49 +17,11 @@
# DirectTo Controller
var DirectToController =
{
# Vertical ranges, and labels.
# Unlike some other map displays, we keep the range constant at 4nm an change
# the ScreenRange to zoom in. Otherwise as we zoom in, the center of the
# runways moves out of the range of the display and they are not drawn.
# Ranges are scaled to the display height with range 1 displaying 4nm vertically.
# 2000nm = 12,152,000ft.
RANGES : [{range: 500/6076.12, label: "500ft"},
{range: 750/6076.12, label: "750ft"},
{range: 1000/6076.12, label: "1000ft"},
{range: 1500/6076.12, label: "1500ft"},
{range: 2000/6076.12, label: "2000ft"},
{range: 0.5, label: "0.5nm"},
{range: 0.75, label: "0.75nm"},
{range: 1, label: "1nm"},
{range: 2, label: "2nm"},
{range: 3, label: "3nm"},
{range: 4, label: "4nm"},
{range: 6, label: "6nm"},
{range: 8, label: "8nm"},
{range: 10, label: "10nm"},
{range: 12, label: "12nm"},
{range: 15, label: "15nm"},
{range: 20, label: "20nm"},
{range: 25, label: "25nm"},
{range: 30, label: "30nm"},
{range: 40, label: "40nm"},
{range: 50, label: "50nm"},
{range: 75, label: "75nm"},
{range: 100, label: "100nm"},
{range: 200, label: "200nm"},
{range: 500, label: "500nm"},
{range: 1000, label: "1000nm"},
{range: 1500, label: "1500nm"},
{range: 2000, label: "2000nm"}, ],
new : func (page, svg)
{
var obj = { parents : [ DirectToController, MFDPageController.new(page)] };
obj.id = "";
obj.page = page;
obj.current_zoom = 13;
obj.setZoom(obj.current_zoom);
obj._cursorElements = [
obj.page.IDEntry,
@ -96,23 +58,6 @@ var DirectToController =
me.setCursorElement(me._selectedElement + incr_or_decr);
},
# Control functions for Input
zoomIn : func() {
me.setZoom(me.current_zoom -1);
},
zoomOut : func() {
me.setZoom(me.current_zoom +1);
},
handleRange : func(val)
{
var incr_or_decr = (val > 0) ? 1 : -1;
me.setZoom(me.current_zoom + incr_or_decr);
},
setZoom : func(zoom) {
if ((zoom < 0) or (zoom > (size(me.RANGES) - 1))) return;
me.current_zoom = zoom;
me.page.setRange(me.RANGES[zoom].range, me.RANGES[zoom].label);
},
handleCRSR : func() {
# No effect, but shouldn't be passed to underlying page?
return emesary.Transmitter.ReceiptStatus_Finished;

View file

@ -26,97 +26,22 @@ var NavigationMap =
],
};
# Center the map's origin, modified to take into account the surround.
obj._group.setTranslation(
fg1000.MAP_FULL.CENTER.X - (1024/2),
fg1000.MAP_FULL.CENTER.Y - (768/2)
);
obj.MFDMap = obj._group.createChild("map");
obj.MFDMap.setScreenRange(689/2.0);
# Labels for map range and orientation. Two sets - one for the full display
# and another for the partial display.
obj.addTextElements(["RangeDisplay", "Orientation"]);
obj.addTextElements(["RangeDisplayPartial", "OrientationPartial"]);
obj._labelsFull = svg.getElementById("NavigationMapGroup");
assert(obj._labelsFull != nil, "Unable to find NavigationMapGroup");
obj._labelsPartial = svg.getElementById("NavigationMapGroupPartial");
assert(obj._labelsPartial != nil, "Unable to find NavigationMapGroupPartial");
# Initialize the controllers:
var ctrl_ns = canvas.Map.Controller.get("Aircraft position");
var source = ctrl_ns.SOURCES["current-pos"];
if (source == nil) {
# TODO: amend
var source = ctrl_ns.SOURCES["current-pos"] = {
getPosition: func subvec(geo.aircraft_position().latlon(), 0, 2),
getAltitude: func getprop('/position/altitude-ft'),
getHeading: func {
if (me.aircraft_heading)
getprop('/orientation/heading-deg')
else 0
},
aircraft_heading: 1,
};
}
setlistener("/sim/gui/dialogs/map-canvas/aircraft-heading-up", func(n) {
source.aircraft_heading = n.getBoolValue();
}, 1);
# Make it move with our aircraft:
obj.MFDMap.setController("Aircraft position", "current-pos"); # from aircraftpos.controller
var r = func(name,vis=1,zindex=nil) return caller(0)[0];
# TODO: we'll need some z-indexing here, right now it's just random
foreach(var type; [r('GRID'),r('DTO',0),r('TFC',0),r('APT'),r('DME'),r('VOR_FG1000'),r('NDB'),r('FIX',0),r('GPS'),r('RTE'),r('WPT'),r('FLT'),r('WXR',0),r('APS')] ) {
obj.MFDMap.addLayer(
factory: canvas.SymbolLayer,
type_arg: type.name,
priority: 4,
style: obj.Styles.getStyle(type.name),
options: obj.Options.getOption(type.name),
visible: type.vis);
}
foreach(var type; [ r('STAMEN_terrain'),r('STAMEN'), r('OpenAIP') ]) {
obj.MFDMap.addLayer(
factory: canvas.OverlayLayer,
type_arg: type.name,
priority: 1,
style: obj.Styles.getStyle(type.name),
options: obj.Options.getOption(type.name),
visible: 0);
}
#obj.topMenu(device, obj, nil);
obj.MFDMap = fg1000.NavMap.new(
obj,
obj.getElement("NavMap"),
[fg1000.MAP_FULL.CENTER.X, fg1000.MAP_FULL.CENTER.Y],
"",
zindex=-10);
obj.setController(fg1000.NavigationMapController.new(obj, svg));
return obj;
},
toggleLayerVisible : func(name) {
(var l = me.MFDMap.getLayer(name)).setVisible(l.getVisible());
},
setLayerVisible : func(name,n=1) {
me.MFDMap.getLayer(name).setVisible(n);
},
setRange : func(range, label) {
me.MFDMap.setRange(range);
me.setTextElement("RangeDisplay", label);
me.setTextElement("RangeDisplayPartial", label);
},
setOrientation : func(orientation) {
me.setTextElement("Orientation", orientation);
me.setTextElement("OrientationPartial", orientation);
},
setScreenRange : func(range) {
me.MFDMap.setScreenRange(range);
},
offdisplay : func(controller=1) {
me._group.setVisible(0);
me.getElement("NavMap").setVisible(0);
me.getElement("NavMap-bg").setVisible(0);
me.MFDMap.setVisible(0);
# Reset the menu colours. Shouldn't have to do this here, but
# there's not currently an obvious other location to do so.
@ -129,15 +54,19 @@ var NavigationMap =
},
ondisplay : func(controller=1) {
me._group.setVisible(1);
me.getElement("Group").setVisible(1);
me.getElement("NavMap").setVisible(1);
me.getElement("NavMap-bg").setVisible(1);
me.getElement("Legend").setVisible(1);
me.MFDMap.setVisible(1);
# Center the map's origin, modified to take into account the surround.
me.MFDMap.setTranslation(
me.getElement("NavMap").setTranslation(
fg1000.MAP_FULL.CENTER.X,
fg1000.MAP_FULL.CENTER.Y
);
me._labelsFull.setVisible(1);
me._labelsPartial.setVisible(0);
me.getElement("Legend").setTranslation(0,0);
me.mfd.setPageTitle(me.title);
if (controller == 1) me.getController().ondisplay();
@ -147,18 +76,27 @@ var NavigationMap =
# page - e.g. NearestAirports.
ondisplayPartial : func() {
me._group.setVisible(1);
me.MFDMap.setTranslation(
me.getElement("Group").setVisible(1);
me.getElement("NavMap").setVisible(1);
me.getElement("NavMap-bg").setVisible(1);
me.getElement("Legend").setVisible(1);
me.MFDMap.setVisible(1);
# Center the map's origin, modified to take into account the surround.
me.getElement("NavMap").setTranslation(
fg1000.MAP_PARTIAL.CENTER.X,
fg1000.MAP_PARTIAL.CENTER.Y
);
me._labelsFull.setVisible(0);
me._labelsPartial.setVisible(1);
#me.getController().ondisplayPartial();
me.getElement("Legend").setTranslation(-300,0);
},
offdisplayPartial : func() {
me._group.setVisible(0);
me.getElement("Group").setVisible(0);
me.getElement("NavMap").setVisible(0);
me.getElement("NavMap-bg").setVisible(0);
me.getElement("Legend").setVisible(0);
me.MFDMap.setVisible(0);
#me.getController().offdisplayPartial();
},
@ -172,7 +110,7 @@ var NavigationMap =
pg.resetMenuColors();
pg.addMenuItem(0, "ENGINE", pg, pg.mfd.EIS.engineMenu);
pg.addMenuItem(2, "MAP", pg, pg.mfd.NavigationMap.mapMenu);
pg.addMenuItem(8, "DCLTR", pg, func(dev, pg, mi) { pg.getController().incrDCLTR(dev, mi); } );
pg.addMenuItem(8, "DCLTR", pg, func(dev, pg, mi) { pg.mfd.NavigationMap.MFDMap.incrDCLTR(dev, mi); } );
#pg.addMenuItem(9, "SHW CHRT", pg); # Optional
#pg.addMenuItem(10, "CHKLIST", pg); # Optional
device.updateMenus();
@ -182,22 +120,22 @@ var NavigationMap =
pg.clearMenu();
pg.resetMenuColors();
pg.addMenuItem(0, "TRAFFIC", pg,
func(dev, pg, mi) { pg.mfd.NavigationMap.getController().toggleLayer("TFC"); device.updateMenus(); }, # callback
func(dev, pg, mi) { pg.mfd.NavigationMap.MFDMap.toggleLayer("TFC"); device.updateMenus(); }, # callback
func(svg, mi) { pg.mfd.NavigationMap.display_toggle(device, svg, mi, "TFC"); }
);
pg.addMenuItem(1, "PROFILE", pg);
pg.addMenuItem(2, "TOPO", pg,
func(dev, pg, mi) { pg.mfd.NavigationMap.getController().toggleLayer("STAMEN"); device.updateMenus(); }, # callback
func(dev, pg, mi) { pg.mfd.NavigationMap.MFDMap.toggleLayer("STAMEN"); device.updateMenus(); }, # callback
func(svg, mi) { pg.mfd.NavigationMap.display_toggle(device, svg, mi, "STAMEN"); }
);
pg.addMenuItem(3, "TERRAIN", pg,
func(dev, pg, mi) { pg.mfd.NavigationMap.getController().toggleLayer("STAMEN_terrain"); device.updateMenus(); }, # callback
func(dev, pg, mi) { pg.mfd.NavigationMap.MFDMap.toggleLayer("STAMEN_terrain"); device.updateMenus(); }, # callback
func(svg, mi) { pg.mfd.NavigationMap.display_toggle(device, svg, mi, "STAMEN_terrain"); }
);
pg.addMenuItem(4, "AIRWAYS", pg, func(dev, pg, mi) { pg.mfd.NavigationMap.getController().incrAIRWAYS(dev, mi); } );
pg.addMenuItem(4, "AIRWAYS", pg, func(dev, pg, mi) { pg.mfd.NavigationMap.MFDMap.incrAIRWAYS(dev, mi); } );
#pg.addMenuItem(5, "STRMSCP", pg); Optional
#pg.addMenuItem(6, "PRECIP", pg); Optional, or NEXRAD
#pg.addMenuItem(7, "XM LTNG", pg); Optional, or DL LTNG
@ -211,7 +149,7 @@ var NavigationMap =
# on whether a particular layer is enabled or not.
display_toggle : func(device, svg, mi, layer) {
var bg_name = sprintf("SoftKey%d-bg",mi.menu_id);
if (me.getController().isEnabled(layer)) {
if (me.MFDMap.isEnabled(layer)) {
device.svg.getElementById(bg_name).setColorFill(0.5,0.5,0.5);
svg.setColor(0.0,0.0,0.0);
} else {

View file

@ -17,8 +17,6 @@
# Navigation Map Controller
var NavigationMapController =
{
# TODO: Add STAMEN topo layer, which is visible on all levels as opposed to
# roads, railways, boundaries, cities which are only visible on declutter 0.
@ -31,94 +29,21 @@ var NavigationMapController =
new : func (page, svg)
{
var obj = { parents : [ NavigationMapController, MFDPageController.new(page) ] };
obj.current_zoom = 13;
obj.declutter = 0;
obj.airways = 0;
obj.page = page;
obj.setZoom(obj.current_zoom);
obj.setOrientation(fg1000.ORIENTATIONS[0]);
return obj;
},
zoomIn : func() {
me.setZoom(me.current_zoom -1);
},
zoomOut : func() {
me.setZoom(me.current_zoom +1);
},
setZoom : func(zoom) {
if ((zoom < 0) or (zoom > (size(fg1000.RANGES) - 1))) return;
me.current_zoom = zoom;
# Ranges above represent vertical ranges, but the display is a rectangle, so
# we need to use the diagonal range of the 1024 x 689, which is 617px.
# 617px is 1.8 x 689/2, so we need to increase the range values by x1.8
me.page.setRange(fg1000.RANGES[zoom].range, fg1000.RANGES[zoom].label);
me.updateVisibility();
},
setOrientation : func(orientation) {
me.page.setOrientation(orientation.label);
},
updateVisibility : func() {
# Determine which layers should be visible.
foreach (var layer_name; me.page.mfd.ConfigStore.getLayerNames()) {
var layer = me.page.mfd.ConfigStore.getLayer(layer_name);
if (layer.enabled and
(fg1000.RANGES[me.current_zoom].range <= layer.range) and
(me.declutter <= layer.declutter) )
{
me.page.MFDMap.getLayer(layer_name).setVisible(1);
} else {
me.page.MFDMap.getLayer(layer_name).setVisible(0);
}
}
},
isEnabled : func(layer) {
return me.page.mfd.ConfigStore.isLayerEnabled(layer);
},
toggleLayer : func(layer) {
me.page.mfd.ConfigStore.toggleLayerEnabled(layer);
me.updateVisibility();
},
# Increment through the de-clutter levels, which impact what layers are
# displayed. We also need to update the declutter menu item.
incrDCLTR : func(device, menuItem) {
me.declutter = math.mod(me.declutter +1, 4);
menuItem.title = me.DCLTR[me.declutter];
device.updateMenus();
me.updateVisibility();
},
getDCLTRTitle : func() {
return me.DCLTR[me.declutter];
},
# Increment through the AIRWAYS levels. At present this doesn't do anything
# except change the label. It should enable/disable different airways
# information.
incrAIRWAYS : func(device, menuItem) {
me.airways = math.mod(me.airways +1, 4);
menuItem.title = me.AIRWAYS[me.airways];
device.updateMenus();
me.updateVisibility();
},
getAIRWAYSTitle : func() {
return me.AIRWAYS[me.airways];
},
# Set the DTO line target
setDTOLineTarget : func(lat, lon) {
me.page.MFDMap.getLayer("DTO").controller.setTarget(lat,lon);
me.page.MFDMap.setDTOLineTarget(lat, lon);
},
enableDTO : func(enable) {
me.page.mfd.ConfigStore.setLayerEnabled("DTO", enable);
me.updateVisibility();
me.page.MFDMap.enableDTO(enable)
},
handleRange : func(val)
{
var incr_or_decr = (val > 0) ? 1 : -1;
me.setZoom(me.current_zoom + incr_or_decr);
me.page.MFDMap.handleRange(val);
},
# Reset controller if required when the page is displayed or hidden
@ -128,5 +53,4 @@ var NavigationMapController =
offdisplay : func() {
me.DeRegisterWithEmesary();
},
};

View file

@ -144,8 +144,7 @@ var NearestAirports =
var crsAndDst = courseAndDistance(apt);
# Display the course and distance in NM .
# 248 is the extended ASCII code for the degree symbol
var crs = sprintf("%i%c", crsAndDst[0], 248);
var crs = sprintf("%i°", crsAndDst[0]);
var dst = sprintf("%.1fnm", crsAndDst[1]);
# Convert into something we can pass straight to the UIGroup.

View file

@ -173,7 +173,7 @@ var NearestAirportsController =
handleRange : func(val)
{
# Pass any range entries to the NavMapController
me.page.mfd.NavigationMap.controller.handleZoom(val);
me.page.mfd.NavigationMap.getController().handleRange(val);
},

View file

@ -78,10 +78,7 @@ var PFDInstruments =
obj.device.svg.getElementById("PFDInstruments" ~ id).set("clip", clip);
}
#obj.insetMap = fg1000.NavMap.new(obj, [130,170], "rect(-160px, 160px, 160px, -160px)", -100, 2);
obj._SVGGroup.setInt("z-index", 10);
#obj._SVGGroup.setVisible(0);
#obj.insetMap = fg1000.NavMap.new(obj, [119,601], "rect(-109px, 109px, 109px, -109px)", 50, 2);
obj.insetMap = fg1000.NavMap.new(obj, obj.getElement("PFD-Map-Display"), [119,601], "rect(-109px, 109px, 109px, -109px)", 0, 2);
#obj.topMenu(device, obj, nil);
@ -247,7 +244,7 @@ var PFDInstruments =
me.getController().offdisplay();
},
ondisplay : func() {
me._group.setVisible(1);
me._group.setVisible(1);
me.getController().ondisplay();
},

View file

@ -57,10 +57,10 @@ var PAGE_GROUPS = [
# Mapping for header labels to specific FMS or ADC messages, and sprintf formatting
# to use
var HEADER_MAPPING = {
"BRG" : { message : "FMSLegBearingMagDeg", format : "%d"},
"BRG" : { message : "FMSLegBearingMagDeg", format : "%d°"},
"XTK" : { message : "FMSLegCourseError", format : "%.1fnm"},
"DIS" : { message : "FMSDistance", format : "%.1fnm"},
"DTK" : { message : "FMSLegDesiredTrack", format : "%d"},
"DTK" : { message : "FMSLegDesiredTrack", format : "%d°"},
"END" : { message : "EnduranceHrs", format : "%.1fhrs"},
"ESA" : { message : "EnRouteSafeAltitude", format : "%dft"}, # TODO
"ETA" : { message : "FMSEstimatedTimeArrival", format : ""}, # TODO
@ -70,8 +70,8 @@ var HEADER_MAPPING = {
"GS" : { message : "FMSGroundspeed", format : "%dkts"},
"MSA" : { message : "MinimumSafeAltitude", format : "%dft"}, # TODO
"TAS" : { message : "ADCTrueAirspeed", format : "%dkts"},
"TKE" : { message : "FMSLegTrackErrorAngle", format : "%d"},
"TRK" : { message : "FMSLegTrack", format : "%d"},
"TKE" : { message : "FMSLegTrackErrorAngle", format : "%d°"},
"TRK" : { message : "FMSLegTrack", format : "%d°"},
"VSR" : { message : "FMSLegVerticalSpeedRequired", format : "%dfpm"}, # TODO
};

View file

@ -23,7 +23,7 @@ var NavMap = {
# Airways levels.
AIRWAYS : [ "AIRWAYS", "AIRWY ON", "AIRWY LO", "AIRWY HI"],
new : func(page, element, center, clip="", zindex=0, vis_shift=0 )
new : func(page, element, center, clip="", zindex=0, vis_shift=0, static=0 )
{
var obj = {
parents : [ NavMap ],
@ -52,26 +52,30 @@ var NavMap = {
if (obj._orientationDisplay == nil) die("Unable to find element " ~ obj._pageName ~ "OrientationDisplay");
# Initialize the controllers:
var ctrl_ns = canvas.Map.Controller.get("Aircraft position");
var source = ctrl_ns.SOURCES["current-pos"];
if (source == nil) {
# TODO: amend
var source = ctrl_ns.SOURCES["current-pos"] = {
getPosition: func subvec(geo.aircraft_position().latlon(), 0, 2),
getAltitude: func getprop('/position/altitude-ft'),
getHeading: func {
if (me.aircraft_heading)
getprop('/orientation/heading-deg')
else 0
},
aircraft_heading: 1,
};
if (static) {
obj.Map.setController("Static position", "main");
} else {
var ctrl_ns = canvas.Map.Controller.get("Aircraft position");
var source = ctrl_ns.SOURCES["current-pos"];
if (source == nil) {
# TODO: amend
var source = ctrl_ns.SOURCES["current-pos"] = {
getPosition: func subvec(geo.aircraft_position().latlon(), 0, 2),
getAltitude: func getprop('/position/altitude-ft'),
getHeading: func {
if (me.aircraft_heading)
getprop('/orientation/heading-deg')
else 0
},
aircraft_heading: 1,
};
}
setlistener("/sim/gui/dialogs/map-canvas/aircraft-heading-up", func(n) {
source.aircraft_heading = n.getBoolValue();
}, 1);
# Make it move with our aircraft:
obj.Map.setController("Aircraft position", "current-pos"); # from aircraftpos.controller
}
setlistener("/sim/gui/dialogs/map-canvas/aircraft-heading-up", func(n) {
source.aircraft_heading = n.getBoolValue();
}, 1);
# Make it move with our aircraft:
obj.Map.setController("Aircraft position", "current-pos"); # from aircraftpos.controller
if (clip != "") {
obj.Map.set("clip-frame", canvas.Element.LOCAL);
@ -82,26 +86,22 @@ var NavMap = {
element.setInt("z-index", zindex);
}
var r = func(name,vis=1,zindex=nil) return caller(0)[0];
var r = func(name,on_static=1, vis=1,zindex=nil) return caller(0)[0];
# TODO: we'll need some z-indexing here, right now it's just random
foreach(var type; [r('GRID'),r('DTO',0),r('TFC',0),r('APT'),r('DME'),r('VOR_FG1000'),r('NDB'),r('FIX',0),r('GPS'),r('RTE'),r('WPT'),r('FLT'),r('WXR',0),r('APS')] ) {
obj.Map.addLayer(
factory: canvas.SymbolLayer,
type_arg: type.name,
priority: 4,
style: obj.Styles.getStyle(type.name),
options: obj.Options.getOption(type.name),
visible: type.vis);
}
foreach (var layer_name; obj._page.mfd.ConfigStore.getLayerNames()) {
var layer = obj._page.mfd.ConfigStore.getLayer(layer_name);
foreach(var type; [ r('STAMEN_terrain'),r('STAMEN'), r('OpenAIP') ]) {
if ((static == 0) or (layer.static == 1)) {
# Not all layers are displayed for all map types. Specifically,
# some layers are not displayed on static maps - e.g. DirectTo
obj.Map.addLayer(
factory: canvas.OverlayLayer,
type_arg: type.name,
priority: 1,
style: obj.Styles.getStyle(type.name),
options: obj.Options.getOption(type.name),
factory: layer.factory,
type_arg: layer_name,
priority: layer.priority,
style: obj.Styles.getStyle(layer_name),
options: obj.Options.getOption(layer_name),
visible: 0);
}
}
obj.setZoom(obj.current_zoom);
@ -110,6 +110,14 @@ var NavMap = {
return obj;
},
setController : func(type, controller ) {
me.Map.setController(type, controller);
},
getController : func() {
return me.Map.getController();
},
toggleLayerVisible : func(name) {
(var l = me.Map.getLayer(name)).setVisible(l.getVisible());
},
@ -155,6 +163,8 @@ var NavMap = {
foreach (var layer_name; me._page.mfd.ConfigStore.getLayerNames()) {
var layer = me._page.mfd.ConfigStore.getLayer(layer_name);
if (me.Map.getLayer(layer_name) == nil) continue;
# Layers are only displayed if:
# 1) the user has enabled them.
# 2) The current zoom level is _less_ than the maximum range for the layer
@ -165,7 +175,7 @@ var NavMap = {
var effective_range = fg1000.RANGES[effective_zoom].range;
if (layer.enabled and
(effective_range <= layer.range) and
(me.declutter <= layer.declutter) )
(me.declutter <= layer.declutter) )
{
me.Map.getLayer(layer_name).setVisible(1);
} else {