From 4c3c5cde632cc041fcc4e82940860d95571c6a9b Mon Sep 17 00:00:00 2001
From: Stuart Buchanan <stuart_d_buchanan@yahoo.co.uk>
Date: Wed, 31 Jan 2018 22:47:35 +0000
Subject: [PATCH] Implement Nearest Intersections page.

---
 .../FG1000/Models/NearestIntersections.svg    | 790 ++++++++++++++++++
 .../Nasal/Interfaces/NavDataInterface.nas     |  24 +
 .../NavigationMap/NavigationMapStyles.nas     |  10 +-
 .../Nasal/NearestAirports/NearestAirports.nas |   2 +-
 .../NearestIntersections.nas                  | 133 ++-
 .../NearestIntersectionsController.nas        | 109 ++-
 6 files changed, 1040 insertions(+), 28 deletions(-)
 create mode 100644 Aircraft/Instruments-3d/FG1000/Models/NearestIntersections.svg

diff --git a/Aircraft/Instruments-3d/FG1000/Models/NearestIntersections.svg b/Aircraft/Instruments-3d/FG1000/Models/NearestIntersections.svg
new file mode 100644
index 000000000..f2c705ca0
--- /dev/null
+++ b/Aircraft/Instruments-3d/FG1000/Models/NearestIntersections.svg
@@ -0,0 +1,790 @@
+<?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="NearestIntersections.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="433.27197"
+     inkscape:document-units="px"
+     inkscape:current-layer="NearestIntersectionsGroup"
+     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="NearestIntersectionsLayer">
+    <g
+       inkscape:label="#g4237"
+       id="NearestIntersectionsGroup">
+      <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.398781"
+         x="745.3988"
+         height="20.202429"
+         width="84.190727"
+         id="rect9753"
+         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="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 INT</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="NearestIntersectionsID0"
+         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="NearestIntersectionsCRS0"
+         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="NearestIntersectionsDST0"
+         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="NearestIntersectionsArrow0"
+         inkscape:connector-curvature="0"
+         sodipodi:nodetypes="cccccccc"
+         inkscape:label="#path4259" />
+      <rect
+         y="365.05319"
+         x="730.44775"
+         height="67.499069"
+         width="289.10455"
+         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="NearestIntersectionsLat"
+         y="381.66174"
+         x="760.81995"
+         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="381.66174"
+           x="760.81995"
+           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="NearestIntersectionsScrollTrough"
+         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="NearestIntersectionsScrollThumb"
+         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"></flowPara></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="NearestIntersectionsID1"
+         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="NearestIntersectionsCRS1"
+         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="NearestIntersectionsDST1"
+         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="NearestIntersectionsArrow1"
+         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="NearestIntersectionsID2"
+         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="NearestIntersectionsCRS2"
+         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="NearestIntersectionsDST2"
+         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="NearestIntersectionsArrow2"
+         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="NearestIntersectionsID3"
+         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="NearestIntersectionsCRS3"
+         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="NearestIntersectionsDST3"
+         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="NearestIntersectionsArrow3"
+         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="NearestIntersectionsID4"
+         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="NearestIntersectionsCRS4"
+         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="NearestIntersectionsDST4"
+         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="NearestIntersectionsArrow4"
+         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="NearestIntersectionsID5"
+         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="NearestIntersectionsCRS5"
+         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="NearestIntersectionsDST5"
+         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="NearestIntersectionsArrow5"
+         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="NearestIntersectionsID6"
+         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="NearestIntersectionsCRS6"
+         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="NearestIntersectionsDST6"
+         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="NearestIntersectionsArrow6"
+         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="NearestIntersectionsID7"
+         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="NearestIntersectionsCRS7"
+         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="NearestIntersectionsDST7"
+         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="NearestIntersectionsArrow7"
+         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="NearestIntersectionsID8"
+         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="NearestIntersectionsCRS8"
+         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="NearestIntersectionsDST8"
+         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="NearestIntersectionsArrow8"
+         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="NearestIntersectionsID9"
+         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="NearestIntersectionsCRS9"
+         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="NearestIntersectionsDST9"
+         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="NearestIntersectionsArrow9"
+         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="NearestIntersectionsID10"
+         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="NearestIntersectionsCRS10"
+         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="NearestIntersectionsDST10"
+         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="NearestIntersectionsArrow10"
+         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:0.99875104;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+         id="rect5267"
+         width="289.00125"
+         height="84.001251"
+         x="730.4707"
+         y="465.49939" />
+      <rect
+         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"
+         id="rect5269"
+         width="108.92543"
+         height="19.925432"
+         x="745.52295"
+         y="453.55164" />
+      <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="454.18149"
+         id="text5271"
+         sodipodi:linespacing="125%"><tspan
+           style="stroke-width:0.967722px"
+           sodipodi:role="line"
+           id="tspan5273"
+           x="775.02869"
+           y="454.18149">REFERENCE VOR</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="762.05792"
+         y="476.87561"
+         id="NearestIntersectionsVORID"
+         sodipodi:linespacing="125%"><tspan
+           sodipodi:role="line"
+           x="762.05792"
+           y="476.87561"
+           id="tspan5287">VOR</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="760.81995"
+         y="404.29984"
+         id="NearestIntersectionsLon"
+         sodipodi:linespacing="125%"><tspan
+           sodipodi:role="line"
+           id="tspan5285"
+           x="760.81995"
+           y="404.29984">E 56 45.78</tspan></text>
+      <text
+         sodipodi:linespacing="125%"
+         id="NearestIntersectionsVORFreq"
+         y="478.81119"
+         x="937.73645"
+         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="478.81119"
+           x="937.73645"
+           sodipodi:role="line">116.650</tspan></text>
+      <text
+         sodipodi:linespacing="125%"
+         id="NearestIntersectionsVORCRS"
+         y="515.58264"
+         x="781.37463"
+         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="tspan5301"
+           y="515.58264"
+           x="781.37463"
+           sodipodi:role="line">123</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="889.88196"
+         y="515.58264"
+         id="NearestIntersectionsVORDST"
+         sodipodi:linespacing="125%"><tspan
+           sodipodi:role="line"
+           x="889.88196"
+           y="515.58264"
+           id="tspan5305">23nm</tspan></text>
+    </g>
+  </g>
+</svg>
diff --git a/Aircraft/Instruments-3d/FG1000/Nasal/Interfaces/NavDataInterface.nas b/Aircraft/Instruments-3d/FG1000/Nasal/Interfaces/NavDataInterface.nas
index 721747a98..685fd5ad5 100644
--- a/Aircraft/Instruments-3d/FG1000/Nasal/Interfaces/NavDataInterface.nas
+++ b/Aircraft/Instruments-3d/FG1000/Nasal/Interfaces/NavDataInterface.nas
@@ -41,6 +41,26 @@ getNearestAirports : func()
   return apts;
 },
 
