我需要有关jQuery和Google Maps API的帮助

时间:2011-05-06 19:42:45

标签: jquery google-maps-api-3

我正在尝试学习Google Maps and Places API,所以我想我已经开始使用基础知识了:通过IP地址在地图上显示用户的位置。

我在another thread中找到了一个jQuery脚本,它获取用户的纬度和经度并且工作正常(var下面的警报显示纬度和经度),但是当我将变量传递给Maps方法时,它不起作用。有人可以看到我的功能有什么问题或者它是如何被调用的吗?

$.getJSON('http://api.wipmania.com/jsonp?callback=?', function (data) {  
var latlng = new google.maps.LatLng(data.latitude,data.longitude);  
function initialize() {  
    var myOptions = {  
      zoom: 8,  
      center: latlng,  
      mapTypeId: google.maps.MapTypeId.ROADMAP  
    };  
    var map = new google.maps.Map(document.getElementById("map_canvas"),  
        myOptions);  
    }  
});

编辑:顺便说一下,这些是我正在使用的脚本:

<script language="javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>  
<script language="javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>

2 个答案:

答案 0 :(得分:0)

我想我知道你在那里做了什么。看起来您正在使用Hello World gmaps示例开始。

如果您注意到gmaps示例在map元素的initialize上调用了onload函数,那么您要做的是将getJSON()调用的内容放在initialize函数的内部包装该函数的原始代码。

以下是它的外观:

function initialize() {  

    $.getJSON('http://api.wipmania.com/jsonp?callback=?', function (data) {  
        var latlng = new google.maps.LatLng(data.latitude,data.longitude);  
        var myOptions = {  
            zoom: 8,  
            center: latlng,  
            mapTypeId: google.maps.MapTypeId.ROADMAP  
        };  
        var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    });

}

答案 1 :(得分:0)

尝试在function initialize()的返回区外宣布您的getJSON

像这样:

$(function(){

    $.getJSON('http://api.wipmania.com/jsonp?callback=?', function (data) {  
            var latlng = new google.maps.LatLng(data.latitude,data.longitude);  
            initialize(latlng);
    });
});

function initialize(latlng) {  
    var myOptions = {  
      zoom: 8,  
      center: latlng,  
      mapTypeId: google.maps.MapTypeId.ROADMAP  
    };  
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);  
}