百度地图JavaScript API使用

最近在完成优达学城前端开发(入门)课程的P4项目中,要求调用google地图进行交互,项目已提供部分js代码和html代码。但在申请google地图API密钥时由于网络等原因,打不开或者连接超时,所以想着地图应该是相似的,百度地图可能也能实现这样的功能,于是就开始了百度地图JavaScript API使用的学习探究了。

简单介绍:百度地图JavaScript API是一套由JavaScript语言编写的应用程序接口,它能够帮助您在网站中构建功能丰富、交互性强的地图应用,包含了构建地图基本功能的各种接口,提供了诸如本地搜索、路线规划等数据服务。

一、获取AK

为了统一平台服务的配额管理,JavaScript API在新版本引入ak机制。JavaScript API v1.4及以前版本无须申请密钥(ak),自v1.5版本开始需要先申请密钥(ak),才可使用,如需获取更高配额,需申请认证企业用户。

1.注册。注册并登录百度地图开放平台

2.在API控制台中创建应用:

提交完成后,

中间这一长串就是我们申请的AK了。

二、html页面接入百度地图

主要代码: <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=FNPat11O65z0oriZtFZkc9hPSKh4rrD2"></script>这里的ak就是上面申请到的AK了。

<!DOCTYPE html>
<html>
<head>
  <!-- This tells the browser how to read the document. -->
  <meta charset="utf-8">
  <!-- Tells the browser what the title of this page should be. -->
  <title>Resume</title>
  <!-- Load the page styles. -->
  <link href="css/style.css" rel="stylesheet">
   <script src="js/jQuery.js"></script>
  <script src="js/helper.js"></script>
  <!--
  Uncomment the <script> tag below when you‘re ready to add an interactive Google Map to your resume!
  -->
<!-- <script src="http://maps.googleapis.com/maps/api/js?libraries=places"></script> -->
  <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=XGWB03IDfnqGTzqm7jTDXKMSLA8m1nGg"></script>
  <meta name="viewport" content="width=device-width,initial-scale=1">
</head>
<body>
  <div id="main">
    <div id="header" class="center-content clear-fix">
      <ul id="topContacts" class="flex-box"></ul>
    </div>
    <div style="clear: both;"></div>
    <div id="workExperience" class="gray">
      <h2>Work Experience</h2>
    </div>
    <div id="projects">
      <h2>Projects</h2>
    </div>
    <div id="education" class="gray">
      <h2>Education</h2>
    </div>
    <div id="mapDiv">
      <h2>Where I‘ve Lived and Worked</h2>
    </div>
    <div id="lets-connect" class="dark-gray">
      <h2 class="orange center-text">Let‘s Connect</h2>
      <ul id="footerContacts" class="flex-box">
      </ul>
    </div>
  </div>

  <script src="js/resumeBuilder.js"></script>
  <script>
    if(document.getElementsByClassName(‘flex-item‘).length === 0) {
      document.getElementById(‘topContacts‘).style.display = ‘none‘;
    }
    if(document.getElementsByTagName(‘h1‘).length === 0) {
      document.getElementById(‘header‘).style.display = ‘none‘;
    }
    if(document.getElementsByClassName(‘work-entry‘).length === 0) {
      document.getElementById(‘workExperience‘).style.display = ‘none‘;
    }
    if(document.getElementsByClassName(‘project-entry‘).length === 0) {
      document.getElementById(‘projects‘).style.display = ‘none‘;
    }
    if(document.getElementsByClassName(‘education-entry‘).length === 0) {
      document.getElementById(‘education‘).style.display = ‘none‘;
    }
    if(document.getElementsByClassName(‘flex-item‘).length === 0) {
      document.getElementById(‘lets-connect‘).style.display = ‘none‘;
    }
    if(document.getElementById(‘map‘) === null) {
      document.getElementById(‘mapDiv‘).style.display = ‘none‘;
    }
  </script>
</body>
</html>

