Javascript通过地理定位作为字符串变量

时间:2019-01-25 08:57:45

标签: javascript geolocation

我想用地理位置标记相机照片(坐标很好)。 这是我的一部分代码:

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);

...

我的问题是我不知道如何传递一个保存位置坐标的变量,我已经尝试了很多事情,但是没有成功。有人有想法吗?

谢谢。

编辑:我希望它看起来像这样: enter image description here

1 个答案:

答案 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>