1
0
Fork 0

Nearest NDB page and display NDBs

This commit is contained in:
Stuart Buchanan 2018-02-02 16:06:42 +00:00
parent 6f6cc8f925
commit bbd99635e3
8 changed files with 977 additions and 28 deletions

View file

@ -0,0 +1,764 @@
<?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="NearestNDB.svg">
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#ffffff"
borderopacity="0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.5726105"
inkscape:cx="935.29615"
inkscape:cy="308.8847"
inkscape:document-units="px"
inkscape:current-layer="NearestNDBGroup"
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"
showguides="false">
<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 />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="NearestNDBLayer">
<g
inkscape:label="#g4237"
id="NearestNDBGroup">
<rect
inkscape:label="#rect8921"
y="53.505371"
x="724.50537"
height="688.98926"
width="309.98926"
id="Background"
style="opacity:1;fill:#1a3030;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.01074231;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
y="77.683525"
x="730.68347"
height="264.61694"
width="288.63297"
id="rect9743"
style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.39907384;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
y="67.41272"
x="745.41272"
height="20.174551"
width="89.073318"
id="rect9753"
style="opacity:1;fill:#1a3030;fill-opacity:1;fill-rule:nonzero;stroke:#fffcfa;stroke-width:1.028;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
sodipodi:linespacing="125%"
id="text9749"
y="80.307159"
x="774.57446"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:14.51583004px;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:0.967722px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"
transform="scale(0.96767669,1.033403)"><tspan
y="80.307159"
x="774.57446"
id="tspan9751"
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';stroke-width:0.967722px">NEAREST NDB</tspan><tspan
y="98.45195"
x="774.57446"
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';stroke-width:0.967722px"
id="tspan4878" /></text>
<text
sodipodi:linespacing="125%"
id="NearestNDBID0"
y="103.49844"
x="794.41644"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:19.35444069px;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="#text4232"
transform="scale(0.96767632,1.0334034)"><tspan
y="103.49844"
x="794.41644"
id="tspan4242"
sodipodi:role="line">KSFO</tspan></text>
<text
inkscape:label="#text4232"
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:19.35444069px;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="908.79016"
y="103.49844"
id="NearestNDBCRS0"
sodipodi:linespacing="125%"
transform="scale(0.96767632,1.0334034)"><tspan
sodipodi:role="line"
id="tspan4253"
x="908.79016"
y="103.49844">359</tspan></text>
<text
sodipodi:linespacing="125%"
id="NearestNDBDST0"
y="104.30227"
x="1031.7998"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20.26409912px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow, Condensed';text-align:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#80ffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"
inkscape:label="#text4232"
transform="scale(0.96767632,1.0334034)"><tspan
y="104.30227"
x="1031.7998"
id="tspan4257"
sodipodi:role="line">200nm</tspan></text>
<path
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.87584442px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 740.43792,98.041859 0,4.062081 9.44228,0 0,4.06207 8.67785,-6.0619 -8.67785,-6.124308 0,4.062057 z"
id="NearestNDBArrow0"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccc"
inkscape:label="#path4259" />
<rect
y="365.384"
x="730.77856"
height="186.78522"
width="288.44296"
id="rect4331"
style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
y="353.10547"
x="745.5"
height="20.02869"
width="89.028687"
id="rect4333"
style="opacity:1;fill:#1a3030;fill-opacity:1;fill-rule:nonzero;stroke:#fffcfa;stroke-width:1;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
sodipodi:linespacing="125%"
id="text4335"
y="357.03204"
x="775.05835"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:14.51583004px;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;stroke:#fffcfa;stroke-width:0.967722px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"
transform="scale(0.96767669,1.033403)"><tspan
y="357.03204"
x="775.05835"
id="tspan4337"
sodipodi:role="line"
style="stroke-width:0.967722px">INFORMATION</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.35444069px;line-height:125%;font-family:Sans;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="753.573"
y="249.65851"
id="text4355"
sodipodi:linespacing="125%"
transform="scale(0.96767669,1.033403)"><tspan
sodipodi:role="line"
id="tspan4357"
x="753.573"
y="249.65851" /></text>
<text
sodipodi:linespacing="125%"
id="NearestNDBLat"
y="496.22913"
x="763.41406"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:19.35444069px;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="#text4232"
transform="scale(0.96767669,1.033403)"><tspan
y="496.22913"
x="763.41406"
id="tspan4361"
sodipodi:role="line">N 56 45.29</tspan></text>
<rect
style="opacity:1;fill:#c0c0c0;fill-opacity:1;fill-rule:nonzero;stroke:#c0c0c0;stroke-width:1.35785162;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="NearestNDBScrollTrough"
width="4.6345778"
height="248.64197"
x="1010.6788"
y="83.679108"
inkscape:label="#rect4231" />
<rect
inkscape:label="#rect4231"
y="83.481094"
x="1010.4811"
height="115.03781"
width="5.0298772"
id="NearestNDBScrollThumb"
style="opacity:1;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:#808080;stroke-width:0.96218586;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<flowRoot
xml:space="preserve"
id="flowRoot5077"
style="fill:black;stroke:none;stroke-opacity:1;stroke-width:1px;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;font-family:Sans;font-style:normal;font-weight:normal;font-size:20px;line-height:125%;letter-spacing:0px;word-spacing:0px;-inkscape-font-specification:Sans;font-stretch:normal;font-variant:normal;text-anchor:start;text-align:start;writing-mode:lr"><flowRegion
id="flowRegion5079"><rect
id="rect5081"
width="365"
height="275"
x="695"
y="93" /></flowRegion><flowPara
id="flowPara5083" /></flowRoot> <text
transform="scale(0.96767632,1.0334034)"
inkscape:label="#text4232"
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:19.35444069px;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="794.41644"
y="124.86945"
id="NearestNDBID1"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5087"
x="794.41644"
y="124.86945">KSFO</tspan></text>
<text
transform="scale(0.96767632,1.0334034)"
sodipodi:linespacing="125%"
id="NearestNDBCRS1"
y="124.86945"
x="908.79016"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:19.35444069px;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="#text4232"><tspan
y="124.86945"
x="908.79016"
id="tspan5091"
sodipodi:role="line">359</tspan></text>
<text
transform="scale(0.96767632,1.0334034)"
inkscape:label="#text4232"
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20.26409912px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow, Condensed';text-align:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#80ffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="1031.7998"
y="125.67334"
id="NearestNDBDST1"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5095"
x="1031.7998"
y="125.67334">200nm</tspan></text>
<path
inkscape:label="#path4259"
sodipodi:nodetypes="cccccccc"
inkscape:connector-curvature="0"
id="NearestNDBArrow1"
d="m 740.43792,120.12679 0,4.06208 9.44228,0 0,4.06207 8.67785,-6.0619 -8.67785,-6.1243 0,4.06205 z"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.87584442px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<text
sodipodi:linespacing="125%"
id="NearestNDBID2"
y="146.24054"
x="794.41644"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:19.35444069px;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="#text4232"
transform="scale(0.96767632,1.0334034)"><tspan
y="146.24054"
x="794.41644"
id="tspan5101"
sodipodi:role="line">KSFO</tspan></text>
<text
inkscape:label="#text4232"
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:19.35444069px;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="908.79016"
y="146.24054"
id="NearestNDBCRS2"
sodipodi:linespacing="125%"
transform="scale(0.96767632,1.0334034)"><tspan
sodipodi:role="line"
id="tspan5105"
x="908.79016"
y="146.24054">359</tspan></text>
<text
sodipodi:linespacing="125%"
id="NearestNDBDST2"
y="147.04431"
x="1031.7998"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20.26409912px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow, Condensed';text-align:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#80ffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"
inkscape:label="#text4232"
transform="scale(0.96767632,1.0334034)"><tspan
y="147.04431"
x="1031.7998"
id="tspan5109"
sodipodi:role="line">200nm</tspan></text>
<path
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.87584442px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 740.43792,142.21169 0,4.06208 9.44228,0 0,4.06207 8.67785,-6.0619 -8.67785,-6.1243 0,4.06205 z"
id="NearestNDBArrow2"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccc"
inkscape:label="#path4259" />
<text
transform="scale(0.96767632,1.0334034)"
inkscape:label="#text4232"
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:19.35444069px;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="794.41644"
y="167.61153"
id="NearestNDBID3"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5115"
x="794.41644"
y="167.61153">KSFO</tspan></text>
<text
transform="scale(0.96767632,1.0334034)"
sodipodi:linespacing="125%"
id="NearestNDBCRS3"
y="167.61153"
x="908.79016"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:19.35444069px;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="#text4232"><tspan
y="167.61153"
x="908.79016"
id="tspan5119"
sodipodi:role="line">359</tspan></text>
<text
transform="scale(0.96767632,1.0334034)"
inkscape:label="#text4232"
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20.26409912px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow, Condensed';text-align:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#80ffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="1031.7998"
y="168.41536"
id="NearestNDBDST3"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5123"
x="1031.7998"
y="168.41536">200nm</tspan></text>
<path
inkscape:label="#path4259"
sodipodi:nodetypes="cccccccc"
inkscape:connector-curvature="0"
id="NearestNDBArrow3"
d="m 740.43792,164.29659 0,4.06208 9.44228,0 0,4.06207 8.67785,-6.0619 -8.67785,-6.1243 0,4.06205 z"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.87584442px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<text
sodipodi:linespacing="125%"
id="NearestNDBID4"
y="188.9826"
x="795.09454"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:19.35444069px;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="#text4232"
transform="scale(0.96767632,1.0334034)"><tspan
y="188.9826"
x="795.09454"
id="tspan5129"
sodipodi:role="line">KSFO</tspan></text>
<text
inkscape:label="#text4232"
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:19.35444069px;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="909.46826"
y="188.9826"
id="NearestNDBCRS4"
sodipodi:linespacing="125%"
transform="scale(0.96767632,1.0334034)"><tspan
sodipodi:role="line"
id="tspan5133"
x="909.46826"
y="188.9826">359</tspan></text>
<text
sodipodi:linespacing="125%"
id="NearestNDBDST4"
y="189.78644"
x="1032.4779"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20.26409912px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow, Condensed';text-align:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#80ffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"
inkscape:label="#text4232"
transform="scale(0.96767632,1.0334034)"><tspan
y="189.78644"
x="1032.4779"
id="tspan5137"
sodipodi:role="line">200nm</tspan></text>
<path
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.87584442px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 741.0941,186.38149 0,4.06208 9.44228,0 0,4.06207 8.67785,-6.0619 -8.67785,-6.1243 0,4.06205 z"
id="NearestNDBArrow4"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccc"
inkscape:label="#path4259" />
<text
transform="scale(0.96767632,1.0334034)"
inkscape:label="#text4232"
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:19.35444069px;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="795.09454"
y="210.35364"
id="NearestNDBID5"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5143"
x="795.09454"
y="210.35364">KSFO</tspan></text>
<text
transform="scale(0.96767632,1.0334034)"
sodipodi:linespacing="125%"
id="NearestNDBCRS5"
y="210.35364"
x="909.46826"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:19.35444069px;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="#text4232"><tspan
y="210.35364"
x="909.46826"
id="tspan5147"
sodipodi:role="line">359</tspan></text>
<text
transform="scale(0.96767632,1.0334034)"
inkscape:label="#text4232"
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20.26409912px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow, Condensed';text-align:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#80ffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="1032.4779"
y="211.15747"
id="NearestNDBDST5"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5151"
x="1032.4779"
y="211.15747">200nm</tspan></text>
<path
inkscape:label="#path4259"
sodipodi:nodetypes="cccccccc"
inkscape:connector-curvature="0"
id="NearestNDBArrow5"
d="m 741.0941,208.4664 0,4.06208 9.44228,0 0,4.06207 8.67785,-6.0619 -8.67785,-6.1243 0,4.06205 z"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.87584442px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<text
sodipodi:linespacing="125%"
id="NearestNDBID6"
y="231.72469"
x="795.09454"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:19.35444069px;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="#text4232"
transform="scale(0.96767632,1.0334034)"><tspan
y="231.72469"
x="795.09454"
id="tspan5157"
sodipodi:role="line">KSFO</tspan></text>
<text
inkscape:label="#text4232"
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:19.35444069px;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="909.46826"
y="231.72469"
id="NearestNDBCRS6"
sodipodi:linespacing="125%"
transform="scale(0.96767632,1.0334034)"><tspan
sodipodi:role="line"
id="tspan5161"
x="909.46826"
y="231.72469">359</tspan></text>
<text
sodipodi:linespacing="125%"
id="NearestNDBDST6"
y="232.52846"
x="1032.4779"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20.26409912px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow, Condensed';text-align:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#80ffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"
inkscape:label="#text4232"
transform="scale(0.96767632,1.0334034)"><tspan
y="232.52846"
x="1032.4779"
id="tspan5165"
sodipodi:role="line">200nm</tspan></text>
<path
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.87584442px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 741.0941,230.55131 0,4.06208 9.44228,0 0,4.06207 8.67785,-6.0619 -8.67785,-6.1243 0,4.06205 z"
id="NearestNDBArrow6"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccc"
inkscape:label="#path4259" />
<text
transform="scale(0.96767632,1.0334034)"
inkscape:label="#text4232"
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:19.35444069px;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="795.09454"
y="253.09572"
id="NearestNDBID7"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5171"
x="795.09454"
y="253.09572">KSFO</tspan></text>
<text
transform="scale(0.96767632,1.0334034)"
sodipodi:linespacing="125%"
id="NearestNDBCRS7"
y="253.09572"
x="909.46826"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:19.35444069px;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="#text4232"><tspan
y="253.09572"
x="909.46826"
id="tspan5175"
sodipodi:role="line">359</tspan></text>
<text
transform="scale(0.96767632,1.0334034)"
inkscape:label="#text4232"
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20.26409912px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow, Condensed';text-align:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#80ffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="1032.4779"
y="253.89952"
id="NearestNDBDST7"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5179"
x="1032.4779"
y="253.89952">200nm</tspan></text>
<path
inkscape:label="#path4259"
sodipodi:nodetypes="cccccccc"
inkscape:connector-curvature="0"
id="NearestNDBArrow7"
d="m 741.0941,252.63622 0,4.06208 9.44228,0 0,4.06207 8.67785,-6.0619 -8.67785,-6.1243 0,4.06205 z"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.87584442px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<text
sodipodi:linespacing="125%"
id="NearestNDBID8"
y="274.46677"
x="795.09454"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:19.35444069px;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="#text4232"
transform="scale(0.96767632,1.0334034)"><tspan
y="274.46677"
x="795.09454"
id="tspan5227"
sodipodi:role="line">KSFO</tspan></text>
<text
inkscape:label="#text4232"
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:19.35444069px;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="909.46826"
y="274.46677"
id="NearestNDBCRS8"
sodipodi:linespacing="125%"
transform="scale(0.96767632,1.0334034)"><tspan
sodipodi:role="line"
id="tspan5231"
x="909.46826"
y="274.46677">359</tspan></text>
<text
sodipodi:linespacing="125%"
id="NearestNDBDST8"
y="275.2706"
x="1032.4779"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20.26409912px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow, Condensed';text-align:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#80ffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"
inkscape:label="#text4232"
transform="scale(0.96767632,1.0334034)"><tspan
y="275.2706"
x="1032.4779"
id="tspan5235"
sodipodi:role="line">200nm</tspan></text>
<path
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.87584442px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 741.0941,274.72112 0,4.06208 9.44228,0 0,4.06207 8.67785,-6.0619 -8.67785,-6.1243 0,4.06205 z"
id="NearestNDBArrow8"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccc"
inkscape:label="#path4259" />
<text
transform="scale(0.96767632,1.0334034)"
inkscape:label="#text4232"
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:19.35444069px;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="795.09454"
y="295.83777"
id="NearestNDBID9"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5241"
x="795.09454"
y="295.83777">KSFO</tspan></text>
<text
transform="scale(0.96767632,1.0334034)"
sodipodi:linespacing="125%"
id="NearestNDBCRS9"
y="295.83777"
x="909.46826"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:19.35444069px;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="#text4232"><tspan
y="295.83777"
x="909.46826"
id="tspan5245"
sodipodi:role="line">359</tspan></text>
<text
transform="scale(0.96767632,1.0334034)"
inkscape:label="#text4232"
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20.26409912px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow, Condensed';text-align:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#80ffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="1032.4779"
y="296.6416"
id="NearestNDBDST9"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5249"
x="1032.4779"
y="296.6416">200nm</tspan></text>
<path
inkscape:label="#path4259"
sodipodi:nodetypes="cccccccc"
inkscape:connector-curvature="0"
id="NearestNDBArrow9"
d="m 741.0941,296.80602 0,4.06208 9.44228,0 0,4.06207 8.67785,-6.0619 -8.67785,-6.1243 0,4.06205 z"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.87584442px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<text
sodipodi:linespacing="125%"
id="NearestNDBID10"
y="317.20883"
x="795.09454"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:19.35444069px;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="#text4232"
transform="scale(0.96767632,1.0334034)"><tspan
y="317.20883"
x="795.09454"
id="tspan5255"
sodipodi:role="line">KSFO</tspan></text>
<text
inkscape:label="#text4232"
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:19.35444069px;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="909.46826"
y="317.20883"
id="NearestNDBCRS10"
sodipodi:linespacing="125%"
transform="scale(0.96767632,1.0334034)"><tspan
sodipodi:role="line"
id="tspan5259"
x="909.46826"
y="317.20883">359</tspan></text>
<text
sodipodi:linespacing="125%"
id="NearestNDBDST10"
y="318.01266"
x="1032.4779"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:20.26409912px;line-height:125%;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow, Condensed';text-align:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#80ffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"
inkscape:label="#text4232"
transform="scale(0.96767632,1.0334034)"><tspan
y="318.01266"
x="1032.4779"
id="tspan5263"
sodipodi:role="line">200nm</tspan></text>
<path
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.87584442px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 741.0941,318.89093 0,4.06208 9.44228,0 0,4.06207 8.67785,-6.0619 -8.67785,-6.1243 0,4.06205 z"
id="NearestNDBArrow10"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccc"
inkscape:label="#path4259" />
<rect
style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect5267"
width="289.3338"
height="37.333771"
x="730.30444"
y="574.3562" />
<rect
style="opacity:1;fill:#1a3030;fill-opacity:1;fill-rule:nonzero;stroke:#fffcfa;stroke-width:0.88099998;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect5269"
width="84.095772"
height="20.044155"
x="745.46356"
y="562.51532" />
<text
transform="scale(0.96767669,1.033403)"
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:14.51583004px;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;stroke:#fffcfa;stroke-width:0.967722px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="775.02869"
y="559.68054"
id="text5271"
sodipodi:linespacing="125%"><tspan
style="stroke-width:0.967722px"
sodipodi:role="line"
id="tspan5273"
x="775.02869"
y="559.68054">FREQUENCY</tspan></text>
<text
transform="scale(0.96767669,1.033403)"
inkscape:label="#text4232"
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:19.35444069px;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="763.41406"
y="518.86725"
id="NearestNDBLon"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5285"
x="763.41406"
y="518.86725">E 56 45.78</tspan></text>
<text
sodipodi:linespacing="125%"
id="NearestNDBFreq"
y="582.37469"
x="763.50854"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:19.35444069px;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="#text4232"
transform="scale(0.96767669,1.033403)"><tspan
id="tspan5293"
y="582.37469"
x="763.50854"
sodipodi:role="line">116.650</tspan></text>
<text
sodipodi:linespacing="125%"
id="NearestNDBName"
y="379.29587"
x="763.41406"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:19.35444069px;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="#text4232"
transform="scale(0.96767669,1.033403)"><tspan
y="379.29587"
x="763.41406"
id="tspan4361-3"
sodipodi:role="line">NAME</tspan></text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 44 KiB

