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)

  

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

  1. 调用百度地图API的总结

    因为项目要用到百度地图,所以先摸索了一下,各种功能官方都有文档,点击可查看,文章的话我就直接写我用到的功能例子了,要用可以直接复制粘贴~ 一.主要涉及到的几个接口(先申请密钥): 1.技术一:坐标转换 ...

  2. 【c#】Form调用百度地图api攻略及常见问题

    首先,在Form中调用百度地图api,我们需要使用webbrowser控件,这个在前面的文章中已经讲过了,可以参照(http://blog.csdn.net/buptgshengod/article/ ...

  3. HTML5调用百度地图API获取当前位置并直接导航目的地的方法

    <!DOCTYPE html> <html lang="zh-cmn-Hans">     <meta charset="UTF-8&quo ...

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

    在桌面程序下 百度地图API的鼠标缩放地图功能可能会失灵无效! 这个原因不是API的问题 小弟试了下在WEB上面是没有问题的 于是考虑可能是WebBrowser的获取焦点问题,于是在主窗体 添加了一个 ...

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

    <!DOCTYPE html> <html> <title>HTML5 HTML5 调用百度地图API地理定位实例</title> <head&g ...

  6. 跨平台移动开发_PhoneGap 使用Geolocation基于所在地理位置坐标调用百度地图API

    使用Geolocation基于所在地理位置坐标调用百度地图API 效果图 示例代码 <!DOCTYPE html> <html> <head> <title& ...

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

    自从HTML5的标准确定以后,越来越多的网站使用HTML5来进行开发.虽然对HTML5支持的浏览器不是很多,但是依然抵挡不了大伙对HTML5开发的热情.今天为大家带来的是使用HTML5调用百度地图AP ...

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

    <!DOCTYPE html> <html lang="zh-cmn-Hans"> <meta charset="UTF-8"&g ...

  9. web开发调用百度地图API + AK申请

    web开发调用百度地图API + AK申请 要使用百度地图的API我们首先需要在我们的html页面引入js----`` 如何获取百度地图ak: 1.登陆百度地图开发者平台 2.注册百度开发者账号并登陆 ...

随机推荐

  1. 详解centos下vi的用法

    vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令.由于对Unix及Linux系统的任何版本,vi编辑器是完全相 ...

  2. C++异常处理assert,throw,exit用法

    常见的几个小细节问题. assert应用: 在现实世界中,我们脑袋时刻都在判断对与错,对的事情我们会继续深入下去,而错的事情我们会马上停止,那么在编程开发中我们如何赋予程序这种判断事物对错的能力呢?其 ...

  3. SpringMVC + Spring + MyBatis 学习笔记:遭遇order by 排序问题

    系统:WIN8.1 数据库:Oracle 11GR2 开发工具:MyEclipse 8.6 框架:Spring3.2.9.SpringMVC3.2.9.MyBatis3.2.8 用MyBatis写排序 ...

  4. iframe和frame的区别

    在同时有frame和Iframe的一个窗口里frame最大可以做个frameset的儿子,Iframe最大也只能做到frameset的孙子.frame的布局限于几种,Iframe想放哪里放哪里.fra ...

  5. Hadoop第三天---分布式文件系统HDFS(大数据存储实战)

    1.开机启动Hadoop,输入命令:  检查相关进程的启动情况: 2.对Hadoop集群做一个测试:   可以看到新建的test1.txt和test2.txt已经成功地拷贝到节点上(伪分布式只有一个节 ...

  6. Web 检测代码 web analysis 开源 open source

    1. Grape Web Statistics Grape Web Statistics is a fairly simple piece of analytics software. Grape i ...

  7. 简单版问卷调查系统(Asp.Net+SqlServer2008)

    1.系统主要涉及以下几个表  问卷项目表(Q_Naire) 问卷题目表(Q_Problem) 题目类型表(Q_ProblmeType) 题目选项表(Q_Options) 调查结果表(Q_Answer) ...

  8. 【132】iPad使用相关问题

    1.想iPad中导入音乐文件,保留原音乐文件名称 [方法]需要删除音乐文件中的“标题”和“参与创作的艺术家”,直接删除的话,效率比较低,需要借助一款软件——foobar2000,选中导入的文件,然后属 ...

  9. 什么是IntelAMT

    IntelAMT 全称为INTEL主动管理技术,该技术允许IT经理们远程管理和修复联网的计算机系统,而且实施过程是对于服务对象完全透明的,从而节省了用户的时间和计 算机维护成本.释放出来的iAMT构架 ...

  10. MyEclipse中无法将SVN检出来的项目部署到tomcat中

    自己遇到的小问题  : 要以web项目方式从svn上倒下来才可以部署到tomcat下检出步骤: myEclipse -->File-->new-->other-->svn--& ...