HTML DOM 地理位置坐标属性
HTML DOM 地理位置坐标属性用于获取用户设备在地球上的位置和海拔高度。在使用此属性之前,用户必须同意提供坐标信息。这样做是为了保护用户的隐私。这可用于跟踪各种设备的位置。
属性
以下是坐标属性:
注意 - 所有这些属性都是只读的,并且它们的返回类型为双精度浮点数。
序号 | 属性及描述 |
---|---|
1 | coordinates.latitude 返回设备位置的纬度,以十进制度表示。 |
2 | coordinates.longitude 返回设备位置的经度,以十进制度表示。 |
3 | coordinates.altitude 返回位置的海拔高度,以米为单位,相对于海平面。如果设备没有 GPS,则可能返回 null。 |
4 | coordinates.accuracy 返回纬度和经度属性的精度,以米为单位。 |
5 | coordinates.altitudeAccuracy 返回海拔属性的精度,以米为单位。 |
6 | coordinates.heading 返回设备行驶的方向。此值以度为单位,指示设备偏离正北方向的角度。0 度表示正北方向,方向按顺时针方向确定(东为 90 度,西为 270 度)。如果速度为 0,则方向为 NaN。如果设备无法提供方向信息,则此值为 null。 |
7 | coordinates.speed 返回设备的速度,以米/秒为单位。此值可能为 null。 |
语法
以下是 GeoLocation 坐标属性的语法:
coordinates.property
“property”可以是表格中提到的任何上述属性。
示例
让我们来看一个 GeoLocation 坐标属性的示例:
<!DOCTYPE html> <html> <body> <h1>Geolocation coordinates property</h1> <p>Get you coordinates by clicking the below button</p> <button onclick="getCoords()">COORDINATES</button> <p id="Sample">Your coordinates are:</p> <script> var p = document.getElementById("Sample"); function getCoords() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(showCoords); } else { p.innerHTML ="This browser doesn't support geolocation."; } } function showCoords(position) { p.innerHTML = "Longitude:" + position.coords.longitude + "<br>Latitude: " + position.coords.latitude+"<br>Accuracy: "+ position.coords.accuracy; } </script> </body> </html>
输出
这将产生以下输出:
单击“COORDINATES”按钮并在“了解您的位置”弹出窗口中单击“允许”后:
在以上示例中:
我们首先创建了一个名为“COORDINATES”的按钮,当用户单击时,它将执行 getCoords() 方法。
<button onclick="getCoords()">COORDINATES</button>
getCoords() 函数获取 navigator 对象的 geolocation 属性以检查浏览器是否支持地理位置。如果浏览器支持地理位置,它将返回一个 Geolocation 对象。使用 navigator geolocation 属性的 getCurrentPosition() 方法,我们可以获取设备的当前位置。getCurrentPosition() 方法是一个回调函数,它将函数作为对象作为其参数,因为在 JavaScript 中每个函数都是一个对象。
在这里,我们将 showCoords() 方法传递给它。showCoords() 方法将位置接口作为参数,并使用它在 id 为“Sample”的段落中显示经度、纬度和精度。它使用段落的 innerHTML 属性向其中追加文本。
function getCoords() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(showCoords); } else { p.innerHTML ="This browser doesn't support geolocation."; } } function showCoords(position) { p.innerHTML = "Longitude:" + position.coords.longitude + "<br>Latitude: " + position.coords.latitude+"<br>Accuracy: "+ position.coords.accuracy; }
广告