如何根据用户当前的GPS位置获取天气状况

时间:2017-07-21 18:18:22

标签: javascript jquery geolocation location weather-api

除了当前位置显示在其他位置的事实外,一切都适用于我的代码。我住在Kuils河,它给了我Edgemead的天气条件。如何获取我所在的当前位置?任何人都可以帮我这个。

$(document).ready(function() {
  var lat, lon, api_url;

  if ("geolocation" in navigator) {
    $('#showTemp').on('click', function() {
      navigator.geolocation.getCurrentPosition(gotLocation);

      function gotLocation(position) {
        lat = position.coords.latitude;
        lon = position.coords.longitude;

        api_url = 'http://api.openweathermap.org/data/2.5/weather?lat=' + lat + '&lon=' + lon + '&units=metric&appid=b231606340553d9174136f7f083904b3';
        APPID: '53f9d8e4213222cf517d86dc406d67fc'

        $.ajax({
          url: api_url,
          method: 'GET',
          success: function(data) {
            var tempr = data.main.temp;
            var location = data.name;
            var desc = data.weather.description;
            $('#result').text(tempr + '°' + location);
          }
        });
      }
    });
  } else {
    alert('Your browser doesnt support geolocation. Sorry.');
  }
});

2 个答案:

答案 0 :(得分:0)

我发现错误:

api_url = 'http://api.openweathermap.org/data/2.5/weather?lat=' +
          lat + '&lon=' + 
          lon + '&units=metric&appid=b231606340553d9174136f7f083904b3';
          APPID: '53f9d8e4213222cf517d86dc406d67fc'

//

appid有两次。你能告诉我你期待的坐标(lat,lon)吗?您应该可以直接在浏览器中插入网址,以查看您获得的内容。你试过了吗?

答案 1 :(得分:0)

该位置取决于您的互联网连接"突破",此代码似乎使用浏览器/ HTML5 getCurrentPosition() API。

将其替换为实际的GPS值,它会更准确。