我想用地理位置标记相机照片(坐标很好)。 这是我的一部分代码:
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition, showError);
} else {
x.innerHTML = "Geolocation is not supported by this browser.";
}
}
function showPosition(position) {
return position.coords.latitude + " " + position.coords.longitude;
}
在takePhoto()方法中,我有:
...
context.drawImage(video, 0, 0, 640, 480);
var loc = getLocation();
context.strokeText(loc, 10, 50);
...
我的问题是我不知道如何传递一个保存位置坐标的变量,我已经尝试了很多事情,但是没有成功。有人有想法吗?
谢谢。
答案 0 :(得分:0)
您需要异步等待以解决此问题
function takePhoto(position) {
document.getElementById("x").innerHTML = position.coords.latitude + " " + position.coords.longitude;
}
function getLocation() {
return new Promise((resolve,reject) => {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
return resolve(position);
}, function(err) {
return reject(err);
});
} else {
return reject("Geolocation is not supported by this browser.");
}
})
}
(async function() {
const coords = await getLocation();
takePhoto(coords);
})().then(() => {
console.log("done")
}).catch((err) => {
console.error(err);
})
<div id="x">empty</div>