地图绘制之添加自定义标注图标(一)

通过Icon类可实现自定义标注的图标。附上Icon的类参考链接,自行查看

官方提供了两种方法:

  • 通过参数MarkerOptionsicon属性进行设置
  • 使用Marker.setIcon()方法。

第一种方法

//创建标注点,我们通常如下这样写:只传递一个Ponit类型的参数,即地理位置的坐标点。省略第二个参数
var mk = new BMap(point);

但是,第二个可选参数MarkerOptions在这里就可以发挥它的用途了。

用法如下:

由上图可知:

  • 由于该类没有构造函数,所以不能实例化,但是可以通过对象字面量形式表示。
  • 而且我们还能使用它的属性来标注图标,并且设置标注的位置。

注:对象字面量形式其实就是键值对的形式。第一次没看明白说的是什么意思?

因此,如果要使用自定义的图标进行标注,应该这么写:

var mk = new BMap.Marker(point,{icon:myIcon});//这就是对象的字面量形式

疑问:myIcon怎么来的呢?
答:其实在文章最开始时已经提到过了。那就是,通过Icon类可实现自定义标注的图标。

Icon类 —— 附上覆盖物类Icon的参考链接,自行查看

分析:
(1)构造函数Icon()中有3个参数:String类型的图片地址urlSize类型的图片大小;和可选参数IconOptions
(2)使用的时候,直接new一下就行了,即实例化。var myIcon = new BMap.Icon(url,size,opts);

Size类 —— 附上基本类Size的参考链接,自行查看

分析:
(1)构造函数Size()中有2个参数:Number类型的矩形区域的宽和高。对应到标注图标就是图片的宽和高。
(2)使用的时候,直接new一下就行了,即实例化。

有了以上的基础,使用Icon类创建一个自定义的标注图标就轻松多了。var size = new BMap.Size(32,32);

使用方法:

//命名空间BMap是使用所有类的前提,别忘了。
var myIcon = new BMap.Icon('location.ico',new BMap.Size(32,32));//这里先不用第三个参数IconOptions

至此,一个自定义的标注图标就创建好了。第一步已经完成。

第二步要做的就是,利用这个图标创建一个标注,并且添加在地图中。

var mk = new BMap.Marker(point,{icon:myIcon});//创建标注图标
map.addOverlay(mk);//将标注添加到地图中

设置完成之后是这样的:

疑问:如何调整标注图标的位置?
答:有两种方法
(1)利用MarkerOptions类的属性来设置;
(2)利用Icon类的属性来设置。

这里选用第一种方法来设置图标的偏移。

由上表可知,我们使用MarkerOptions类的offset属性来设置标注的位置偏移值

//顺便也使用了title属性设置了鼠标移入标注的显示内容
var mk = new BMap.Marker(point,{offset:new BMap.Size(0,-10),icon:icon,title:'当前定位的位置是:天安门'});

设置完成之后是这样的:

为了进一步验证,这个标注图标是如何实现的,以及它的位置是如何偏移的。

做法:
我们只需要直接打开控制台审查元素就好了,然后对比一下标注图标偏移前后的HTML元素的CSS属性值,就可以知道了。

偏移后的:{offset:new BMap.Size(0,-10)}

未偏移的:{offset:new BMap.Size(0,0)}

结论:
(1)span元素是图标的可视区域,并不是图标本身。
(2)图标本身是通过span元素的background属性设置的。
(3)offset属性的作用是:设置span元素的偏移,即整个图片区域的偏移量,相当于设置它的lefttop属性。

