0

请我如何在它们的函数之外获取“lat”和“lon”的值,以便在页面上的其他位置使用。

   navigator.geolocation.getCurrentPosition(handle_geolocation_query,handle_errors);  

    function handle_errors(error)  
    {  
        switch(error.code)  
        {  
            case error.PERMISSION_DENIED: alert("user did not share geolocation data");  
            break;  
            case error.POSITION_UNAVAILABLE: alert("could not detect current position");  
            break;  
            case error.TIMEOUT: alert("retrieving position timed out");  
            break;  
            default: alert("unknown error");  
            break;  
        }  
    }  
   function handle_geolocation_query(position){  
        var lat = (position.coords.latitude);
       var lon = (position.coords.longitude); 

    }

我要做的是获取设备的经度和纬度并将其作为参数传递给查询和数据库,也将相同的值用于其他事物。我不知道该怎么做。任何帮助都感激不尽。

4

1 回答 1

1

我想到的第一件事(在这个深夜:D)是这样的:

  • 在处理程序之外声明一个变量,比如说:

    变量坐标 = {};

  • 然后在你的'handle_geolocation_query'处理程序中,触发一个事件,让你知道你的位置已经准备好,假设你正在使用jQuery:

    $(coords).trigger('positionReady', position);

  • 之后,在您需要这些坐标的任何地方,监听您的自定义“positionReady”事件,然后完成您的工作:

    $(coords).on('positionReady', function(e, position) { console.log(position); });

这将帮助您避免“意大利面条代码”,但同时,您需要异步“思考”,并且可能以您需要的(正确)方式使用回调。

于 2013-09-18T22:59:11.893 回答