Return-Path: <rbarnes@bbn.com>
X-Original-To: geopriv@core3.amsl.com
Delivered-To: geopriv@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix)
 with ESMTP id 27C7A28B56A for <geopriv@core3.amsl.com>;
 Wed, 10 Feb 2010 15:14:59 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.627
X-Spam-Level: 
X-Spam-Status: No, score=-0.627 tagged_above=-999 required=5 tests=[AWL=-1.323,
 BAYES_00=-2.599, FB_WORD2_END_DOLLAR=3.294, HTML_MESSAGE=0.001]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com
 [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id jmD99GiV2PEQ for
 <geopriv@core3.amsl.com>; Wed, 10 Feb 2010 15:14:57 -0800 (PST)
Received: from smtp.bbn.com (smtp.bbn.com [128.33.1.81]) by core3.amsl.com
 (Postfix) with ESMTP id C195A28C168 for <geopriv@ietf.org>;
 Wed, 10 Feb 2010 15:14:56 -0800 (PST)
Received: from [128.89.255.129] (helo=[128.54.56.215]) by smtp.bbn.com with
 esmtp (Exim 4.63) (envelope-from <rbarnes@bbn.com>) id 1NfLmx-0008PX-BF;
 Wed, 10 Feb 2010 18:16:08 -0500
Message-Id: <0C61DFC9-33CD-4773-AF58-FAF9FFA089D4@bbn.com>
From: "Richard L. Barnes" <rbarnes@bbn.com>
To: "Thomson, Martin" <Martin.Thomson@andrew.com>
In-Reply-To: <8B0A9FCBB9832F43971E38010638454F032E566A63@SISPE7MB1.commscope.com>
Content-Type: multipart/alternative; boundary=Apple-Mail-13--226242792
Mime-Version: 1.0 (Apple Message framework v936)
Date: Wed, 10 Feb 2010 15:16:05 -0800
References: <E6DB07FF-AF22-41BB-A533-74B61D99CECA@bbn.com>
 <8B0A9FCBB9832F43971E38010638454F032E566A63@SISPE7MB1.commscope.com>
X-Mailer: Apple Mail (2.936)
Cc: "geopriv@ietf.org" <geopriv@ietf.org>
Subject: Re: [Geopriv] Proposed text for 3825bis
X-BeenThere: geopriv@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Geographic Location/Privacy <geopriv.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/geopriv>,
 <mailto:geopriv-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/geopriv>
List-Post: <mailto:geopriv@ietf.org>
List-Help: <mailto:geopriv-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/geopriv>,
 <mailto:geopriv-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 10 Feb 2010 23:14:59 -0000

--Apple-Mail-13--226242792
Content-Type: text/plain;
	charset=WINDOWS-1252;
	format=flowed;
	delsp=yes
Content-Transfer-Encoding: quoted-printable

Good point on the quantification: Suggested fix:

s/up to floating-point errors/up to a possible error of 2^-25/



On Feb 10, 2010, at 3:10 PM, Thomson, Martin wrote:

> Hi Richard,
>
> I notice that there is a small error in the first paragraph.
>
> Section X: s/versions 1 and 2/versions 0 and 1/
>
> I=92ll also note that the difference between setting bits and using =20=

> exponents of two is quantifiable.  The error in the upper value is =20
> 2^-25.
>
>
> From: geopriv-bounces@ietf.org [mailto:geopriv-bounces@ietf.org] On =20=

> Behalf Of Richard L. Barnes
> Sent: Wednesday, 10 February 2010 6:39 PM
> To: Bernard Aboba
> Cc: geopriv@ietf.org
> Subject: [Geopriv] Proposed text for 3825bis
>
> Hi Bernard,
>
> Since we haven't seen any text to address the remaining issue with =20
> rfc3825bis, here is some text that defines a mapping to GML.  Hope =20
> this helps,
>
> --Richard
>
>
> -----BEGIN-----
> Section X. GML Mapping for Resolution
>
> This section describes how the location value encoded in DHCP format =20=

> for geodetic location can be expressed in GML.  This mapping is =20
> valid for versions 1 and 2, and for the currently-defined datum =20
> values (1, 2, and 3).  Further version or datum definitions should =20
> provide similar mappings.
>
> The DHCP format for location described above logically describes a =20
> geodetic prism, rectangle, or point, depending on whether altitude =20
> and resolution values are provided.  These shapes can be mapped to =20
> GML by first computing the bounds that are described using the =20
> coordinate and resolution fields, then encoding the result in a GML =20=

> Polygon or Prism shape.
>
> Section X.1. GML Templates
>
> If altitude is provided in meters (altitude type 1) and the datum =20
> value is WGS84 (value 1), then the proper GML shape is a Prism, with =20=

> the following form (where $value$ indicates a value computed from =20
> the DHCP option as described below):
>
>     <gs:Prism srsName=3D"urn:ogc:def:crs:EPSG::4979"
>               xmlns:gs=3D"http://www.opengis.net/pidflo/1.0"
>               xmlns:gml=3D"http://www.opengis.net/gml">
>       <gs:base>
>         <gml:Polygon>
>           <gml:exterior>
>             <gml:LinearRing>
>               <gml:posList>
>                 $lowlatitude$ $lowlongitude$ $lowaltitude$
>                 $lowlatitude$ $highlongitude$ $lowaltitude$
>                 $highlatitude$ $highlongitude$ $lowaltitude$
>                 $highlatitude$ $lowlongitude$ $lowaltitude$
>                 $lowlatitude$ $lowlongitude$ $lowaltitude$
>               </gml:posList>
>             </gml:LinearRing>
>           </gml:exterior>
>         </gml:Polygon>
>       </gs:base>
>       <gs:height uom=3D"urn:ogc:def:uom:EPSG::9001">
>         $highaltitude - lowaltitude$
>       </gs:height>
>     </gs:Prism>
>
> The Polygon shape is used if altitude is omitted or specified in =20
> floors, or if either NAD83 datum is used (value 2 or 3).  The =20
> corresponding GML Polygon has the following form:
>
>     <gml:Polygon srsName=3D"$2D-CRS-URN$"
>                  xmlns:gml=3D"http://www.opengis.net/gml">>
>       <gml:exterior>
>         <gml:LinearRing>
>           <gml:posList>
>             $lowlatitude$ $lowlongitude$
>             $lowlatitude$ $highlongitude$
>             $highlatitude$ $highlongitude$
>             $highlatitude$ $lowlongitude$
>             $lowlatitude$ $lowlongitude$
>           </gml:posList>
>         </gml:LinearRing>
>       </gml:exterior>
>     </gml:Polygon>
>
> The value "2D-CRS-URN" is defined by the datum value: If the datum =20
> is WGS84 (value 1), then the 2D-CRS-URN is "urn:ogc:def:crs:EPSG::=20
> 4326".  If the datum is NAD83 (value 2 or 3), then the 2D-CRS-URN is =20=

> "urn:ogc:def:crs:EPSG::4269".
>
> A Polygon shape with the WGS84 three-dimensional CRS is used if the =20=

> datum is WGS84 (value 1) and the altitude is specified in meters =20
> (altitude type 1), but no altitude resolution is specified (that is, =20=

> AltRes is 0).  In this case, the value of the altitude field is =20
> added after each of the points above, and the srsName attribute is =20
> set to the three-dimentional WGS84 CRS, namely =
"urn:ogc:def:crs:EPSG::4979=20
> ".
>
> A simple Point shape is used if either latitude or longitude =20
> resolution is not specified.  With altitude, this uses a three-=20
> dimensional CRS; otherwise, it uses a two-dimensional CRS.
>
>       <gml:Point srsName=3D"$CRS-URN$"
>                  xmlns:gml=3D"http://www.opengis.net/gml">
>         <gml:pos>$latitude$ $longitude$ $[altitude]$</gml:pos>
>       </gml:Point>
>
> Section X.2. Finding Low and High Values using Resolution Fields
>
> The resolution fields indicate the bounds of the location region =20
> described by a DHCP location object.  For version 0, the resolution =20=

> fields indicate how many bits of a value contain information.  Any =20
> bits beyond those indicated can be either zero or one.  For version =20=

> 1, the resolution fields indicate uncertainty distances.
>
> The two sections below describe how to compute the latitude, =20
> longitude, and altitude bounds (e.g., $lowlatitide$, $highaltitude$) =20=

> in the templates above.  The first section describes how these =20
> bounds are computed in the "resolution encoding" (version 0), while =20=

> the second section addresses the "uncertainty encodign" (version 1).
>
> Section X.2.1. Resolution encoding
>
> Given a number of resolution bits (i.e., the value of a resolution =20
> field), if all bits beyond those bits are set to zero, this gives =20
> the lowest possible value.  The highest possible value can be found =20=

> setting all bits to one.
>
> If the encoded value of latitude and resolution are treated as 34-=20
> bit unsigned integers, the following can be used (where ">>" is a =20
> bitwise right shift, "&" is a bitwise AND, "~" is a bitwise =20
> negation, and "|" is a bitwise OR).
>
>      mask =3D 0x3ffffffff >> resolution
>      lowvalue =3D value & ~mask
>      highvalue =3D value | mask
>
> Once these values are determined, the corresponding floating point =20
> numbers can be computed by dividing the values by 2^25 (since there =20=

> are 25 bits of fraction in the fixed-point representation).
>
> Alternatively, the lowest possible value can be found by using =20
> resolution to determine the size of the range.  This method has the =20=

> advantage that it operates on the decoded floating point values.  It =20=

> is equivalent to the first mechanism, up to floating-point errors.
>
>     scale =3D 2 ^ ( 9 - resolution )
>     lowvalue =3D floor( value / scale ) * scale
>     highvalue =3D lowvalue + scale
>
> Altitude resolution uses the same process with different constants.  =20=

> There are 22 whole bits in the altitude encoding (instead of 9) and =20=

> 30 bits in total (instead of 34).
>
> Section X.2.2. Uncertainty encoding
>
> In the uncertainty encoding, the uncertainty fields directly =20
> represent the logarithms of uncertainty distances.  So the low and =20
> high bounds are computed by first computing the uncertainty =20
> distances, then adding and subtracting these from the value =20
> provided.  If "uncertainty" is the unsigned integer value of the =20
> uncertainty field and "value" is the value of the coordinate field:
>
>     distance =3D 2 ^ (8 - uncertainty)
>     lowvalue =3D value - distance
>     highvalue =3D value + distance
>
> Altitude resolution uses the same process with different constants:
>
>     distance =3D 2 ^ (21 - uncertainty)
>     lowvalue =3D value - distance
>     highvalue =3D value + distance
>
>
>
> -----END-----


--Apple-Mail-13--226242792
Content-Type: text/html;
	charset=WINDOWS-1252
Content-Transfer-Encoding: quoted-printable

<html><body style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
-webkit-line-break: after-white-space; ">Good point on the =
quantification: Suggested fix:<div><br><div>s/up to floating-point =
errors/up to a possible error of =
2^-25/</div><div><br></div><div><br></div><div><br><div><div>On Feb 10, =
2010, at 3:10 PM, Thomson, Martin wrote:</div><br =
class=3D"Apple-interchange-newline"><blockquote type=3D"cite"><span =
class=3D"Apple-style-span" style=3D"border-collapse: separate; color: =
rgb(0, 0, 0); font-family: Monaco; font-size: medium; font-style: =
normal; font-variant: normal; font-weight: normal; letter-spacing: =
normal; line-height: normal; orphans: 2; text-align: auto; text-indent: =
0px; text-transform: none; white-space: normal; widows: 2; word-spacing: =
0px; -webkit-border-horizontal-spacing: 0px; =
-webkit-border-vertical-spacing: 0px; =
-webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: =
auto; -webkit-text-stroke-width: 0px; "><div lang=3D"EN-AU" link=3D"blue" =
vlink=3D"purple" style=3D"word-wrap: break-word; -webkit-nbsp-mode: =
space; -webkit-line-break: after-white-space; "><div =
class=3D"Section1"><div style=3D"margin-top: 0mm; margin-right: 0mm; =
margin-bottom: 0.0001pt; margin-left: 0mm; font-size: 12pt; font-family: =
'Times New Roman', serif; "><span style=3D"font-size: 11pt; font-family: =
Calibri, sans-serif; color: rgb(36, 64, 97); ">Hi =
Richard,<o:p></o:p></span></div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; "><span style=3D"font-size: =
11pt; font-family: Calibri, sans-serif; color: rgb(36, 64, 97); =
"><o:p>&nbsp;</o:p></span></div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; "><span style=3D"font-size: =
11pt; font-family: Calibri, sans-serif; color: rgb(36, 64, 97); ">I =
notice that there is a small error in the first =
paragraph.<o:p></o:p></span></div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; "><span style=3D"font-size: =
11pt; font-family: Calibri, sans-serif; color: rgb(36, 64, 97); =
"><o:p>&nbsp;</o:p></span></div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; "><span style=3D"font-size: =
11pt; font-family: Calibri, sans-serif; color: rgb(36, 64, 97); =
">Section X:<span =
class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(36, 64, 97); ">s/versions 1 and 2/versions 0 and =
1/<o:p></o:p></span></div><div style=3D"margin-top: 0mm; margin-right: =
0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: 12pt; =
font-family: 'Times New Roman', serif; "><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(36, 64, 97); =
"><o:p>&nbsp;</o:p></span></div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; "><span style=3D"font-size: =
11pt; font-family: Calibri, sans-serif; color: rgb(36, 64, 97); ">I=92ll =
also note that the difference between setting bits and using exponents =
of two is quantifiable.&nbsp; The error in the upper value is =
2^-25.<o:p></o:p></span></div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; "><span style=3D"font-size: =
11pt; font-family: Calibri, sans-serif; color: rgb(36, 64, 97); =
"><o:p>&nbsp;</o:p></span></div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; "><span style=3D"font-size: =
11pt; font-family: Calibri, sans-serif; color: rgb(36, 64, 97); =
"><o:p>&nbsp;</o:p></span></div><div style=3D"border-top-style: none; =
border-right-style: none; border-bottom-style: none; border-width: =
initial; border-color: initial; border-left-style: solid; =
border-left-color: blue; border-left-width: 1.5pt; padding-top: 0mm; =
padding-right: 0mm; padding-bottom: 0mm; padding-left: 4pt; "><div><div =
style=3D"border-right-style: none; border-bottom-style: none; =
border-left-style: none; border-width: initial; border-color: initial; =
border-top-style: solid; border-top-color: rgb(181, 196, 223); =
border-top-width: 1pt; padding-top: 3pt; padding-right: 0mm; =
padding-bottom: 0mm; padding-left: 0mm; "><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; "><b><span lang=3D"EN-US" =
style=3D"font-size: 10pt; font-family: Tahoma, sans-serif; =
">From:</span></b><span lang=3D"EN-US" style=3D"font-size: 10pt; =
font-family: Tahoma, sans-serif; "><span =
class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"mailto:geopriv-bounces@ietf.org" style=3D"color: blue; =
text-decoration: underline; ">geopriv-bounces@ietf.org</a><span =
class=3D"Apple-converted-space">&nbsp;</span>[<a =
href=3D"mailto:geopriv-bounces@ietf.org" style=3D"color: blue; =
text-decoration: underline; ">mailto:geopriv-bounces@ietf.org</a>]<span =
class=3D"Apple-converted-space">&nbsp;</span><b>On Behalf Of<span =
class=3D"Apple-converted-space">&nbsp;</span></b>Richard L. =
Barnes<br><b>Sent:</b><span =
class=3D"Apple-converted-space">&nbsp;</span>Wednesday, 10 February 2010 =
6:39 PM<br><b>To:</b><span =
class=3D"Apple-converted-space">&nbsp;</span>Bernard =
Aboba<br><b>Cc:</b><span class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"mailto:geopriv@ietf.org" style=3D"color: blue; text-decoration: =
underline; ">geopriv@ietf.org</a><br><b>Subject:</b><span =
class=3D"Apple-converted-space">&nbsp;</span>[Geopriv] Proposed text for =
3825bis<o:p></o:p></span></div></div></div><div style=3D"margin-top: =
0mm; margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; =
font-size: 12pt; font-family: 'Times New Roman', serif; =
"><o:p>&nbsp;</o:p></div><div style=3D"margin-top: 0mm; margin-right: =
0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: 12pt; =
font-family: 'Times New Roman', serif; ">Hi =
Bernard,<o:p></o:p></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; =
"><o:p>&nbsp;</o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; ">Since we haven't seen any =
text to address the remaining issue with rfc3825bis, here is some text =
that defines a mapping to GML. &nbsp;Hope this =
helps,<o:p></o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; =
"><o:p>&nbsp;</o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; =
">--Richard<o:p></o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; =
"><o:p>&nbsp;</o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; =
"><o:p>&nbsp;</o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; =
">-----BEGIN-----<o:p></o:p></div></div><div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; ">Section X. GML Mapping for =
Resolution<o:p></o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; =
"><o:p>&nbsp;</o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; ">This section describes =
how the location value encoded in DHCP format for geodetic location can =
be expressed in GML. &nbsp;This mapping is valid for versions 1 and 2, =
and for the currently-defined datum values (1, 2, and 3). &nbsp;Further =
version or datum definitions should provide similar =
mappings.<o:p></o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; =
"><o:p>&nbsp;</o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; ">The DHCP format for =
location described above logically describes a geodetic prism, =
rectangle, or point, depending on whether altitude and resolution values =
are provided. &nbsp;These shapes can be mapped to GML by first computing =
the bounds that are described using the coordinate and resolution =
fields, then encoding the result in a GML Polygon or Prism shape. =
&nbsp;<o:p></o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; =
"><o:p>&nbsp;</o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; ">Section X.1. GML =
Templates<o:p></o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; =
"><o:p>&nbsp;</o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; ">If altitude is provided =
in meters (altitude type 1) and the datum value is WGS84 (value 1), then =
the proper GML shape is a Prism, with the following form (where $value$ =
indicates a value computed from the DHCP option as described =
below):<o:p></o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; =
"><o:p>&nbsp;</o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; ">&nbsp;&nbsp; =
&nbsp;&lt;gs:Prism srsName=3D"<a href=3D"urn:ogc:def:crs:EPSG::4979" =
style=3D"color: blue; text-decoration: underline; =
">urn:ogc:def:crs:EPSG::4979</a>"<o:p></o:p></div></div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; ">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;xmlns:gs=3D"<a href=3D"http://www.opengis.net/pidflo/1.0" =
style=3D"color: blue; text-decoration: underline; =
">http://www.opengis.net/pidflo/1.0</a>"<o:p></o:p></div></div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; ">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;xmlns:gml=3D"<a href=3D"http://www.opengis.net/gml" style=3D"color: =
blue; text-decoration: underline; =
">http://www.opengis.net/gml</a>"&gt;<o:p></o:p></div></div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; ">&nbsp;&nbsp; &nbsp; =
&nbsp;&lt;gs:base&gt;<o:p></o:p></div></div><div><div style=3D"margin-top:=
 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; =
font-size: 12pt; font-family: 'Times New Roman', serif; ">&nbsp;&nbsp; =
&nbsp; &nbsp; &nbsp;&lt;gml:Polygon&gt;<o:p></o:p></div></div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; ">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;&lt;gml:exterior&gt;<o:p></o:p></div></div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; ">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;&lt;gml:LinearRing&gt;<o:p></o:p></div></div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; ">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;&lt;gml:posList&gt;<o:p></o:p></div></div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; ">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;$lowlatitude$ $lowlongitude$ =
$lowaltitude$<o:p></o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; ">&nbsp;&nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$lowlatitude$ $highlongitude$ =
$lowaltitude$<o:p></o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; ">&nbsp;&nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$highlatitude$ $highlongitude$ =
$lowaltitude$<o:p></o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; ">&nbsp;&nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$highlatitude$ $lowlongitude$ =
$lowaltitude$<o:p></o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; ">&nbsp;&nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$lowlatitude$ $lowlongitude$ =
$lowaltitude$<o:p></o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; ">&nbsp;&nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;&lt;/gml:posList&gt;<o:p></o:p></div></div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; ">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;&lt;/gml:LinearRing&gt;<o:p></o:p></div></div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; ">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;&lt;/gml:exterior&gt;<o:p></o:p></div></div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; ">&nbsp;&nbsp; &nbsp; &nbsp; =
&nbsp;&lt;/gml:Polygon&gt;<o:p></o:p></div></div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; ">&nbsp;&nbsp; &nbsp; =
&nbsp;&lt;/gs:base&gt;<o:p></o:p></div></div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; ">&nbsp;&nbsp; &nbsp; &nbsp;&lt;gs:height uom=3D"<a =
href=3D"urn:ogc:def:uom:EPSG::9001" style=3D"color: blue; =
text-decoration: underline; =
">urn:ogc:def:uom:EPSG::9001</a>"&gt;<o:p></o:p></div></div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; ">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;$highaltitude - =
lowaltitude$<o:p></o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; ">&nbsp;&nbsp; &nbsp; =
&nbsp;&lt;/gs:height&gt;<o:p></o:p></div></div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; ">&nbsp;&nbsp; =
&nbsp;&lt;/gs:Prism&gt;<o:p></o:p></div></div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; "><o:p>&nbsp;</o:p></div></div><div><div style=3D"margin-top: =
0mm; margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; =
font-size: 12pt; font-family: 'Times New Roman', serif; ">The Polygon =
shape is used if altitude is omitted or specified in floors, or if =
either NAD83 datum is used (value 2 or 3). &nbsp;The corresponding GML =
Polygon has the following form:<o:p></o:p></div></div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; "><o:p>&nbsp;</o:p></div></div><div><div style=3D"margin-top: =
0mm; margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; =
font-size: 12pt; font-family: 'Times New Roman', serif; ">&nbsp;&nbsp; =
&nbsp;&lt;gml:Polygon =
srsName=3D"$2D-CRS-URN$"<o:p></o:p></div></div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; ">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
xmlns:gml=3D"<a href=3D"http://www.opengis.net/gml" style=3D"color: =
blue; text-decoration: underline; =
">http://www.opengis.net/gml</a>"&gt;&gt;<o:p></o:p></div></div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; ">&nbsp;&nbsp; &nbsp; =
&nbsp;&lt;gml:exterior&gt;<o:p></o:p></div></div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; ">&nbsp;&nbsp; &nbsp; &nbsp; =
&nbsp;&lt;gml:LinearRing&gt;<o:p></o:p></div></div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; ">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;&lt;gml:posList&gt;<o:p></o:p></div></div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; ">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$lowlatitude$ =
$lowlongitude$<o:p></o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; ">&nbsp;&nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp;$lowlatitude$ =
$highlongitude$<o:p></o:p></div></div><div><div style=3D"margin-top: =
0mm; margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; =
font-size: 12pt; font-family: 'Times New Roman', serif; ">&nbsp;&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$highlatitude$ =
$highlongitude$<o:p></o:p></div></div><div><div style=3D"margin-top: =
0mm; margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; =
font-size: 12pt; font-family: 'Times New Roman', serif; ">&nbsp;&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$highlatitude$ =
$lowlongitude$<o:p></o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; ">&nbsp;&nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp;$lowlatitude$ =
$lowlongitude$<o:p></o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; ">&nbsp;&nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;&lt;/gml:posList&gt;<o:p></o:p></div></div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; ">&nbsp;&nbsp; &nbsp; &nbsp; =
&nbsp;&lt;/gml:LinearRing&gt;<o:p></o:p></div></div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; ">&nbsp;&nbsp; &nbsp; =
&nbsp;&lt;/gml:exterior&gt;<o:p></o:p></div></div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; ">&nbsp;&nbsp; =
&nbsp;&lt;/gml:Polygon&gt;<o:p></o:p></div></div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; "><o:p>&nbsp;</o:p></div></div><div><div style=3D"margin-top: =
0mm; margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; =
font-size: 12pt; font-family: 'Times New Roman', serif; ">The value =
"2D-CRS-URN" is defined by the datum value: If the datum is WGS84 (value =
1), then the&nbsp;2D-CRS-URN&nbsp;is "<span =
class=3D"apple-style-span"><span style=3D"font-family: Monaco; "><a =
href=3D"urn:ogc:def:crs:EPSG::4326" style=3D"color: blue; =
text-decoration: underline; ">urn:ogc:def:crs:EPSG::4326</a>". &nbsp;If =
the datum is NAD83 (value 2 or 3), then the 2D-CRS-URN is "<a =
href=3D"urn:ogc:def:crs:EPSG::4269" style=3D"color: blue; =
text-decoration: underline; =
">urn:ogc:def:crs:EPSG::4269</a>".</span></span><o:p></o:p></div></div><di=
v><div style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: =
0.0001pt; margin-left: 0mm; font-size: 12pt; font-family: 'Times New =
Roman', serif; "><o:p>&nbsp;</o:p></div></div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; ">A Polygon shape with the WGS84 three-dimensional CRS is used if =
the datum is WGS84 (value 1) and the altitude is specified in meters =
(altitude type 1), but no altitude resolution is specified (that is, =
AltRes is 0). &nbsp;In this case, the value of the altitude field is =
added after each of the points above, and the srsName attribute is set =
to the three-dimentional WGS84 CRS, namely "<a =
href=3D"urn:ogc:def:crs:EPSG::4979" style=3D"color: blue; =
text-decoration: underline; =
">urn:ogc:def:crs:EPSG::4979</a>".<o:p></o:p></div></div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; "><o:p>&nbsp;</o:p></div></div><div><div style=3D"margin-top: =
0mm; margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; =
font-size: 12pt; font-family: 'Times New Roman', serif; ">A simple Point =
shape is used if either latitude or longitude resolution is not =
specified. &nbsp;With altitude, this uses a three-dimensional CRS; =
otherwise, it uses a two-dimensional =
CRS.<o:p></o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; =
"><o:p>&nbsp;</o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; ">&nbsp;&nbsp; &nbsp; =
&nbsp;&lt;gml:Point srsName=3D"$CRS-URN$"<o:p></o:p></div></div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; ">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
xmlns:gml=3D"<a href=3D"http://www.opengis.net/gml" style=3D"color: =
blue; text-decoration: underline; =
">http://www.opengis.net/gml</a>"&gt;<o:p></o:p></div></div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; ">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&lt;gml:pos&gt;$latitude$ =
$longitude$ $[altitude]$&lt;/gml:pos&gt;<o:p></o:p></div></div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; ">&nbsp;&nbsp; &nbsp; =
&nbsp;&lt;/gml:Point&gt;<o:p></o:p></div></div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; "><o:p>&nbsp;</o:p></div></div><div><div style=3D"margin-top: =
0mm; margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; =
font-size: 12pt; font-family: 'Times New Roman', serif; ">Section X.2. =
Finding Low and High Values using Resolution =
Fields<o:p></o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; =
"><o:p>&nbsp;</o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; ">The resolution fields =
indicate the bounds of the location region described by a DHCP location =
object. &nbsp;For version 0, the resolution fields indicate how many =
bits of a value contain information. &nbsp;Any bits beyond those =
indicated can be either zero or one. &nbsp;For version 1, the resolution =
fields indicate uncertainty distances.<o:p></o:p></div></div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; "><o:p>&nbsp;</o:p></div></div><div><div style=3D"margin-top: =
0mm; margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; =
font-size: 12pt; font-family: 'Times New Roman', serif; ">The two =
sections below describe how to compute the latitude, longitude, and =
altitude bounds (e.g., $lowlatitide$, $highaltitude$) in the templates =
above. &nbsp;The first section describes how these bounds are computed =
in the "resolution encoding" (version 0), while the second section =
addresses the "uncertainty encodign" (version =
1).<o:p></o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; =
"><o:p>&nbsp;</o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; ">Section X.2.1. Resolution =
encoding<o:p></o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; =
"><o:p>&nbsp;</o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; ">Given a number of =
resolution bits (i.e., the value of a resolution field), if all bits =
beyond those bits are set to zero, this gives the lowest possible value. =
&nbsp;The highest possible value can be found setting all bits to =
one.<o:p></o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; =
"><o:p>&nbsp;</o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; ">If the encoded value of =
latitude and resolution are treated as 34-bit unsigned integers, the =
following can be used (where "&gt;&gt;" is a bitwise right shift, =
"&amp;" is a bitwise AND, "~" is a bitwise negation, and "|" is a =
bitwise OR).<o:p></o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; =
"><o:p>&nbsp;</o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; ">&nbsp;&nbsp; &nbsp; mask =
=3D 0x3ffffffff &gt;&gt; resolution<o:p></o:p></div></div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; ">&nbsp;&nbsp; &nbsp; lowvalue =3D value &amp; =
~mask<o:p></o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; ">&nbsp;&nbsp; &nbsp; =
highvalue =3D value | mask<o:p></o:p></div></div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; "><o:p>&nbsp;</o:p></div></div><div><div style=3D"margin-top: =
0mm; margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; =
font-size: 12pt; font-family: 'Times New Roman', serif; ">Once these =
values are determined, the corresponding floating point numbers can be =
computed by dividing the values by 2^25 (since there are 25 bits of =
fraction in the fixed-point =
representation).<o:p></o:p></div></div><div><div style=3D"margin-top: =
0mm; margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; =
font-size: 12pt; font-family: 'Times New Roman', serif; =
"><o:p>&nbsp;</o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; ">Alternatively, the lowest =
possible value can be found by using resolution to determine the size of =
the range. &nbsp;This method has the advantage that it operates on the =
decoded floating point values. &nbsp;It is equivalent to the first =
mechanism, up to floating-point errors.<o:p></o:p></div></div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; "><o:p>&nbsp;</o:p></div></div><div><div style=3D"margin-top: =
0mm; margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; =
font-size: 12pt; font-family: 'Times New Roman', serif; ">&nbsp;&nbsp; =
&nbsp;scale =3D 2 ^ ( 9 - resolution )<o:p></o:p></div></div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; ">&nbsp;&nbsp; &nbsp;lowvalue =3D floor( value / scale ) * =
scale<o:p></o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; ">&nbsp;&nbsp; =
&nbsp;highvalue =3D lowvalue + scale<o:p></o:p></div></div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; "><o:p>&nbsp;</o:p></div></div><div><div style=3D"margin-top: =
0mm; margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; =
font-size: 12pt; font-family: 'Times New Roman', serif; ">Altitude =
resolution uses the same process with different constants. &nbsp;There =
are 22 whole bits in the altitude encoding (instead of 9) and 30 bits in =
total (instead of 34).<o:p></o:p></div></div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; "><o:p>&nbsp;</o:p></div></div><div><div style=3D"margin-top: =
0mm; margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; =
font-size: 12pt; font-family: 'Times New Roman', serif; ">Section X.2.2. =
Uncertainty encoding<o:p></o:p></div></div><div><div style=3D"margin-top: =
0mm; margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; =
font-size: 12pt; font-family: 'Times New Roman', serif; =
"><o:p>&nbsp;</o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; ">In the uncertainty =
encoding, the uncertainty fields directly represent the logarithms of =
uncertainty distances. &nbsp;So the low and high bounds are computed by =
first computing the uncertainty distances, then adding and subtracting =
these from the value provided. &nbsp;If "uncertainty" is the unsigned =
integer value of the uncertainty field and "value" is the value of the =
coordinate field:&nbsp;<o:p></o:p></div></div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; "><o:p>&nbsp;</o:p></div></div><div><div style=3D"margin-top: =
0mm; margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; =
font-size: 12pt; font-family: 'Times New Roman', serif; ">&nbsp;&nbsp; =
&nbsp;distance =3D 2 ^ (8 - uncertainty)<o:p></o:p></div></div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; ">&nbsp;&nbsp; &nbsp;lowvalue =3D value - =
distance<o:p></o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; ">&nbsp;&nbsp; =
&nbsp;highvalue =3D value + distance<o:p></o:p></div></div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; "><o:p>&nbsp;</o:p></div></div><div><div style=3D"margin-top: =
0mm; margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; =
font-size: 12pt; font-family: 'Times New Roman', serif; ">Altitude =
resolution uses the same process with different =
constants:&nbsp;<o:p></o:p></div></div><div><div style=3D"margin-top: =
0mm; margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; =
font-size: 12pt; font-family: 'Times New Roman', serif; =
"><o:p>&nbsp;</o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; ">&nbsp;&nbsp; =
&nbsp;distance =3D 2 ^ (21 - =
uncertainty)<o:p></o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; ">&nbsp;&nbsp; =
&nbsp;lowvalue =3D value - distance<o:p></o:p></div></div><div><div =
style=3D"margin-top: 0mm; margin-right: 0mm; margin-bottom: 0.0001pt; =
margin-left: 0mm; font-size: 12pt; font-family: 'Times New Roman', =
serif; ">&nbsp;&nbsp; &nbsp;highvalue =3D value + =
distance<o:p></o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; =
"><o:p>&nbsp;</o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; =
"><o:p>&nbsp;</o:p></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; =
"><o:p>&nbsp;</o:p></div></div></div><div><div style=3D"margin-top: 0mm; =
margin-right: 0mm; margin-bottom: 0.0001pt; margin-left: 0mm; font-size: =
12pt; font-family: 'Times New Roman', serif; =
">-----END-----<o:p></o:p></div></div></div></div></div></span></blockquot=
e></div><br></div></div></body></html>=

--Apple-Mail-13--226242792--