百度地图JavaScript API 学习之自定义标注图标(一)相关推荐

  1. 百度地图JavaScript API 学习之浏览器定位

    浏览器定位示例 百度地图API官方的所有demo示例--请直戳这里 官方浏览器定位demo示例--请直戳这里 后来发现的问题,这里记录一下: 在使用百度地图JS API时,无意中发现谷歌浏览器的浏览器 ...

  2. 百度地图JavaScript API 学习之地址解析

    获取地图数据之地址解析 首先我们需要知道如何进行地址解析以及有哪些地址解析的方式. 其实,百度地图API给我们提供了2种解析方式:地址解析和逆地址解析. 下面我们来认识一下它们.[官方的介绍地址请点这 ...

  3. 百度地图JavaScript API 学习之添加控件

    创建地图之添加控件 官方demo示例和讲解--直戳这里 这个案例就比较简单了,只需要在地图展示的基础上,添加一些与地图控件相关的代码就行了. 说明: 1.可以使用Map.addControl()方法向 ...

  4. 百度地图JavaScript API 学习之根据IP定位

    IP定位示例 官方浏览器定位demo示例--请直戳这里 代码示例 <!DOCTYPE html> <html lang="en"> <head> ...

  5. html5 百度地图api文档,开发指南--百度地图JavaScript API大众版.doc

    开发指南--百度地图JavaScriptAPI大众版开发指南--百度地图JavaScriptAPI大众版 简介 JavaScript API大众版 JavaScript API功能介绍 百度地图Jav ...

  6. 百度地图 JavaScript API

    文章目录 1.账号申请 2.创建应用 3.使用地图 介绍 示例 4.具体使用 控件 个性地图 带高度的点(标记地点.覆盖物) 点击事件 参考资料: 入门百度地图 JavaScript API | 8月 ...

  7. 百度地图JavaScript API GL

    介绍 百度地图JavaScript API GL v1.0是一套由JavaScript语言编写的应用程序接口. 下面通过一个简单的示例,来学习一下快速创建一张"我的地图", 百度地 ...

  8. 百度地图JavaScript API GL 实现车辆轨迹功能

    百度地图JavaScript API GL是百度地图提供的一种基于WebGL技术的地图展示方式.它可以在现代浏览器中以更高效的方式呈现3D地图场景,同时支持自定义图层和动画效果,可以应用于各种地图应用 ...

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

    在项目中,调用百度地图JavaScript API,做覆盖物的旋转再添加到地图上,结果出现偏移了. 调试过程中的效果图: 发现图片的旋转并不是按车子的中心来的,而是之外的一个点.最后发现犯了一个很细节 ...

最新文章

  1. CentOS安装编译环境
  2. Moodle的qq登录版块的使用
  3. cpu的基本硬件组成
  4. Linux修改用户密码有效期
  5. 使用Hibernate编写通用数据库操作代码
  6. Docker 三剑客
  7. 浅谈MSTP时延与带宽和速率的关系
  8. jws 方式表格导出,excel文件导出,rest风格接口实现
  9. hystrix 页面_微服务 | 使用Hystrix实现Spring Cloud的熔断机制
  10. oracle导出表中某天数据命令,Oracle数据库使用命令行导入导出数据表及数据内容(本地、远程)...
  11. shell脚本中数组的使用_Shell脚本中的数组
  12. Security+ 学习笔记52 风险管理
  13. 云计算将成电子政务最大亮点
  14. 淘宝客SDK,一键导入淘宝客商城,快速实现流量变现,新增商城返利功能
  15. WGCLOUD部署对服务器硬件配置的一些建议
  16. 详解安卓辅助功能服务AccessibilityService(无障碍服务,微信抢红包助手原理)
  17. PDF文件怎么加密?这两种加密方法很靠谱
  18. c语言批量重命图片,图片文件批量重命名的3种方法
  19. 虚拟机安装安装增强失败:modprobe vboxguest failed
  20. ets Jan8 2013,rst cause :2,boot mode :(1,7)_ESP8266学习笔记(6)

热门文章

  1. E站账号cookie分享_不用输入密码无风险?扫描二维码登录QQ账号也不安全!
  2. JavaScript基础——第三章,JavaScript操作DOM对象
  3. LATEX编辑高数基础公式
  4. Django开发个人博客网站——19、通过Django Haystack实现搜索功能(上)
  5. Windows PE开发环境
  6. 毕博与中国大学mooc对比
  7. JavaScript学习笔记整理(六)
  8. Docker学习1——Docker入门
  9. http请求报错Illegal character in query at index 303的解决方法
  10. 【bzoj 2844】: albus就是要第一个出场