三、js代码部分:

/*地图*/
var map= new BMap.Map("map");
var point = new BMap.Point(120.702359,27.920799);//温州的经度和纬度:在经纬度范围内取经度和纬度就行
map.centerAndZoom(point, 13);//缩放倍数
map.addControl(new BMap.MapTypeControl()); //添加地图类型控件
map.setCurrentCity("温州"); // 设置地图显示的城市 此项是必须设置的
map.enableScrollWheelZoom(true); //开启鼠标滚轮缩放
/*第二种方法:
var map= new BMap.Map("map");
map.centerAndZoom("温州",13);
map.addControl(new BMap.MapTypeControl()); //添加地图类型控件
map.enableScrollWheelZoom(true); //开启鼠标滚轮缩放
*/

/*地图标注locations*/
var index = 0;
var myGeo = new BMap.Geocoder();//baidu地图地址解析函数;
var locations =[
"温州市鹿城区丹璐广场欧洲城一期4幢1102","浙江省温州市瓯海区茶山镇茶山高教园区","温州大学瓯江学院创业工作室北校区7号楼1020","温州市鹿城区车站大道2号展宏大厦"];//注意:具体地点最好自己现在百度地图了找了,把百度地图上显示的地址复制过来,毕竟百度地图不够智能化。
function bdGEO(){
		var location = locations[index];
		geocodeSearch(location);
		index++;
}
function geocodeSearch(location){
	if(index < locations.length){
			setTimeout(window.bdGEO,400);
	}
	myGeo.getPoint(location, function(point){
		if (point) {
			var address = new BMap.Point(point.lng, point.lat);//将地理位置转换为经纬度;
			addMarker(address,new BMap.Label(location,{offset:new BMap.Size(20,-10)}));//添加标注及地点信息
		}
	}, "温州市");
}
/*编写自定义函数,创建标注*/
function addMarker(point,label){
		var marker = new BMap.Marker(point);
		map.addOverlay(marker);
		marker.setLabel(label);
}

bdGEO();

/*单击鼠标添加标注*/
var x="";
var y="";
function showInfo(e){
        x=e.point.lng;   //获取鼠标当前点击的经纬度
        y=e.point.lat;
        if(x != "" && y != ""){
            var point = new BMap.Point(x,y);
            map.centerAndZoom(point);
             marker = new BMap.Marker(point);  // 创建新的标注
            map.addOverlay(marker);    //将标注添加到地图上
        }
        var point = new BMap.Point(x,y);  //获取当前地理名称
   		var gc = new BMap.Geocoder();
        gc.getLocation(point, function(rs){
        var addComp = rs.addressComponents;
        alert(addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street + ", " + addComp.streetNumber);
     });
}
map.addEventListener("click", showInfo);

完成上面三步,百度地图互动效果就完成了。

如果还想了解更多有关百度地图Javascript API的话,登录百度地图开放平台:http://lbsyun.baidu.com/index.php?title=jspopular,这里有示例demo,可以在线修改代码,运行效果,可以更清晰直观地了解你想了解的。

时间: 2024-07-31 14:20:33

百度地图JavaScript API使用的相关文章

百度地图 JavaScript API极速版 开发体会

前段时间百度地图API推出了 JavaScript API 极速版 1.0 简单看了一下,从产品定位来说真是挺好. 把开发者细分成普通web开发者和移动web开发者.正好用到了手机地图这块决定尝试一下.先看一下百度地图官方对它的定义.     本套百度地图API是专为手机浏览器提供的API,您可使用该套API,在手机页面中展示地图.标注位置.检索poi.查询线路等. 特点: 较同时兼容PC和手机浏览器的JavaScript API大众版而言,该版更适配移动设备,体积更小,加载地图速度更快,更省流

百度地图JavaScript API覆盖物旋转时出现偏移