+# Find the nearest nav aids of a given type within 200nm, to a maximum of 25.
+getNavDataWithinRange: func(type)
+{
+  # To make this more efficient for areas with a high density of fixes, we'll try
+  # a small radius first and expand until we have reached 200nm or have 25 nav aids.
+  var radius = 0;
+  var navdata = [];
+
+  while ((radius <= 200) and (size(navdata) < 25)) {
+    radius = radius + 50;
+    navdata = findNavaidsWithinRange(radius, type);
+  }
+
+  if (size(navdata) > 25) {
+    navdata = subvec(navdata, 0, 25);
+  }
+
+  return navdata;
+},
+
 # Find a specific airport by ID.  Return an array of airport objects
 getAirportById : func(id)
 {
@@ -209,6 +229,10 @@ RegisterWithEmesary : func()
             notification.EventParameter.Value = controller.getNavDataById(notification.EventParameter.Value);
             return emesary.Transmitter.ReceiptStatus_Finished;
           }
+          if (id == "NavDataWithinRange") {
+            notification.EventParameter.Value = controller.getNavDataWithinRange(notification.EventParameter.Value);
+            return emesary.Transmitter.ReceiptStatus_Finished;
+          }
           if (id == "Flightplan") {
             notification.EventParameter.Value = controller.getFlightplan();
             return emesary.Transmitter.ReceiptStatus_Finished;
diff --git a/Aircraft/Instruments-3d/FG1000/Nasal/NavigationMap/NavigationMapStyles.nas b/Aircraft/Instruments-3d/FG1000/Nasal/NavigationMap/NavigationMapStyles.nas
index 2c72fa045..280db8d97 100644
--- a/Aircraft/Instruments-3d/FG1000/Nasal/NavigationMap/NavigationMapStyles.nas
+++ b/Aircraft/Instruments-3d/FG1000/Nasal/NavigationMap/NavigationMapStyles.nas
@@ -47,9 +47,17 @@ var NavigationMapStyles =
     me.Styles.FLT.line_width = 3;
 
     me.Styles.FIX = {};
-    me.Styles.FIX.color = [1,0,0];
+    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.text_offset = [0, -12];
+    me.Styles.FIX.text_color = [0,0,0,1]; # Black text ...
+    me.Styles.FIX.text_bgcolor = [1,1,1,1]; # ... on a white background
+    me.Styles.FIX.text_mode = canvas.Text.TEXT + canvas.Text.FILLEDBOUNDINGBOX;
+    me.Styles.FIX.text_padding = 2;
+    me.Styles.FIX.text_alignment = 'center-bottom';
+
     me.Styles.VOR = {};
     me.Styles.VOR.range_line_width = 2;
     me.Styles.VOR.radial_line_width = 1;
diff --git a/Aircraft/Instruments-3d/FG1000/Nasal/NearestAirports/NearestAirports.nas b/Aircraft/Instruments-3d/FG1000/Nasal/NearestAirports/NearestAirports.nas
index 20c32ed83..dc4784635 100644
--- a/Aircraft/Instruments-3d/FG1000/Nasal/NearestAirports/NearestAirports.nas
+++ b/Aircraft/Instruments-3d/FG1000/Nasal/NearestAirports/NearestAirports.nas
@@ -126,7 +126,7 @@ var NearestAirports =
       var apt = apts[i];
       var crsAndDst = courseAndDistance(apt);
 
-      # Display the cours and distance in NM .
+      # 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]);
diff --git a/Aircraft/Instruments-3d/FG1000/Nasal/NearestIntersections/NearestIntersections.nas b/Aircraft/Instruments-3d/FG1000/Nasal/NearestIntersections/NearestIntersections.nas
index 048a23e73..7d390cece 100644
--- a/Aircraft/Instruments-3d/FG1000/Nasal/NearestIntersections/NearestIntersections.nas
+++ b/Aircraft/Instruments-3d/FG1000/Nasal/NearestIntersections/NearestIntersections.nas
@@ -10,34 +10,143 @@ var NearestIntersections =
       ],
     };
 