View file

@ -106,6 +106,21 @@ getNavDataById : func (id)
return navdata;
},
# Find a Nav Aid by ID. This searches based on the
# current location and returns an array of objects that match the id.
getNavAidById : func (params)
{
var id = params.id;
var type = "all";
if (params.type != nil) type = params.type;
var navdata = findNavaidsByID(id, type);
if ((size(navdata) > 0) and (! me._recentWaypoints.contains(id))) {
me._recentWaypoints.insert(0, id);
}
return navdata;
},
# Retrieve the current flightplan and return it
getFlightplan : func ()
{
@ -229,6 +244,10 @@ RegisterWithEmesary : func()
notification.EventParameter.Value = controller.getNavDataById(notification.EventParameter.Value);
return emesary.Transmitter.ReceiptStatus_Finished;
}
if (id == "NavAidByID") {
notification.EventParameter.Value = controller.getNavAidById(notification.EventParameter.Value);
return emesary.Transmitter.ReceiptStatus_Finished;
}
if (id == "NavDataWithinRange") {
notification.EventParameter.Value = controller.getNavDataWithinRange(notification.EventParameter.Value);
return emesary.Transmitter.ReceiptStatus_Finished;

View file

@ -55,7 +55,7 @@ var NavigationMap =
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'),r('NDB'),r('FIX',0),r('GPS'),r('RTE'),r('WPT'),r('FLT'),r('WXR',0),r('APS')] ) {
foreach(var type; [r('GRID'),r('DTO',0),r('TFC',0),r('APT'),r('DME'),r('VOR'),r('FIX',0),r('NDB'),r('GPS'),r('RTE'),r('WPT'),r('FLT'),r('WXR',0),r('APS')] ) {
obj.MFDMap.addLayer(
factory: canvas.SymbolLayer,
type_arg: type.name,

View file

@ -49,7 +49,7 @@ var NavigationMapStyles =
me.Styles.FIX = {};
me.Styles.FIX.color = [0,0,0]; # White outline
me.Styles.FIX.fill_color = [1,1,1,1]; # Black fill
me.Styles.FIX.scale_factor = 0.4; # 40%
me.Styles.FIX.scale_factor = 0.5; # 60%
me.Styles.FIX.text_offset = [0, -12];
me.Styles.FIX.text_color = [0,0,0,1]; # Black text ...
@ -58,6 +58,17 @@ var NavigationMapStyles =
me.Styles.FIX.text_padding = 2;
me.Styles.FIX.text_alignment = 'center-bottom';
me.Styles.NDB = {};
me.Styles.NDB.scale_factor = 0.5; # 60%
me.Styles.NDB.dash_array = [1,1];
me.Styles.NDB.text_offset = [0, -12];
me.Styles.NDB.text_color = [0,0,0,1]; # Black text ...
me.Styles.NDB.text_bgcolor = [1,1,1,1]; # ... on a white background
me.Styles.NDB.text_mode = canvas.Text.TEXT + canvas.Text.FILLEDBOUNDINGBOX;
me.Styles.NDB.text_padding = 2;
me.Styles.NDB.text_alignment = 'center-bottom';
me.Styles.VOR = {};
me.Styles.VOR.range_line_width = 2;
me.Styles.VOR.radial_line_width = 1;

View file

@ -113,6 +113,8 @@ var NearestIntersections =
if (nav == nil) return;
debug.dump(nav);
if (nav.lat < 0.0) {
me.setTextElement("Lat", sprintf("S %.4f", -nav.lat));
} else {

View file

@ -95,12 +95,12 @@ var NearestIntersectionsController =
},
getNavDataItem : func(id) {
# Use Emesary to get the airport
# Use Emesary to get the Fix
var notification = notifications.PFDEventNotification.new(
"MFD",
1,
notifications.PFDEventNotification.NavData,
{Id: "NavDataByID", Value: id});
{Id: "NavAidByID", Value: { id: id, type: "fix"} });
var response = me._transmitter.NotifyAll(notification);

View file

@ -10,34 +10,133 @@ var NearestNDB =
],
};
obj.topMenu(device, obj, nil);
obj.setController(fg1000.NearestNDBController.new(obj, svg));
# Dynamic elements. There is a single dynamic element containing the list of
# the 25 nearest intersections.
obj.select = PFD.GroupElement.new(
obj.pageName,
svg,
[ "Arrow", "ID", "CRS", "DST"],
11,
"Arrow",
1,
"ScrollTrough",
"ScrollThumb",
250 - 116
);
# Other dynamic text elements
obj.addTextElements(["Lat", "Lon", "Name", "Freq"]);
obj.topMenu(device, obj, nil);
return obj;
},
# Indicate which group is selected by colour of the softkeys
display_toggle : func(device, svg, mi, group) {
var bg_name = sprintf("SoftKey%d-bg",mi.menu_id);
if (me.getController().getSelectedGroup() == group) {
device.svg.getElementById(bg_name).setColorFill(0.5,0.5,0.5);
svg.setColor(0.0,0.0,0.0);
} else {
device.svg.getElementById(bg_name).setColorFill(0.0,0.0,0.0);
svg.setColor(1.0,1.0,1.0);
}
svg.setText(mi.title);
svg.setVisible(1); # display function
},
showCRSR : func() {
me.select.showCRSR();
},
hideCRSR : func() {
me.select.hideCRSR();
},
offdisplay : func() {
me._group.setVisible(0);
# The Nearest... pages use the underlying navigation map.
me.mfd.NavigationMap.offdisplayPartial();
# Reset the menu colours. Shouldn't have to do this here, but
# there's not currently an obvious other location to do so.
for(var i = 0; i < 12; i +=1) {
var name = sprintf("SoftKey%d",i);
me.device.svg.getElementById(name ~ "-bg").setColorFill(0.0,0.0,0.0);
me.device.svg.getElementById(name).setColor(1.0,1.0,1.0);
}
me.resetMenuColors();
me.getController().offdisplay();
},
ondisplay : func() {
me._group.setVisible(1);
me.mfd.setPageTitle(me.title);
me.getController().ondisplay();
# The Nearest... pages use the underlying navigation map.
me.mfd.NavigationMap.ondisplayPartial();
me.mfd.setPageTitle(me.title);
},
updateNavData : func(navdata) {
if ((navdata == nil) or (size(navdata) == 0)) return;
var navDataList = [];
for (var i = 0; i < size(navdata); i = i + 1) {
var nav = navdata[i];
var crsAndDst = courseAndDistance(nav);
# 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 dst = sprintf("%.1fnm", crsAndDst[1]);
# Convert into something we can pass straight to the UIGroup.
append(navDataList, {
Arrow : nav.id,
ID: nav.id,
CRS: crs,
DST: dst,
});
}
me.select.setValues(navDataList);
if (size(navDataList) > 0) {
me.updateNavDataItem(navdata[0]);
} else {
me.setTextElement("Name", "NONE WITHIN 200NM");
me.setTextElement("Lon", "");
me.setTextElement("Lat", "");
me.setTextElement("Frequency", "");
}
},
updateNavDataItem : func(nav) {
if (nav == nil) return;
if (nav.lat < 0.0) {
me.setTextElement("Lat", sprintf("S %.4f", -nav.lat));
} else {
me.setTextElement("Lat", sprintf("N %.4f", nav.lat));
}
if (nav.lon < 0.0) {
me.setTextElement("Lon", sprintf("W%3.4f", -nav.lon));
} else {
me.setTextElement("Lon", sprintf("E%3.4f", nav.lon));
}
me.setTextElement("Freq", sprintf("%.2f", nav.frequency / 100.0));
me.setTextElement("Name", nav.name);
# Display the DTO line to the airport
me.mfd.NavigationMap.getController().setDTOLineTarget(nav.lat, nav.lon);
},
topMenu : func(device, pg, menuitem) {
pg.clearMenu();
pg.resetMenuColors();
pg.addMenuItem(0, "ENGINE", pg.mfd.EIS, pg.mfd.EIS.engineMenu);
pg.addMenuItem(2, "MAP", pg.mfd.NavigationMap, pg.mfd.NavigationMap.mapMenu);
device.updateMenus();
},
};

