调用google地图api的简单封装

本文介绍如何利用Google Maps API实现地图加载及点击事件监听。通过设置全局变量的方式传递参数,并使用callback初始化地图。

本来想用闭包,但是发觉貌似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);
	  });
  }

转载于:https://my.oschina.net/xming4321/blog/98663

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值