【问题标题】:Assigning latitude and longitude as variables for global use [duplicate]将纬度和经度分配为全局使用的变量[重复]
【发布时间】:2013-09-19 10:13:57
【问题描述】:

我如何获取此 JavaScript 代码的经度和纬度作为全局变量。试了好几次都没用。

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

我在 Jquery Mobile 和 PhoneGap 应用程序中使用它。任何帮助将不胜感激,谢谢

根据到目前为止给出的答案,这是我所拥有的

  $(document).ready(function(){
var latitude, longitude;

     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){  
   latitude = (position.coords.latitude);
   longitude = (position.coords.longitude); 
}
alert(latitude, longitude);     
 });

当我提醒它时它返回“未定义”

这是html

<!DOCTYPE html>
<html>
 <head>
<meta charset="UTF-8">
   <title>Untitled Document</title>
<script type="text/javascript" src="js/jquery.js"></script>
   <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
  <link href="http://code.google.com/apis/maps/documentation/javascript/examples/default.css" rel="stylesheet"     type="text/css" />
<script type="text/javascript" src="js/gas-script.js"></script>
 </head>

<body>
 </body>
 </html>

【问题讨论】:

    标签: javascript jquery google-maps geolocation latitude-longitude


    【解决方案1】:

    navigator.geolocation.getCurrentPosition 之前:

    var latitude, longitude;
    

    handle_geolocoation_query(位置)内部:

    latitude = position.coords.latitude;
    longitude = position.coords.longitude;
    

    制作:

    var latitude, longitude;
    $(document).ready(function(){
        if (navigator.geolocation) {
            navigator.geolocation.getCurrentPosition(handle_geolocation_query,handle_errors);
        } else {
            alert('Device probably not ready.');
        }
    });
    function handle_errors(error) {  
        // error handling here
    }
    function handle_geolocation_query(position){  
        latitude = (position.coords.latitude);
        longitude = (position.coords.longitude); 
        onPositionReady();
    }
    function onPositionReady() {
        alert(latitude, longitude);
        // proceed
    }     
    

    【讨论】:

    • @RonaldK,谢谢你,我试过你的答案,但是当警报或 console.log 时变量返回未定义
    • 哪些变量?纬度/经度或位置坐标?你什么时候测试它们?
    • 哦,等等,你问了同样的问题,在这里得到了一个好的答案:stackoverflow.com/questions/18883252/…
    • $(coords).on('positionReady', function(e, position) { 当我把我的代码放在这里 });但是在外面它不起作用
    • 这是否意味着我将必须使用此函数 onPositionReady() { 将经纬度传递到服务器的代码将在这里 } 包装任何将使用纬度和经度的脚本跨度>
    【解决方案2】:

    在下面提到的代码中,lat、lng 应该在当前文件中全局可用,

    $(document).ready(function(){
    var lat, lng;
    navigator.geolocation.getCurrentPosition(handle_geolocation_query,handle_errors);  
    function handle_geolocation_query(position){  
        lat = position.coords.latitude;    
        lng =  position.coords.longitude; 
    }  
    });
    

    【讨论】:

    • 谢谢你我试过你的答案,但是当警报或控制台日志时变量返回未定义
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-01
    相关资源
    最近更新 更多