本来想用闭包,但是发觉貌似callback不能调用闭包内的函数啊。
囧只能全局变量了,不知道有没得人有更好的办法
var __node = {};
var __pro = {};
var __listener = {};
function map(node,pro,listener)
{
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "http://maps.google.com/maps/api/js?sensor=false&callback=initialize";
document.body.appendChild(script);
//貌似非得设置全局变量了 ╮(╯Д╰)╭
__node = node;
__pro = pro;
__listener = listener;
}
function initialize()
{
node = __node;
pro = __pro;
listener = __listener;
var lat = 39.90216456612496;
var lng = 116.40332221984863;
if(pro.lat != undefined || pro.lng != undefined)
{
lat = pro.lat?pro.lat:lat;
lng = pro.lng?pro.lng:lng;
pro.lat = undefined;
pro.lng = undefined;
}
var myLatlng = new google.maps.LatLng(lat, lng );
if(pro.mapTypeId == undefined)
pro.mapTypeId = google.maps.MapTypeId.ROADMAP;
if(pro.zoom == undefined)
pro.zoom = 14;
pro.center = myLatlng;
var map = new google.maps.Map(document.getElementById(node), pro);
google.maps.event.addListener(map, 'click', function(event) {
listener.click(event);
});
}
本文介绍如何利用Google Maps API实现地图加载及点击事件监听。通过设置全局变量的方式传递参数,并使用callback初始化地图。

2966

被折叠的 条评论
为什么被折叠?



