FG1000 Refactor to use common map.
Also add degree symbols to various pages.
This commit is contained in:
parent
921ce612cb
commit
89710b3c45
14 changed files with 809 additions and 445 deletions
|
@ -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 |
611
Aircraft/Instruments-3d/FG1000/MFDPages/DirectToPFD.svg
Normal file
611
Aircraft/Instruments-3d/FG1000/MFDPages/DirectToPFD.svg
Normal 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 |
|
@ -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 |
|
@ -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 : {
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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();
|
||||
},
|
||||
|
||||
};
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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);
|
||||
},
|
||||
|
||||
|
||||
|
|
|
@ -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();
|
||||
},
|
||||
|
||||
|
|
|
@ -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
|
||||
};
|
||||
|
||||
|
|
|
@ -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 {
|
||||
|
|
Loading…
Reference in a new issue