首先 ,若是想调用百度地图api,你须要获取一个百度地图api的密钥。javascript
申请密钥很简单,在百度地图api的首页就有相关连接,填写相关信息百度就会给你一个密钥了。java
接下来,就是引入百度地图的apiapi
关键代码以下:函数
<script type="text/javascript" src="http://api.map.baidu.com/api?ak=yourkey&v=2.0&services=false"></script>
接下来咱们就能够建立一个地图试试看了。(Js代码)this
var map = new BMap.Map("container"); // 建立地图实例 var point = new BMap.Point(120.391655,36.067588); // 建立点坐标 map.centerAndZoom(point, 15); //map.centerAndZoom("北京", 15); //map.centerAndZoom("Hongkong", 15);
这里须要说明三点:spa
1.map.centerAndZoom方法建立地图,第一个参数能够是根据以前建立好的一个点为中心,建立出地图,也能够根据城市地区的中文名称建立地图。(若是拼写正确,能够根据城市的英文名称来建立)code
2.map.centerAndZoom第二个参数是地图缩放级别,最大为19,最小为0。(但实际当缩小到3的时候就已经。。。)对象
3.BMap.Map方法建立地图时候须要一个容器(地图会根据容器的大小自动进行调整。),填写相关容器的id。blog
关于地图大小:继承
能够经过map.setZoom();方法主动控制地图大小级别。
也能够经过设置map.enableScrollWheelZoom(true);利用鼠标滚轮控制大小。
百度地图提供了很是丰富的功能空间共咱们使用。
1.Control:控件的抽象基类,全部控件均继承此类的方法、属性。经过此类您可实现自定义控件。
2.NavigationControl:地图平移缩放控件,PC端默认位于地图左上方,它包含控制地图的平移和缩放的功能。移动端提供缩放控件,默认位于地图右下方。
3.OverviewMapControl:缩略地图控件,默认位于地图右下方,是一个可折叠的缩略地图。
4.ScaleControl:比例尺控件,默认位于地图左下方,显示地图的比例关系。
5.MapTypeControl:地图类型控件,默认位于地图右上方(地图,卫星,三维)。
6.CopyrightControl:版权控件,默认位于地图左下方。
7.GeolocationControl:定位控件,针对移动端开发,默认位于地图左下方。
效果图
map.addControl(new BMap.NavigationControl());//缩放平移控件 map.addControl(new BMap.ScaleControl()); //比例尺 map.addControl(new BMap.OverviewMapControl());//缩略图 map.addControl(new BMap.MapTypeControl()); //地图类型 map.setCurrentCity("青岛");
注意:当设置城市信息时,MapTypeControl的切换功能才能可用
地图事件:
百度地图API中的大部分对象都含有addEventListener方法,咱们能够经过该方法来监听对象事件。
实例:
map.addEventListener("click", function(){ alert("您点击了地图。"); });
当咱们再也不但愿监听事件时,能够将事件监听进行移除。每一个API对象提供了removeEventListener用来移除事件监听函数。
map.removeEventListener("click", functionA); map.addEventListener("click", functionA);
地图遮盖物:
Overlay:覆盖物的抽象基类,全部的覆盖物均继承此类的方法。
Marker:标注表示地图上的点,可自定义标注的图标。
Label:表示地图上的文本标注,您能够自定义标注的文本内容。
Polyline:表示地图上的折线。
Polygon:表示地图上的多边形。多边形相似于闭合的折线,另外您也能够为其添加填充颜色。
Circle: 表示地图上的圆。
InfoWindow:信息窗口也是一种特殊的覆盖物,它能够展现更为丰富的文字和多媒体信息。注意:同一时刻只能有一个信息窗口在地图上打开。
标注示例:
var point = new BMap.Point(120.389472,36.072362);//默认 能够经过Icon类来指定自定义图标 var marker = new BMap.Marker(point); var label = new BMap.Label("青岛市政府",{offset:new BMap.Size(20,-10)});//标注标签 marker.setLabel(label)//设置标注说明 marker.enableDragging();//标注能够拖动的 marker.addEventListener("dragend", function(e){ alert(e.point.lng + ", " + e.point.lat);//打印拖动结束坐标 }); map.addOverlay(marker); var point = new BMap.Point(120.387244,36.064835); var myIcon = new BMap.Icon("http://api.map.baidu.com/img/markers.png", new BMap.Size(23, 25)); var marker2 = new BMap.Marker(point, {icon: myIcon}); map.addOverlay(marker2); var infoWindow = new BMap.InfoWindow("<p style='font-size:14px;'>详细信息</p>"); //弹出窗口 marker2.addEventListener("click", function(){ this.openInfoWindow(infoWindow); });