View file

@ -3,57 +3,111 @@ var NearestNDBController =
{
new : func (page, svg)
{
var obj = {
parents : [ NearestNDBController, MFDPageController.new(page) ],
_crsrToggle : 0,
_recipient : nil,
_page : page,
};
var obj = { parents : [ NearestNDBController, MFDPageController.new(page) ] };
obj.page = page;
obj._crsrToggle = 0;
return obj;
},
# Input Handling
handleCRSR : func() {
me._crsrToggle = (! me._crsrToggle);
if (me._crsrToggle) {
me.page.showCRSR();
} else {
me._page.hideCRSR();
me.page.hideCRSR();
}
return emesary.Transmitter.ReceiptStatus_Finished;
},
handleFMSInner : func(value) {
if (me._crsrToggle == 1) {
# Scroll through whatever is the current list
me.page.select.incrSmall(value);
var id = me.page.select.getValue();
var data = me.getNavDataItem(id);
if ((data != nil) and (size(data) >0)) me.page.updateNavDataItem(data[0]);
return emesary.Transmitter.ReceiptStatus_Finished;
} else {
# Pass to the page group controller to display and scroll through the page group menu
return me._page.mfd.SurroundController.handleFMSInner(value);
return me.page.mfd.SurroundController.handleFMSInner(value);
}
},
handleFMSOuter : func(value) {
if (me._crsrToggle == 1) {
# Scroll through whatever is the current list
me.page.select.incrSmall(value);
var id = me.page.select.getValue();
var data = me.getNavDataItem(id);
if ((data != nil) and (size(data) >0)) me.page.updateNavDataItem(data[0]);
return emesary.Transmitter.ReceiptStatus_Finished;
} else {
# Pass to the page group controller to display and scroll through the page group menu
return me._page.mfd.SurroundController.handleFMSOuter(value);
return me.page.mfd.SurroundController.handleFMSOuter(value);
}
},
handleEnter : func(value) {
if (me._crsrToggle == 1) {
me.page.select.incrSmall(value);
var id = me.page.select.getValue();
var data = me.getNavDataItem(id);
if ((data != nil) and (size(data) >0)) me.page.updateNavDataItem(data[0]);
return emesary.Transmitter.ReceiptStatus_Finished;
} else {
return emesary.Transmitter.ReceiptStatus_NotProcessed;
}
},
handleRange : func(val)
{
# Pass any range entries to the NavMapController
me.page.mfd.NavigationMap.getController().handleRange(val);
},
# Reset controller if required when the page is displayed or hidden
ondisplay : func() {
me.RegisterWithEmesary();
var fixes = me.getNearestNavData("ndb");
me.page.updateNavData(fixes);
me.page.mfd.NavigationMap.getController().enableDTO(1);
me._crsrToggle = 0;
me.page.hideCRSR();
},
offdisplay : func() {
me.page.mfd.NavigationMap.getController().enableDTO(0);
me.DeRegisterWithEmesary();
},
getNearestNavData : func(type) {
var notification = notifications.PFDEventNotification.new(
"MFD",
1,
notifications.PFDEventNotification.NavData,
{Id: "NavDataWithinRange", Value: type});
var response = me._transmitter.NotifyAll(notification);
if (! me._transmitter.IsFailed(response)) {
return notification.EventParameter.Value;
} else {
return nil;
}
},
getNavDataItem : func(id) {
# Use Emesary to get the Navigation data
var notification = notifications.PFDEventNotification.new(
"MFD",
1,
notifications.PFDEventNotification.NavData,
{Id: "NavAidByID", Value: { id: id, type: "ndb"} });
var response = me._transmitter.NotifyAll(notification);
if (! me._transmitter.IsFailed(response)) {
return notification.EventParameter.Value;
} else {
return nil;
}
},
};