1

この 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>
4

2 に答える 2

3

navigator.geolocation.getCurrentPosition の前:

var latitude, longitude;

handle_geolocoation_query(position) の内部:

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
}     
于 2013-09-19T10:29:15.007 に答える
0

以下のコードでは、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; 
}  
});
于 2013-09-19T10:27:12.830 に答える