获取ajax请求的位置坐标

时间:2013-04-18 19:41:04

标签: javascript jquery ajax location coords

目前正在开发适用于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并在我的请求中添加它们。我尝试了很多变种,但是我无法使这段代码正常工作。

知道我做错了什么?

非常感谢!

1 个答案:

答案 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>