如何从 getCurrentPosition() 获取坐标
Posted
技术标签:
【中文标题】如何从 getCurrentPosition() 获取坐标【英文标题】:How to get coordinates from getCurrentPosition() 【发布时间】:2018-07-03 19:57:34 【问题描述】:我想从getCurrentPosition()
方法中获取坐标,以便在其他方法中使用它,但我做不到。
这是我的 html
<div id="map"></div>
这是我的 javascript 代码
var x = document.getElementById("map");
function getLocation()
if (navigator.geolocation)
navigator.geolocation.getCurrentPosition(showPosition);
else
x.innerHTML = "Geolocation is not supported by this browser.";
function showPosition(position)
var a = position.coords.latitude;
var b = position.coords.longitude;
pos = a, b
console.log(pos);
getLocation();
我想通过showPosition()
方法以某种方式访问pos
变量。有什么办法可以做到吗?或者如果我不能,有没有其他方法可以解决我的问题?请帮帮我。
【问题讨论】:
有什么问题?错误是什么? @Pop-A-Stash 虽然 console.log() 显示数组 pos 但我想返回该 pos 数组以便它可以在代码中的其他地方使用 【参考方案1】:您应该能够在全局范围内简单地定义pos
,并且在您需要的任何地方都可以访问它。您在 showPosition
内部定义 pos
的方式也有问题
var x = document.getElementById("map");
var pos;
function getLocation()
if (navigator.geolocation)
navigator.geolocation.getCurrentPosition(showPosition);
else
x.innerHTML = "Geolocation is not supported by this browser.";
function showPosition(position)
var a = position.coords.latitude;
var b = position.coords.longitude;
pos = [
a,
b
];
console.log(pos);
getLocation();
【讨论】:
根据您建议的更改,console.log(pos) 在 showPosition() 方法的范围内成功执行,但即使 pos 是全局声明的,也无法在范围外执行 你在说什么范围?您还没有举例说明您打算如何使用pos
变量?
getCurrentPosition
在现代浏览器中不需要 2 个参数;它只需要 1 个回调函数。另请注意,它是一个异步函数,因此必须在回调中调用任何额外的逻辑。 developer.mozilla.org/en-US/docs/Web/API/Geolocation/…以上是关于如何从 getCurrentPosition() 获取坐标的主要内容,如果未能解决你的问题,请参考以下文章
geolocation.getCurrentPosition 在晚上失败——如何提供自己的 api 密钥?
navigator.geolocation.getCurrentPosition() 没有从 googleapi 得到响应
geolocation.getCurrentPosition 如何返回值?
无法从 react-native 中的 navigation.geolocation.getCurrentPosition() 返回位置