0

目前正在为 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 个 lat 和 lon 变量并将它们添加到我的请求中。我尝试了很多变体,但我无法让这段代码正常工作。

知道我做错了什么吗?

非常感谢 !

4

1 回答 1

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>
于 2013-04-18T20:52:34.123 回答