-    obj.topMenu(device, obj, nil);
-
     obj.setController(fg1000.NearestIntersectionsController.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", "VORID", "VORFreq", "VORCRS", "VORDST"]);
+
+    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
+  },
+
   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]);
+      me.select.showCRSR();
+    } else {
+      me.select.hideCRSR();
+      me.setTextElement("Lat", "NONE WITHIN 200NM");
+      me.setTextElement("VORID", "");
+      me.setTextElement("VORFreq", "");
+      me.setTextElement("VORCRS", "");
+      me.setTextElement("VORDST", "");
+    }
+  },
+  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));
+    }
+
+    # Determine the nearest VOR, and the bearing and distance TO the VOR,
+    var vordata = me.getController().getNearestNavData("vor");
+
+    if ((vordata != nil ) and (size(vordata) > 0)) {
+      var crsAndDst = courseAndDistance(nav, vordata[0]);
+      var crs = sprintf("%i%c", crsAndDst[0], 248);
+      var dst = sprintf("%.1fnm", crsAndDst[1]);
+      me.setTextElement("VORID", vordata[0].id);
+      me.setTextElement("VORFreq", sprintf("%.2f", vordata[0].frequency / 100.0));
+      me.setTextElement("VORCRS", crs);
+      me.setTextElement("VORDST", dst);
+    } else {
+      me.setTextElement("VORID", "");
+      me.setTextElement("VORFreq", "");
+      me.setTextElement("VORCRS", "");
+      me.setTextElement("VORDST", "");
+    }
+
+    # 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, pg.mfd.EIS.engineMenu);
+    pg.addMenuItem(2, "MAP", pg, pg.mfd.NavigationMap.mapMenu);
+
     device.updateMenus();
   },
