如何从地理位置方法中获取坐标


        var alt, lat, long;
        function onSuccess(position) {
            lat = position.coords.latitude;
            long = position.coords.longitude;
            alt = position.coords.altitude;
        }
        function onError(error) {
            myApp.alert('code: ' + error.code + 'n' + 'message: ' + error.message + 'n', main_title);
        }
        navigator.geolocation.getCurrentPosition(onSuccess, onError, { enableHighAccuracy: true });
        alert(long + ' ' + lat);

嗨,我是Java脚本的新手。 请帮助我从上述方法中获取协调。 警报只是未定义。

问题在于警报的位置。警报需要进入 onSuccess 回调方法。以下是 JavaScript 如何解释您的代码。

  1. 它创建变量 alt、lat 和 long
  2. 它创建函数onSuccess和onError
  3. 它调用navigator.geolocation.getCurrentPosition方法,将我们的onSuccess和onError回调交给它。
  4. 地理位置异步发生
  5. 警报长和纬度
  6. 地理位置完成并调用成功或错误
  7. 如果调用了 onSuccess,则 long 和 lat 值将设置到其相应的变量中。

看到问题了吗?当地理位置异步发生时,警报会立即发生。地理位置似乎会立即发生,但就代码流而言,它会在我们的其余代码完成运行后在未来发生一点。

请尝试以下代码:

var alt, lat, long;
function onSuccess(position) {
    lat = position.coords.latitude;
    long = position.coords.longitude;
    alt = position.coords.altitude;
    allert(long + ', ' + lat);
}
function onError(error) {
    myApp.alert('code: ' + error.code + 'n' + 'message: ' + error.message + 'n', main_title);
}
navigator.geolocation.getCurrentPosition(onSuccess, onError, { enableHighAccuracy: true });
你应该

定义OnSuccess函数并获取latitudelongitude;

function onSuccess(pos) {
    var crd = pos.coords;
    console.log('Your current position is:');
    console.log(`Latitude : ${crd.latitude}`);
    console.log(`Longitude: ${crd.longitude}`);
}
navigator.geolocation.getCurrentPosition(onSuccess, onError, { enableHighAccuracy: true });

最新更新