调用百度地图Api实现的查看地图功能的小插件

1. 功能

bMap.js 可根据地理位置调用出百度地图,采用弹出框形式

2.用法

var city = ‘青岛市‘;
var address = ‘香港中路‘;
bMap.init({
	city : city,
	address : address
 });

3.依赖

需自行引入jquery以及layer.js(弹出框插件)

4. 局限

各模块之间耦合度过于紧密,插件化程度太低,依赖性太强

5. demo下载

地址 :http://pan.baidu.com/s/1pJAxOnT

6. 源码预览

;!(function(window){
	window.bMap = {
		//默认配置
		config : {
			width : ‘700px‘,
			height : ‘500px‘,
			city : ‘北京市‘,
			address : ‘天安门‘,
			scaleControl : true,
			bMapApiUrl : ‘http://api.map.baidu.com/api?v=2.0&ak=C474e91657d303114af6e8df1931a392‘,
			bMapGeocoderUrl : ‘http://api.map.baidu.com/geocoder/v2/?ak=C474e91657d303114af6e8df1931a392&output=json‘
		},
		//中转方法,异步加载加载百度Api,
		initVariable : function(){
			if(!window.BMap){
				this.loadScript(bMap.config.bMapApiUrl+‘&callback=bMap.openMap‘);
			}else{
				this.openMap();
			}
		},
		//加载script
		loadScript : function(url){
			var script = document.createElement(‘script‘);
			script.setAttribute(‘type‘,‘text/javascript‘);
			script.setAttribute(‘src‘,url);
			document.body.appendChild(script);
		},
		//生成地图容器
		createMapContainer : function(){
			var mapContainer = document.createElement(‘div‘);
			mapContainer.setAttribute(‘id‘,‘mapContainer‘);
			mapContainer.style.width = this.config.width;
			mapContainer.style.height = this.config.height;
			document.body.appendChild(mapContainer);
			return mapContainer;
		},
		//确定坐标位置,并去初始化BMap
		openMap : function(){
			$.getJSON(bMap.config.bMapGeocoderUrl+"&address="+bMap.config.address+"&city="+bMap.config.city+"&callback=?",
	   		 function(data){
	    		if(data && data.status==0){
					bMap.createBMap && bMap.createBMap(data.result);
				}else{
					layer.msg(data.msg?data.msg:‘请求失败!‘);
				}
			});
		},
		//入口方法
		init : function(setings){
			this.config = $.extend({} , bMap.config , setings);
			this.initVariable();
		},
		//弹出遮罩层
		showLayer : function(domObj){
			var mylayer = $.layer({
				type: 1,
				title: false,
				closeBtn : [0 , true],
				border : [7, 0.1, ‘#222‘, true],
				shade : [0.5 , ‘#222‘ , true],
				offset: [‘30px‘,‘50%‘],
				//move: [‘.juanmove‘, false],
				area: [this.config.width,‘auto‘],
				page: {
					dom: domObj
				},
				close : function(){
					layer.close(mylayer);
					domObj.remove();// 移除dom节点,否则多次调用会导致地图显示异常
				}
			});
		},
		//调用百度地图api
		createBMap : function(initObj){
			var mapContainer = document.getElementById(‘mapContainer‘);
			if(!mapContainer){
				mapContainer = this.createMapContainer();
			}
			var map = new BMap.Map(mapContainer);    // 创建Map实例
			map.addControl(new BMap.MapTypeControl()); 	//地图类型组件
			map.addControl(new BMap.NavigationControl());
			if(this.config.scaleControl){
				map.addControl(new BMap.ScaleControl());
			}
			map.addControl(new BMap.OverviewMapControl());
			map.enableScrollWheelZoom();	//缩放
			var point = new BMap.Point(initObj.location.lng,initObj.location.lat);	//	初始化定位
			map.centerAndZoom(point, 16);  // 初始化地图,设置中心点坐标和地图级别
			map.clearOverlays();
			var marker = new BMap.Marker(point);  // 创建标注,为要查询的地址对应的经纬度
		    map.addOverlay(marker);
			this.showLayer(mapContainer);
		}
	}
})(window)

  

时间: 2024-11-29 04:19:02

调用百度地图Api实现的查看地图功能的小插件的相关文章

HTML5 调用百度地图API地理定位

<!DOCTYPE html> <html> <title>HTML5 HTML5 调用百度地图API地理定位实例</title> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <script type="text/javascript" src="ht

HTML5页面直接调用百度地图API,获取当前位置,直接导航目的地(转)

HTML5页面直接调用百度地图API,获取当前位置,直接导航目的地 我是应用在微信中,自定义菜单,菜单直接链接到这个HTML5页面,获取当前位置后,页面中定好目的地,这样打开页面后直接进入导航页面 可以省下先发送位置信息后,点确定再出导航,省一步, <!DOCTYPE html> <html lang="zh-cmn-Hans"> <meta charset="UTF-8"> <meta name="viewpor

C#调用百度地图API入门&amp;解决BMap未定义问题

本文主要是最近帮助好友研究JavaScript的百度地图API,同时显示到C# Winform界面.同时遇到了BMap未定义的错误(BMap is not defined)及解决方法.以前写过基于Android的百度地图,其实原理都差不多,希望文章对你有所帮助吧! 一. C#显示百度地图 使用C# Winform显示百度地图主要包括两个步骤: 1.调用百度地图API,通过申请的密钥AK访问JavaScript版本地图: 2.再在C#中webBrowser浏览器控件中访问JS文件,显示地图到窗口.

HTML5调用百度地图API进行地理定位实例

自从HTML5的标准确定以后,越来越多的网站使用HTML5来进行开发.虽然对HTML5支持的浏览器不是很多,但是依然抵挡不了大伙对HTML5开发的热情.今天为大家带来的是使用HTML5调用百度地图API进行地理定位实例.请看下面代码: <!DOCTYPE html> <html> <title>HTML5调用百度地图API进行地理定位实例</title> <head> <meta http-equiv="Content-Type&

关于 WebBrowser调用百度地图API 鼠标滚轮缩放地图级别失灵的解决办法

在桌面程序下 百度地图API的鼠标缩放地图功能可能会失灵无效! 这个原因不是API的问题 小弟试了下在WEB上面是没有问题的 于是考虑可能是WebBrowser的获取焦点问题,于是在主窗体 添加了一个窗体激活事件 如下 //小弟用的是WPF所以是Window_Activated //如果你用的是Winform就是 Form1_Activated(object sender, EventArgs e)事件 private void Window_Activated(object sender, E

ionic 调用百度地图API,并定位当前位置示例

首先,可以参考JS版本的百度地图API示例. 由于在ionic程序中,我们一般使用的ES5 或 ES6 或者是Typescript. 这与JS 还有有一些区别的.所以,在我们的程序中,代码与官方示例代码格式上不完全相同. 下面,简单说明一下如何在 ionic 程序中 调用 百度地图API. 1. 在ionic程序中,定位到文件: \src\index.html.  添加如下代码 , 注意将"您的密钥" 替换成 您申请的密钥 <script type="text/java

微信接口调用百度地图api实现微信公众号打卡

前言 因最近给的需求要在微信公众号完成考勤打卡,刚开始说根据员工连接公司的wifi去判断,网上查了下java好像没得这个功能,所以只能选择在地图来完成. 本人也是第一次接触微信公众号,所以刚开始动手比较困难,好在经过一番摸索还是完成了.这里记录下自己的地图方案. 准备工作 既然是微信公众号肯定是基于微信接口的,也不用想的那么复杂,其实就是基于前台weui样式+微信js接口.下面详细说明步骤. 首先需要在公众号设置功能设置中配置微信公众号js接口安全域名 按流程把文件放在项目工程静态资源下 另外在

C#调用百度地图 api

转  http://blog.csdn.net/kkkkkxiaofei/article/details/8663377 这一篇,记录一下我调用的地图API实现的功能.下面介绍的都是一些片段的节选,不能直接复制就运行.在实现之前肯定要加载地图,先放一个webbroser控件,然后如下: [csharp] view plaincopyprint? private void Form1_Load(object sender, EventArgs e) { string str_url = Appli

如何在网页中调用百度地图api

我想在木有提供地图接口的年代,前端工程师门要么只写上企业的具体地址,要么就是用一张标有自己位置的地图图片.但是现在不一样啦!为了增强用户体验,谷歌,甚至百度都很开放了,你可以在他们的网站上找到地图接口,通过进行直接的调用就可以了. 下面我来教你怎么在网页中用好百度地图,当然了,你也可以去百度地图网站去查找相关的技术资料. 首先你需要进入到百度地图官网http://developer.baidu.com/map/ .因为我们是用的脚本进行加载的,所以我们要选择上图中的第一个"javascript