2017-06-16 7 views
0

地理的位置を使用して現在の場所アドレスを印刷しようとしていますが、画面に何も印刷されません。私がここで間違っているところを助けてくれますか?geolcoationを使用して現在の塗りつぶしアドレスを印刷しようとしています

また、現在のアドレスを変数に格納する方法はありますか?

<!DOCTYPE html> 
<html> 
<body> 

<button onclick="getLocation()">Try It</button> 

<p id="demo"></p> 

<script> 

var x = document.getElementById("demo"); 

function getLocation() { 
    if (navigator.geolocation) { 
     navigator.geolocation.getCurrentPosition(showPosition); 
    } else { 
     x.innerHTML = "Geolocation is not supported by this browser."; 
    } 
} 

function showPosition(position) { 

var request = new XMLHttpRequest(); 
var method = 'GET'; 
var url = 'http://maps.googleapis.com/maps/api/geocode/json?latlng='+position.coords.latitude+','+position.coords.longitude; 
var async = true; 

request.open(method, url, async); 

request.onreadystatechange = function(){ 

var data = JSON.parse(request.responseText); 
var address = data.results[0]; 
x.innerHTML = address.formatted_address;   
     }; 
} 
</script> 

</body> 
</html> 

答えて

0

これは動作するはずです:JSFIDDLE

あなたがrequest.send();を逃すとまたrequest.readyState

<!DOCTYPE html> 
<html> 

    <body> 

    <button onclick="getLocation()">Try It</button> 

    <p id="demo"></p> 

    <script> 
     var x = document.getElementById("demo"); 

     function getLocation() { 
     if (navigator.geolocation) { 
      navigator.geolocation.getCurrentPosition(showPosition); 
     } else { 
      x.innerHTML = "Geolocation is not supported by this browser."; 
     } 
     } 

     function showPosition(position) { 

     var request = new XMLHttpRequest(); 
     var method = 'GET'; 
     var url = '//maps.googleapis.com/maps/api/geocode/json?latlng=' + position.coords.latitude + ',' + position.coords.longitude; 
     var async = true; 

     request.open(method, url, async); 
     request.setRequestHeader('Accept', 'application/json'); 
     request.onreadystatechange = function() { 
      if (request.readyState == XMLHttpRequest.DONE) { 
      var data = JSON.parse(request.responseText); 
      var address = data.results[0]; 
      x.innerHTML = address.formatted_address; 
      } 
     }; 
     request.send(); 
     } 

    </script> 

    </body> 

</html> 
をチェックしていませんでした
関連する問題