我正在尝试使用以下脚本制作一个可以检测当前位置并告诉您当地天气的应用:
var lat = 0;
var long = 0;
function showLocation(position) {
lat = position.coords.latitude;
lon =position.coords.longitude;
}
function errorHandler(err) {
if(err.code == 1) {
alert("Error: Access is denied!");
} else if ( err.code == 2) {
alert("Error: Position is unavailable!");
}
}
function getLocation(){
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(showLocation, errorHandler);
}else{
alert("Sorry, browser does not support geolocation!");
}
}
var url = "http://api.openweathermap.org/data/2.5/weather?lat="+lat+"&lon="+long+"&APPID={myKey}";
为了调用Weather API来接收JSON信息,我需要使用showLocation()函数中的lat和long变量的值。但是在函数之外,变量仍然具有值“0”。
另外,我想在getJSON方法之外使用“city”,“temp”,“weatherStatus”和“country”的值。
var city="";
var temp="";
var weatherStatus="";
var country = "";
$.getJSON(url, function(json){
city = json.name;
temp = Math.round(json.main.temp-273.15);
weatherStatus = json.weather[0].description;
country = json.sys.country;
}
//alert(city) will be "undefined"
感谢您的时间!