百度地图之添加控件——比例尺、缩略图、平移缩放
地图控件概述
百度地图上负责与地图交互的UI元素称为控件。百度地图API中提供了丰富的控件,您还可以通过Control类来实现自定义控件。
地图API中提供的控件有:
- Control:控件的抽象基类,所有控件均继承此类的方法、属性。通过此类您可实现自定义控件。
- NavigationControl:地图平移缩放控件,PC端默认位于地图左上方,它包含控制地图的平移和缩放的功能。移动端提供缩放控件,默认位于地图右下方。
- OverviewMapControl:缩略地图控件,默认位于地图右下方,是一个可折叠的缩略地图。
- ScaleControl:比例尺控件,默认位于地图左下方,显示地图的比例关系。
- MapTypeControl:地图类型控件,默认位于地图右上方。
- CopyrightControl:版权控件,默认位于地图左下方。
- GeolocationControl:定位控件,针对移动端开发,默认位于地图左下方
向地图添加控件
可以使用Map.addControl()方法向地图添加控件。在此之前地图需要进行初始化。例如,要将标准地图控件添加到地图中,可在代码中添加如下内容:
var map = new BMap.Map("container"); map.centerAndZoom(new BMap.Point(116.404, 39.915), 11); map.addControl(new BMap.NavigationControl());
可以向地图添加多个控件。在本例中我们向地图添加一个平移缩放控件、一个比例尺控件和一个缩略图控件。在地图中添加控件后,它们即刻生效。
map.addControl(new BMap.NavigationControl()); map.addControl(new BMap.ScaleControl()); map.addControl(new BMap.OverviewMapControl()); map.addControl(new BMap.MapTypeControl()); map.setCurrentCity("北京"); // 仅当设置城市信息时,MapTypeControl的切换功能才能可用
控制控件位置
初始化控件时,可提供一个可选参数,其中的anchor和offset属性共同控制控件在地图上的位置。
控件停靠位置 anchor表示控件的停靠位置,即控件停靠在地图的哪个角。当地图尺寸发生变化时,控件会根据停靠位置的不同来调整自己的位置。anchor允许的值为:
- BMAP_ANCHOR_TOP_LEFT 表示控件定位于地图的左上角。
- BMAP_ANCHOR_TOP_RIGHT 表示控件定位于地图的右上角。
- BMAP_ANCHOR_BOTTOM_LEFT 表示控件定位于地图的左下角。
- BMAP_ANCHOR_BOTTOM_RIGHT 表示控件定位于地图的右下角。
控件位置偏移
除了指定停靠位置外,还可以通过偏移量来指示控件距离地图边界有多少像素。如果两个控件的停靠位置相同,那么控件可能会重叠在一起,这时就可以通过偏移值使二者分开显示。
本示例将比例尺放置在地图的左下角,由于API默认会有版权信息,因此需要添加一些偏移值以防止控件重叠。
var opts = {offset: new BMap.Size(150, 5)} map.addControl(new BMap.ScaleControl(opts));
修改控件配置
地图API的控件提供了丰富的配置参数,您可参考API文档来修改它们以便得到符合要求的控件外观。例如,NavigationControl控件就提供了如下类型:
- BMAP_NAVIGATION_CONTROL_LARGE 表示显示完整的平移缩放控件。
- BMAP_NAVIGATION_CONTROL_SMALL 表示显示小型的平移缩放控件。
- BMAP_NAVIGATION_CONTROL_PAN 表示只显示控件的平移部分功能。
- BMAP_NAVIGATION_CONTROL_ZOOM 表示只显示控件的缩放部分功能。
下图从左向右依次展示了上述不同类型的控件外观:
上图前4个为PC端平移缩放控件样式,最后一个为移动端缩放控件样式。
下面的示例将调整平移缩放地图控件的外观。
上图前4个为PC端平移缩放控件样式,最后一个为移动端缩放控件样式。下面的示例将调整平移缩放地图控件的外观。
添加缩略图
<!DOCTYPE html> <html> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta name="viewport" content="initial-scale=1.0, user-scalable=no" /><style type="text/css">body, html {width: 100%;height: 100%;margin:0;font-family:"微软雅黑";}#allmap{width:100%;height:500px;}#r-result{width:100%;margin-top:5px;}p{margin:5px; font-size:14px;}</style><script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥"></script><title>添加/删除地图类型、缩略图控件</title> </head> <body><div id="allmap"></div><div id="r-result"><input type="button" onclick="add_control();" value="添加" /><input type="button" onclick="delete_control();" value="删除" /></div><p>点击地图类型控件切换普通地图、卫星图、三维图、混合图(卫星图+路网),右下角是缩略图,点击按钮查看效果</p> </body> </html> <script type="text/javascript">// 百度地图API功能var map = new BMap.Map("allmap");map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);var mapType1 = new BMap.MapTypeControl({mapTypes: [BMAP_NORMAL_MAP,BMAP_HYBRID_MAP]});var mapType2 = new BMap.MapTypeControl({anchor: BMAP_ANCHOR_TOP_LEFT});var overView = new BMap.OverviewMapControl();var overViewOpen = new BMap.OverviewMapControl({isOpen:true, anchor: BMAP_ANCHOR_BOTTOM_RIGHT});//添加地图类型和缩略图function add_control(){map.addControl(mapType1); //2D图,卫星图 map.addControl(mapType2); //左上角,默认地图控件 map.setCurrentCity("北京"); //由于有3D图,需要设置城市哦 map.addControl(overView); //添加默认缩略地图控件 map.addControl(overViewOpen); //右下角,打开 }//移除地图类型和缩略图function delete_control(){map.removeControl(mapType1); //移除2D图,卫星图 map.removeControl(mapType2);map.removeControl(overView);map.removeControl(overViewOpen);} </script>
效果图
致谢:感谢您的耐心阅读!
转载于:https://www.cnblogs.com/0201zcr/p/4693641.html
百度地图之添加控件——比例尺、缩略图、平移缩放相关推荐
- html地图缩放比例,百度地图之添加控件——比例尺、缩略图、平移缩放
地图控件概述 百度地图上负责与地图交互的UI元素称为控件.百度地图API中提供了丰富的控件,您还能够经过Control类来实现自定义控件.javascript 地图API中提供的控件有:css Con ...
- html更改地图放大缩小图标,百度地图之添加控件——比例尺、缩略图、平移缩放...
地图控件概述 百度地图上负责与地图交互的UI元素称为控件.百度地图API中提供了丰富的控件,您还能够经过Control类来实现自定义控件.javascript 地图API中提供的控件有:css Con ...
- 百度地图点击地点显示经纬度并且转换为百度地址及添加控件
一.百度地图初始化及添加基本控件 1.引入地图包 地图包网址的ak属性是你在百度地图开放平台上申请的密钥 <script type="text/javascript" src ...
- 百度地图JavaScript API 学习之添加控件
创建地图之添加控件 官方demo示例和讲解--直戳这里 这个案例就比较简单了,只需要在地图展示的基础上,添加一些与地图控件相关的代码就行了. 说明: 1.可以使用Map.addControl()方法向 ...
- 百度地图之添加覆盖物
本文主要讲解如何实现在百度地图上添加覆盖物 1.承载数据的实体 我们从服务器返回的数据部分,最终可能是个Json数组,我们需要转换为实体集合,即下面的Info.java 我直接在实体类中声明了一个静态 ...
- 百度地图之添加覆盖物并响应事件
随时随地技术实战干货,获取项目源码.学习资料,请关注源代码社区公众号(ydmsq666) 本文中将介绍在百度地图上添加覆盖物的功能.响应点击功能和弹出pop功能,代码来自百度Demo: Activit ...
- 百度地图之 添加遮罩层 去除百度地图logo
效果图: 步骤: 1,申请百度密钥,步骤不再赘述 2,引入百度地图:pubilc/index.html中引入 <script type="text/javascript" s ...
- 用百度地图实现添加电子围栏并判断是否在范围内
用百度地图实现添加电子围栏并判断是否在范围内 做一个社区矫正系统时,误以为是给每个人设置一个活动范围,做了一个Demo, 以用户位置为中心,设置电子围栏半径并判断是否在范围内 预览: HTML代码如下 ...
- MapGis二次开发——基础地图目录树控件的加载
MapGis二次开发--基础地图目录树控件的加载 第一步:添加MapGis引用 MapGis动态库位置是在你安装位置下的\Program\plugin下,例如我的安装位置就是:D:\MapGIS 10 ...
- .NET中添加控件数组
作者:cuike519的专栏 http://blog.csdn.net/cuike519/ 添加控件数组 在.NET里面我好像没有找到有关于控件数组的说明,但是前两天偶在网上看到了一篇关于如何在. ...
最新文章
- Caffe学习系列(3):视觉层(Vision Layers)及参数
- 作为利物浦大学和西浦的学生的职业机会发展平台!很重要!
- CLR Via CSharp读书笔记(29) - 混合线程同步构造
- 操作系统知识--线程
- Oracle 索引失效的六大限制条件
- 关于rocketmq的配置启动
- 进销存excel_Excel进销存管理系统(升级版),库存进出全自动,使用超方便哦...
- Save as PDF/X-3/4/5 error with pdflib
- lcd1602c语言程序分析,LCD1602 测试C程序
- IOS免签网站封装工具PJ版
- IDEA从Git 上down 项目报错
- linux 拒绝访问文件夹,文件夹拒绝访问的原因与解决办法
- blog在搜索引擎的排名下降与technorati
- mysql 1556_mysqldump: Got error: 1556: You can't use locks with log tables
- Ubuntu下安装Nodejs, Nide
- 鹤舞云天服务器稳定,《御剑红尘》手游新服“鹤舞云天”即将开启!
- 500台机以上大型网吧设计方案
- Landsat 行列号与经纬度在线转换
- Java实现HMacMD5加密,用于淘宝客JS 组件 API 调用时生成 sign 的签名
- 【CXY】JAVA应用 之 排序