我正在尝试学习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>
答案 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);
}