Javascript Geolocation - 无法获得谷歌纵横

时间:2014-05-09 10:51:53

标签: javascript geolocation

我正在尝试地理定位,但我在访问getCurrentPosition方法的coords属性中的信息方面遇到了问题。

这是我目前的代码:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>

  <script type="text/javascript" src="jLocation.js"></script>

  <title>Location Demo </title>   
</head>

<body>

<h1>Location Test File</h1>

<h2>Information</h2>
  <div id="g-information">
    <ul>
        <li>
           Your position is <span id="latitude" class="g-info">unavailable</span>° latitude,
           <span id="longitude" class="g-info">unavailable</span>° longitude (with an accuracy of
           <span id="position-accuracy" class="g-info">unavailable</span> meters)
        </li>
    </ul>
</div>

<script type="text/javascript">
window.onload = function (){
    document.getElementById('latitude').innerHTML = getLatitude();
}   

function getLatitude(){
    if (window.navigator && window.navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(showPosition);
    }
}

function showPosition(position){
    console.log(position.coords.latitude);
}
</script>

</body>

</html>

我没有从showPosition方法获取console.log中的任何内容。我不应该得到纬度吗?

我做错了什么? 提前致谢

1 个答案:

答案 0 :(得分:1)

你的代码是错误的方式。你无法做到这一点,例如:

document.getElementById('latitude').innerHTML = getLatitude();

您无法将功能分配给元素的innerHTML。 (注意:你可以从函数中分配 return ,但这不是这里发生的事情......)

请改为尝试:

window.onload = getLatitude;

function getLatitude() {
  if (window.navigator && window.navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(showPosition);
  }
}

function showPosition(position) {
  var latitude = position.coords.latitude;
  document.getElementById('latitude').innerHTML = latitude;
}