6666 </ script >
6767 < p >
6868 Since this specification become a W3C Recommendation on 01 September
69- 2022, the following substantive additions and/or corrections have been
70- proposed:
69+ 2022, the following substantive additions and/or corrections were made:
7170 </ p > < rs-changelog from ="REC-2022 " filter =
7271 "updateableRecFilter "> </ rs-changelog >
7372 < p >
7473 A more detailed list of changes can be found in section
75- [[[#changelog]]]. Reviewers of the document can identify candidate
76- additions and/or corrections by their distinctive styling in the
77- document.
74+ [[[#changelog]]].
7875 </ p >
7976 </ section >
8077 < section id ="introduction " class ="informative ">
@@ -580,16 +577,8 @@ <h2>
580577 method steps are:
581578 </ p >
582579 < ol class ="algorithm ">
583- < li >
584- < aside class ="correction " id ="c1 ">
585- < span class ="marker "> Candidate Correction:</ span > Updated
586- reference to the global object to use [=this=] for consistency in
587- error handling within geolocation retrieval.
588- </ aside > < del cite ="#c1 "> If the [=current settings object=]'s
589- [=relevant global object=]'s [=associated `Document`=] is not
590- [=Document/fully active=]:</ del > < ins cite ="#c1 "> If [=this=]'s
591- [=relevant global object=]'s [=associated `Document`=] is not
592- [=Document/fully active=]:</ ins >
580+ < li > If [=this=]'s [=relevant global object=]'s [=associated
581+ `Document`=] is not [=Document/fully active=]:
593582 < ol >
594583 < li > [=Call back with error=] |errorCallback| and
595584 {{GeolocationPositionError/POSITION_UNAVAILABLE}}.
@@ -614,16 +603,8 @@ <h2>
614603 method steps are:
615604 </ p >
616605 < ol class ="algorithm ">
617- < li >
618- < aside class ="correction " id ="c2 ">
619- < span class ="marker "> Candidate Correction:</ span > Simplified
620- reference to the global object in the method steps for checking
621- document's activity status.
622- </ aside > < del cite ="#c2 "> If the [=current settings object=]'s
623- [=relevant global object=]'s [=associated `Document`=] is not
624- [=Document/fully active=]:</ del > < ins cite ="#c2 "> If [=this=]'s
625- [=relevant global object=]'s [=associated `Document`=] is not
626- [=Document/fully active=]:</ ins >
606+ < li > If [=this=]'s [=relevant global object=]'s [=associated
607+ `Document`=] is not [=Document/fully active=]:
627608 < ol >
628609 < li > [=Call back with error=] passing |errorCallback| and
629610 {{GeolocationPositionError/POSITION_UNAVAILABLE}}.
@@ -689,12 +670,8 @@ <h2>
689670 </ li >
690671 </ ol >
691672 </ li >
692- < li >
693- < aside class ="correction " id ="c7 ">
694- < span class ="marker "> Candidate Correction:</ span > Added missing
695- step to handle [=non-secure contexts=].
696- </ aside > < ins cite ="#c7 "> If |geolocation|'s [=environment settings
697- object=] is a [=non-secure context=]:
673+ < li > If |geolocation|'s [=environment settings object=] is a
674+ [=non-secure context=]:
698675 < ol >
699676 < li > If |watchId| was passed, [=List/remove=] |watchId| from
700677 |watchIDs|.
704681 </ li >
705682 < li > Terminate this algorithm.
706683 </ li >
707- </ ol > </ ins >
684+ </ ol >
708685 </ li >
709686 < li > If |document:Document|'s [=Document/visibility state=] is
710687 "hidden", wait for the following [=page visibility change steps=] to
@@ -832,28 +809,20 @@ <h2>
832809 value of the |options|.{{PositionOptions/maximumAge}}
833810 member.
834811 </ li >
835- < li >
836- < aside class ="correction " id ="c8 ">
837- < span class ="marker "> Candidate Correction:</ span >
838- Updated to ensure that the algorithm terminates
839- immediately if a valid cached position is used,
840- avoiding unnecessary steps.
841- </ aside > If |cachedPosition|'s
842- {{GeolocationPosition/timestamp}}'s value is greater
843- than |cacheTime|, and
844- |cachedPosition|.{{GeolocationPosition/[[isHighAccuracy]]}}
845- equals
846- |options|.{{PositionOptions/enableHighAccuracy}}< del cite ="#c8 "> ,
847- set |position| to |cachedPosition|.</ del > < ins cite =
848- "#c8 "> :
812+ < li > If |cachedPosition|'s
813+ {{GeolocationPosition/timestamp}}'s value is greater than
814+ |cacheTime|, and
815+ |cachedPosition|.{{GeolocationPosition/[[isHighAccuracy]]}}
816+ equals |options|.{{PositionOptions/enableHighAccuracy}}:
849817 < ol >
850818 < li > [=Queue a task=] on the [=geolocation task
851819 source=] with a step that [=invokes=]
852- |successCallback| with « |cachedPosition| » and "`report`".
820+ |successCallback| with « |cachedPosition| » and
821+ "`report`".
853822 </ li >
854823 < li > Terminate this algorithm.
855824 </ li >
856- </ ol > </ ins >
825+ </ ol >
857826 </ li >
858827 </ ol >
859828 </ li >
@@ -877,16 +846,6 @@ <h2>
877846 </ li >
878847 < li data-cite ="infra "> If acquiring the position data from the
879848 system succeeds:
880- < aside class ="correction " id ="c9 ">
881- < span class ="marker "> Candidate Correction:</ span > We now
882- use a [=map=] to represent the position data. Clarified
883- the units and reference systems for latitude, longitude,
884- and altitude, ensuring consistency with the updated
885- attribute definitions. Updated the descriptions of the
886- speed and heading to specify measurement units and
887- conditions for null values, aligning with the overall
888- enhancements to attribute accuracy and clarity.
889- </ aside > < ins cite ="#c9 ">
890849 < ol data-cite ="infra ">
891850 < li > Let |positionData| be a [=map=] with the following
892851 name/value pairs based on the acquired position data:
@@ -956,16 +915,7 @@ <h2>
956915 < li > Set [=this=]'s {{Geolocation/[[cachedPosition]]}} to
957916 |position|.
958917 </ li >
959- </ ol > </ ins > < del cite ="#c9 ">
960- < ol >
961- < li > Set |position| to [=a new `GeolocationPosition`=]
962- passing |acquisitionTime| and
963- |options|.{{PositionOptions/enableHighAccuracy}}.
964- </ li >
965- < li > Set [=this=]'s {{Geolocation/[[cachedPosition]]}} to
966- |position|.
967- </ li >
968- </ ol > </ del >
918+ </ ol >
969919 </ li >
970920 < li > Stop the |timeout|.
971921 </ li >
@@ -1147,15 +1097,9 @@ <h3>
11471097 < h3 >
11481098 `toJSON()` method
11491099 </ h3 >
1150- < aside class ="addition " id ="a1 ">
1151- < span class ="marker "> Candidate Addition:</ span > Introduce a
1152- `toJSON()` method to allow the {{GeolocationPosition}} object to be
1153- easily converted into a JSON representation, facilitating
1154- interoperability and ease of use in web applications.
1155- </ aside >
11561100 < p >
1157- < ins cite =" #a1 " > The < dfn > toJSON()</ dfn > method returns a JSON
1158- representation of the {{GeolocationPosition}} object.</ ins >
1101+ The < dfn > toJSON()</ dfn > method returns a JSON representation of the
1102+ {{GeolocationPosition}} object.
11591103 </ p >
11601104 </ section >
11611105 < section >
@@ -1227,26 +1171,11 @@ <h2>
12271171 < h4 >
12281172 `latitude`, `longitude`, and `accuracy` attributes
12291173 </ h4 >
1230- < aside class ="correction " id ="c3 ">
1231- < span class ="marker "> Candidate Correction:</ span > To improve clarity
1232- and precision, the description of latitude and longitude attributes
1233- has been updated to specify that these are real numbers in degrees
1234- according to the [[WGS84]] geodetic system, instead of just stating
1235- "decimal degrees."
1236- </ aside >
1237- < aside class ="addition " id ="a3 ">
1238- < span class ="marker "> Candidate Addition:</ span > To improve clarity
1239- and precision, a description of the accuracy attribute has been
1240- added, defining it as meters of radius.
1241- </ aside >
12421174 < p >
1243- < del cite ="#c3 "> The < strong > latitude</ strong > and
1244- < strong > longitude</ strong > attributes are geographic coordinates
1245- specified in decimal degrees.</ del > < ins cite ="#c3 "> The
1246- < dfn > latitude</ dfn > and < dfn > longitude</ dfn > attributes denote the
1247- position, specified as a real number of degrees, in the [[WGS84]]
1248- coordinate system.</ ins > < ins cite ="#a3 "> The < dfn > accuracy</ dfn >
1249- attribute denotes the position accuracy radius in meters.</ ins >
1175+ The < dfn > latitude</ dfn > and < dfn > longitude</ dfn > attributes denote
1176+ the position, specified as a real number of degrees, in the [[WGS84]]
1177+ coordinate system. The < dfn > accuracy</ dfn > attribute denotes the
1178+ position accuracy radius in meters.
12501179 </ p >
12511180 </ section >
12521181 < section >
@@ -1286,27 +1215,15 @@ <h4>
12861215 < h4 >
12871216 `toJSON()` method
12881217 </ h4 >
1289- < aside class ="addition " id ="a2 ">
1290- < span class ="marker "> Candidate Addition:</ span > Extend the `toJSON()`
1291- method functionality to the {{GeolocationCoordinates}} object,
1292- allowing it to be serialized into a JSON format which enhances data
1293- handling and integration capabilities in web applications.
1294- </ aside >
12951218 < p >
1296- < ins cite =" #a2 " > The < dfn > toJSON()</ dfn > method returns a JSON
1297- representation of the {{GeolocationCoordinates}} object.</ ins >
1219+ The < dfn > toJSON()</ dfn > method returns a JSON representation of the
1220+ {{GeolocationCoordinates}} object.
12981221 </ p >
12991222 </ section >
13001223 < section data-cite ="infra ">
13011224 < h2 >
13021225 Constructing a `GeolocationPosition`
13031226 </ h2 >
1304- < aside class ="correction " id ="c4 ">
1305- < span class ="marker "> Candidate Correction:</ span > Constructor now
1306- takes a [=map=] of position data, a timestamp, and a boolean
1307- indicating high accuracy as arguments. We iterate over the map to set
1308- the attributes of the {{GeolocationCoordinates}}.
1309- </ aside > < ins cite ="#c4 ">
13101227 < p >
13111228 < dfn > A new `GeolocationPosition`</ dfn > is constructed with [=map=]
13121229 |positionData|, {{EpochTimeStamp}} |timestamp:EpochTimeStamp| and
@@ -1328,58 +1245,7 @@ <h2>
13281245 |timestamp|, and its {{GeolocationPosition/[[isHighAccuracy]]}}
13291246 internal slot set to |isHighAccuracy|.
13301247 </ li >
1331- </ ol > </ ins > < del cite ="#c4 ">
1332- < p >
1333- < strong > A new `GeolocationPosition`</ strong > is constructed with
1334- {{EpochTimeStamp}} |timestamp:EpochTimeStamp| and boolean
1335- |isHighAccuracy| by performing the following steps:
1336- </ p >
1337- < ol class ="algorithm ">
1338- < li > Let |coords:GeolocationCoordinates| be a newly created
1339- {{GeolocationCoordinates}} instance:
1340- < ol >
1341- < li > Initialize |coord|'s {{GeolocationCoordinates/latitude}}
1342- attribute to a geographic coordinate in decimal degrees.
1343- </ li >
1344- < li > Initialize |coord|'s {{GeolocationCoordinates/longitude}}
1345- attribute to a geographic coordinate in decimal degrees.
1346- </ li >
1347- < li > Initialize |coord|'s {{GeolocationCoordinates/accuracy}}
1348- attribute to a non-negative real number. The value SHOULD
1349- correspond to a 95% confidence level with respect to the
1350- longitude and latitude values.
1351- </ li >
1352- < li > Initialize |coord|'s {{GeolocationCoordinates/altitude}}
1353- attribute in meters above the [[WGS84]] ellipsoid, or `null` if
1354- the implementation cannot provide altitude information.
1355- </ li >
1356- < li > Initialize |coord|'s
1357- {{GeolocationCoordinates/altitudeAccuracy}} attribute as
1358- non-negative real number, or to `null` if the implementation
1359- cannot provide altitude information. If the altitude accuracy
1360- information is provided, it SHOULD correspond to a 95% confidence
1361- level.
1362- </ li >
1363- < li > Initialize |coord|'s {{GeolocationCoordinates/speed}}
1364- attribute to a non-negative real number, or as `null` if the
1365- implementation cannot provide speed information.
1366- </ li >
1367- < li > Initialize |coord|'s {{GeolocationCoordinates/heading}}
1368- attribute in degrees, or `null` if the implementation cannot
1369- provide heading information. If the hosting device is stationary
1370- (i.e., the value of the {{GeolocationCoordinates/speed}}
1371- attribute is 0), then initialize the
1372- {{GeolocationCoordinates/heading}} to `NaN`.
1373- </ li >
1374- </ ol >
1375- </ li >
1376- < li > Return a newly created {{GeolocationPosition}} instance with its
1377- {{GeolocationPosition/coords}} attribute initialized to |coords| and
1378- {{GeolocationPosition/timestamp}} attribute initialized to
1379- |timestamp|, and its {{GeolocationPosition/[[isHighAccuracy]]}}
1380- internal slot set to |isHighAccuracy|.
1381- </ li >
1382- </ ol > </ del >
1248+ </ ol >
13831249 </ section >
13841250 </ section >
13851251 < section id ="position_error_interface " data-dfn-for =
@@ -1406,14 +1272,8 @@ <h3>
14061272 < dfn > PERMISSION_DENIED</ dfn > (numeric value 1)
14071273 </ dt >
14081274 < dd >
1409- < aside class ="correction " id ="c6 ">
1410- < span class ="marker "> Candidate Correction:</ span > Updated the
1411- description of the `PERMISSION_DENIED` constant to clarify the
1412- reasons for permission denial, including [=non-secure context=]
1413- and user denials.
1414- </ aside > [=Request a position=] failed because the user denied
1415- permission to use the API < ins cite ="#c6 "> or the request was made
1416- from an [=non-secure context=]</ ins > .
1275+ [=Request a position=] failed because the user denied permission to
1276+ use the API or the request was made from an [=non-secure context=].
14171277 </ dd >
14181278 < dt >
14191279 < dfn > POSITION_UNAVAILABLE</ dfn > (numeric value 2)
0 commit comments