-
-
 };
diff --git a/Aircraft/Instruments-3d/FG1000/Nasal/NearestIntersections/NearestIntersectionsController.nas b/Aircraft/Instruments-3d/FG1000/Nasal/NearestIntersections/NearestIntersectionsController.nas
index 8d73e13bf..34f7138de 100644
--- a/Aircraft/Instruments-3d/FG1000/Nasal/NearestIntersections/NearestIntersectionsController.nas
+++ b/Aircraft/Instruments-3d/FG1000/Nasal/NearestIntersections/NearestIntersectionsController.nas
@@ -1,59 +1,140 @@
 # NearestIntersections Controller
 var NearestIntersectionsController =
 {
+  UIGROUP : {
+    NONE : 0, # No group currently selected,
+    APT  : 1,
+    RNWY : 2,
+    FREQ : 3,
+    APR  : 4,
+  },
+
   new : func (page, svg)
   {
-    var obj = {
-      parents : [ NearestIntersectionsController, MFDPageController.new(page) ],
-      _crsrToggle : 0,
-      _recipient : nil,
-      _page : page,
-    };
+    var obj = { parents : [ NearestIntersectionsController, MFDPageController.new(page) ] };
+
+    # Current active UI group.
+    obj.page = page;
+    obj._crsrToggle = 0;
 
     return obj;
   },
 
+  selectAirports : func() {
+    me.selectGroup(NearestAirportsController.UIGROUP.APT)
+  },
+  selectRunways : func() {
+    me.selectGroup(NearestAirportsController.UIGROUP.RNWY);
+  },
+  selectFrequencies : func() {
+    me.selectGroup(NearestAirportsController.UIGROUP.FREQ);
+  },
+  selectApproaches : func() {
+    me.selectGroup(NearestAirportsController.UIGROUP.APR);
+  },
+  getSelectedGroup : func() {
+    return me._currentGroup;
+  },
+  selectGroup : func(grp) {
+    me._currentGroup = grp;
+    # The current Airport is always highlighted - we're either changing it directly,
+    # or viewing the selected airport.
+    if (grp == NearestAirportsController.UIGROUP.RNWY) me.page.runwaySelect.highlightElement()   else me.page.runwaySelect.unhighlightElement();
+    if (grp == NearestAirportsController.UIGROUP.FREQ) me.page.freqSelect.showCRSR()     else me.page.freqSelect.hideCRSR();
+    if (grp == NearestAirportsController.UIGROUP.APR)  me.page.approachSelect.showCRSR() else me.page.approachSelect.hideCRSR();
+    me._crsrToggle = 1;
+  },
 
   # Input Handling
   handleCRSR : func() {
     me._crsrToggle = (! me._crsrToggle);
-    if (me._crsrToggle) {
-    } else {
-      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("fix");
+    me.page.updateNavData(fixes);
+    me.page.mfd.NavigationMap.getController().enableDTO(1);
   },
   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 airport
+    var notification = notifications.PFDEventNotification.new(
+      "MFD",
+      1,
+      notifications.PFDEventNotification.NavData,
+      {Id: "NavDataByID", Value: id});
+
+    var response = me._transmitter.NotifyAll(notification);
+
+    if (! me._transmitter.IsFailed(response)) {
+      return notification.EventParameter.Value;
+    } else {
+      return nil;
+    }
+  },
 };