从函数中获取经度和纬度值

Posted

技术标签:

【中文标题】从函数中获取经度和纬度值【英文标题】:Grabbing longitude and Latitude value from a function 【发布时间】:2013-09-18 22:14:05 【问题描述】:

请问我如何在它们的函数之外获取“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); 

    

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

【问题讨论】:

这将有助于标记语言! 谢谢@Steve,已经完成了 【参考方案1】:

我想到的第一件事(在这么晚的时间:D)是这样的:

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

var coords = ;

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

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

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

$(coords).on('positionReady', function(e, position) 控制台.log(位置); );

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

【讨论】:

谢谢你,我去试试,我会更新你的结果 你好@Nicolae 我试过你的建议,但是当我提醒它时它返回未定义 它返回 undefined 因为它在 handle_geolocation_query 之前执行的警报会给你一个值。

以上是关于从函数中获取经度和纬度值的主要内容,如果未能解决你的问题,请参考以下文章

如何从 windows phone 中的纬度和经度值获取地址?

获取经度和纬度值

两次获取相同的纬度,经度值,比较并保存到db

使用gps从纬度和经度获取当前位置

如何从android中的纬度和经度获取完整的地址? [复制]

如何使用 ionic 中的 java 脚本从谷歌地图中的地址获取经度和纬度