在项目中,调用百度地图JavaScript API,做覆盖物的旋转再添加到地图上,结果出现偏移了. 调试过程中的效果图: 发现图片的旋转并不是按车子的中心来的,而是之外的一个点.最后发现犯了一个很细节的错: <script type="text/javascript"> // 百度地图API功能 var map = new BMap.Map("allmap"); var point = new BMap.Point(121.38750613, 31.17

[Baidu Map]百度地图 JAVASCRIPT API V2.0 大众版 工具类

关键代码: /* *@description 百度地图 JAVASCRIPT API V2.0 大众版 工具类 *@author YanZhiwei *@see http://developer.baidu.com/map/reference/index.php *@email [email protected] */ (function () { map = {}; infoWindow = {}; BmapUtils = { CONSTANT: { DYNAMIC_CITY: "上海&quo

wex5 实战 百度地图JavaScript API 集成

wex5里提供了一个bMap组件来调用百度地图,在百度地图api里,有许多版本的api供开发者调用.在wex5开发里,JavaScript API 集成,经过测试,成功.今天从0开始一步一步操作,将来会制作更复杂的地图与定位效果,大家共同学习,共同进步. 一 演示效果: 二 设计思路: 用html页面,装入百度地图,再将html页面放入iframe页中. 三 代码实现: 1  申请百度会员,并申请百度api ak(开发者密钥) 所有的第三方集成都需要密钥,相当于为当前的用户请求分配的一个id,服

百度地图JavaScript API自定义覆盖物、自定义信息窗口增删时的显示问题

项目中,需求:在百度地图上实时画出车辆,并能点击车辆弹出信息框查看实时信息. 实现:通过不停的画覆盖物并删除掉.点击覆盖物时弹出信息窗口. 问题:删除掉覆盖物后信息窗也删除掉了.因为信息窗是建立在覆盖物的基础上的. 如何做到,我点击覆盖物弹出信息框,信息框能够持续显示实时信息,直到点击关闭? 做下笔记,包括了自定义覆盖物标识.自定义信息窗口.信息窗口显示实时信息.清除覆盖物时信息窗口的显示问题等等. 贴张效果图:     代码: <script type="text/javascript&

百度地图 JavaScript API 极速版 开发体会

前段时间百度地图API推出了 JavaScript API 极速版 1.0 简单看了一下,从产品定位来说真是挺好. 把开发人员细分成普通web开发人员和移动web开发人员.正好用到了手机地图这块决定尝试一下.先看一下百度地图官方对它的定义. 尊重劳动成功请保留原文地址:http://blog.csdn.net/lbsnews/article/details/29368879     本套百度地图API是专为手机浏览器提供的API,您可使用该套API,在手机页面中展示地图.标注位置.检索poi.查

百度地图 JavaScript API

最近有点懒  项目结尾了  完了好长时间 没有去总结项目中的问题 想了下还是写写吧 这是一个关于百度地图的 网页展示 <!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><title>欢迎页</title><

苹果手机 微信调用百度地图Javascript API 频繁闪退问题

最近在网页中调用百度地图API js大众版,但是在IOS8系统中,缩放的时候频繁闪退,安卓手机没有这个问题! 在网上查询了下,有网友回答说不要频繁的去new marker,而是初始化话一定量的marker,然后setPosition.但是我的页面中匹配当前城市 注入marker也没有几个,所以排除这答案. 最后发现有网友说版本不稳定引起的,于是把百度地图API回退到了1.5,结果还真是可以了.

百度地图javascript API的使用

最近做自己的网站,调用百度地图的js API,在页面上显示一些坐标点.遇到一个问题,就是当坐标点超过10个时,convertor.translate(tempPointArr, 1, 5, translateCallback)执行完后,在translateCallback中数据的状态不是0,应该就是GPS经纬度转换没有完成,导致坐标点不会被添加到地图上显示.不知道原因所在,看API文档应该能找到答案,无奈装的艾普宽带,现在百度地图的js API网页打不开.把坐标转换分成10个一组来做,可以解决这