目前正在开发适用于iOS的天气网络应用。我正在尝试获取用户的坐标并将经度和经度放在我的Ajax请求中(在api Wunderground上)。
这是我的代码(编辑):
<script type="text/javascript">
$(document).ready(function() {
navigator.geolocation.getCurrentPosition(getLocation, unknownLocation);
function getLocation(pos)
{
var lat = pos.coords.latitude;
var lon = pos.coords.longitude;
$.ajax({
url : "http://api.wunderground.com/api/ApiId/geolookup/conditions/q/"+ lat +","+ lon +".json",
dataType : "jsonp",
success : function(parsed_json) {
var location = parsed_json['location']['city'];
var temp_f = parsed_json['current_observation']['temp_f'];
alert("Current temperature in " + location + " is: " + temp_f);
}
});
}
function unknownLocation()
{
alert('Could not find location');
}
});
</script>
正如你所看到的,我“只是”必须创建2个vars lat和lon并在我的请求中添加它们。我尝试了很多变种,但是我无法使这段代码正常工作。
知道我做错了什么?
非常感谢!
答案 0 :(得分:0)
您的变量声明位于.ajax调用的中间,并使JavaScript结构无效。另外,我不确定你为什么使用“function($)”,通常使用jQuery保留$,不应该用作函数参数。
<script type="text/javascript">
$(document).ready(function() {
navigator.geolocation.getCurrentPosition(onPositionUpdate);
});
function onPositionUpdate(position) {
var lat = position.coords.latitude;
var lon = position.coords.longitude;
$.ajax({
url : "http://api.wunderground.com/api/ApiId/geolookup/conditions/q/"+lat+","+lon+".json",
dataType : "jsonp",
success : function(parsed_json) {
var location = parsed_json['location']['city'];
var temp_f = parsed_json['current_observation']['temp_f'];
alert("Current temperature in " + location + " is: " + temp_f);
}
});
}
</script>