API问题

时间:2016-11-25 16:11:21

标签: javascript jquery ajax api

我正在尝试使用API​​构建本地天气应用程序。 基本上我的代码要求google和lon去谷歌,然后把它交给另一方来弄清楚什么是城市,让它做出天气的最终请求。

•我有lat和lon

•我有女巫城市请求的链接

•我有每个城市的天气

如何将城市放入轮盘网址以最终提出天气要求?

我很抱歉非常混乱,但我对API不太了解,也不了解如何使用html处理javascript。如果你知道一个可以帮助我的消息来源,我会对它有所了解。 感谢。

如果您想从项目中查看代码,请输入以下代码。 http://codepen.io/Lbg232/pen/YpVgyJ?editors=1011

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script>

  //I don't really know what is this for.
  var options = {
  enableHighAccuracy: true,
  timeout: 5000,
  maximumAge: 0
};


function success(pos) {
  var crd = pos.coords;

  console.log('Latitude : ' + crd.latitude); //It does print it (it works)
  console.log('Longitude: ' + crd.longitude);   

  //This is the link ready to ask for the JSON 
  var finUrl = "http://api.wunderground.com/api/b2383764d2fa3c12/geolookup/q/" + crd.latitude + "," + crd.longitude + ".json";

    console.log(finUrl); //it prints the link

};


function error(err) {
  console.warn('ERROR(' + err.code + '): ' + err.message);
};

navigator.geolocation.getCurrentPosition(success, error, options);


//The request for the weather in a spacific city.       
jQuery(document).ready(function($) {
  $.ajax({  

  //I wanted to put the specific city and country.
  url : "http://api.wunderground.com/api/b2383764d2fa3c12/geolookup/conditions/q/CL/Santiago.json",

  dataType : "jsonp",
  success : function(parsed_json) {
  var location = parsed_json['location']['city'];
  var temp_f = parsed_json['current_observation']['temp_c'];
  alert("Current temperature in " + location + " is: " + temp_f);
  }        
  });
});
</script>

我知道这不是一个非常具体的问题,对于堆栈溢出来说并不是很合适,但我找不到答案。感谢。

1 个答案:

答案 0 :(得分:0)

您想要将此网址(http://api.wunderground.com/api/b2383764d2fa3c12/geolookup/conditions/q/CL/Santiago.json)的CL和Santiago替换为任何其他城市和国家/地区吗?如果是,您可以创建另一个返回城市和国家/地区名称的函数,如下所示:

function getCurrentCityAndCountry(){
var cityAndCountry;
var result = "http://api.wunderground.com/api/b2383764d2fa3c12/geolookup/q/" + crd.latitude + "," + crd.longitude + ".json";
if(result){
    cityAndCountry = {
        city: location.city,
        country:location.country_name
    }
}
return cityAndCountry;
};

现在,在调用最后一个API之前,请调用上面创建的函数来获取城市和国家/地区名称,并将它们放在网址中

var cityAndCountry = getCurrentCityAndCountry();
url : "http://api.wunderground.com/api/b2383764d2fa3c12/geolookup/conditions/q/"+cityAndCountry.city+"/"+cityAndCountry.country+".json"