使用百度地图API创建地图并实现多点标注效果

您所在的位置:网站首页 百度地图左下角圆形图标 使用百度地图API创建地图并实现多点标注效果

使用百度地图API创建地图并实现多点标注效果

2024-07-13 01:50| 来源: 网络整理| 查看: 265

这几天项目中遇到了在地图中同时创建多个标注的问题,因为本人一直没有搞过地图方面的效果,所以一时惊慌,想到了原先项目中PC端有地图的效果,于是扒代码,一看,使用的是百度地图,所以马不停蹄的转向了真正的战场。依据百度地图开发文档中的API展示效果,有了自己的第一个地图Demo,效果如下(以下所有效果都是模拟在移动端界面打开):

可以看到,天安门所在地是整个地图的中心(坐标点为天安门),代码如下:

var map = new BMap.Map("container");//创建地图 var point = new BMap.Point(116.404,39.915);//创建地图坐标点,一般首次创建的这个点为地图的中心坐标点 map.centerAndZoom(point,15);//初始化地图,设置中心坐标点和地图级数

但是,地图的展示是需要提前做好准备工作的:

1、首先你要拥有自己的ak,这个ak就相当于你使用百度地图API的通行证,没有他你是是用不了的,当然用别人的也是可以的,但是你所在的网址要在别人的白名单内;

2、需要在标签内引入以下几行代码:

如果是移动端开发的话,你是需要引入前两个标签的,但如果是PC端开发的话,只引入就好,中的标签是地图显示的容器,在创建地图的时候用到,所有的地图效果都是在准备工作做好的前提下完成的,以第一个效果为例,但是现在的中心坐标点是不明确的,可以给他加上一个东西,是他变得一眼就能看到,于是就有了“标注”之说,添加标注后的效果如下:现在天安门上有一个红色的点,是不是变得明显了许多,代码如下: var map = new BMap.Map("container");//创建地图 var point = new BMap.Point(116.404,39.915);//创建地图坐标点,一般首次创建的这个点为地图的中心坐标点 map.centerAndZoom(point,15);//初始化地图,设置中心坐标点和地图级数 var marker = new BMap.Marker(point);//创建标注 map.addOverlay(marker);//方法addOverlay() 向地图中添加覆盖物

该效果只比第一个效果多了两行代码,一个是创建标注,一个是添加标注,其中用到了一个方法,就是addOverlay(),该方法的作用就是把标注添加到地图中,具体标注添加到哪,要看添加的是那个点,注意该点是你已经创建的点,但是这样的效果已经不能

满足我们了,因为我们不能与之进行一些简单的交互,但是别担心,一切尽在书中,百度地图的开发文档已经给你全部封装好了,添加控件后的效果如下(整体背景效果图):

其中,1是定位控件;2是标尺控件;3是缩略图控件;4是缩放控件;5是地图类型控件,点击1可以定位你当前所在的位置,点击5可以看不同类型的地图,点击3可以放大和缩小地图(就是地图级数),缩略图是可以隐藏和显示的,代码如下:

var map = new BMap.Map("container"); var point = new BMap.Point(116.404,39.915);//创建点坐标,不一定是点坐标,要看设置 var opts = { // anchor: BMAP_ANCHOR_TOP_LEFT, // offset: new BMap.Size(150,5) } map.centerAndZoom(point,11);//设置中心点(确定中心点坐标) map.setCurrentCity("北京");//在设置好地图中心点的前提下显示背景的整体图 map.enableScrollWheelZoom(true);//在PC端可以通过滚轮放大缩小地图,移动端关闭该功能 map.addControl(new BMap.NavigationControl(opts));//addControl()向地图添加控件 平移和缩放控件 PC端默认左上角 移动端默认右下角且只有缩放功能 map.addControl(new BMap.ScaleControl(opts));//比例尺控件 默认左下角 map.addControl(new BMap.OverviewMapControl(opts));//缩略图控件 默认右下角且呈可折叠状态(点击隐藏和显示) map.addControl(new BMap.MapTypeControl());//地图类型控件 默认右上角可切换地图/卫星/三维三种状态 map.addControl(new BMap.GeolocationControl(opts));//定位控件 默认左下角

所有的控件他都是有默认显示的位置的,但是可以人为改变,左上角、右上角、右下角、左下角,而且缩放控件在PC端和移动端是显示两种不同的样式的,具体改变控件位置的方法我就不一一赘述了,可参考API文档,里面有详细说明,好,到了这里,算是

把百度地图的基本功能和效果都搞明白了,剩下的就是坐等丰收和往更高级的方面发展了,...有点偏题了,多个标注显示的效果如下:

上面的五个点就是我遍历出来的要显示的点,为了观看方便,我把地图级数控制在了9等级,代码如下:

var map = new BMap.Map("container"); var point = new BMap.Point(120.382029,30.312903); map.centerAndZoom(point,9); var marker = new BMap.Marker(point); var mapPoints = [ {x:30.312903,y:120.382029}, {x:30.215855,y:120.024568}, {x:30.18015,y:120.174968}, {x:30.324994,y:120.164399}, {x:30.24884,y:120.305074} ]; var i = 0; map.addOverlay(marker); map.enableScrollWheelZoom(true); // 函数 创建多个标注 function markerFun (points) { var markers = new BMap.Marker(points); map.addOverlay(markers); } for (;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3