如何从Geo-location方法中获取坐标

时间:2018-01-17 05:49:41

标签: javascript

        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脚本的新手。请帮我从上面的方法中获得协调。警报只是未定义。

2 个答案:

答案 0 :(得分:2)

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

  1. 它创建变量alt,lat和long
  2. 它创建onSuccess和onError
  3. 的函数
  4. 调用navigator.geolocation.getCurrentPosition方法,将其交给onSuccess和onError回调
  5. 地理定位以异步方式发生
  6. 警告long和lat
  7. 地理位置完成并调用onSuccess或onError
  8. 如果调用了onSuccess,则将long和lat值设置为相应的变量。
  9. 看到问题?当地理定位异步发生时,警报立即发生。看起来地理位置可能会立即发生,但就代码流而言,在我们的其余代码运行完毕后,它将在未来发生。

    请尝试使用此代码:

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

答案 1 :(得分:1)

您应该定义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 });