jvectormap 扩展开发

本文详细介绍了如何利用jvectormap实现城市热点地图功能,并通过源代码分析展示了如何自定义实现画圈和画线等功能。重点讨论了事件监听机制及其在地图动态交互中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

          最近在用jvectormap 开发地图功能的时候,有个需求是做一个城市热点地图,这个功能可以用jvectormap 的Markers 去做,但是要实现城市之间画线做城市迁移之类的展示图 就很难了,于是就查看了jvectormap 的源代码,增加了一个line的功能。

          先分析下jvectormap话circle的功能实现
          代码行  执行过程

          1565    this.createMarkers(this.params.markers || {});指定画圈功能

2134  createMarkers->addCircle 触发相应工恩能够

2157  getMarkerPosition  maker 经纬度转换成 position    

2280  latLngToPoint   获得经纬度
 
跟句这个过程就可以自定义一些函数去实现其他功能
 
关于事件监听
 

listener   

     ---> 1555 绑定事件

mousewheel

     ---> 1725  map.setScale(map.scale * zoomStep, centerX, centerY);

     ---> 1938  this.applyTransform();

     ---> 1682  this.repositionMarkers();  repositionLines

     ---> 2183  repositionMarkers
     这里需要在滚轮事件中对线进行重新描绘

mouseover 鼠标移上去效果

     ---> 1557  this.bindElementEvents();

     ---> 1840  mouseover事件

 

     --->  1843  element.setHovered(true);

     ----> 382  this.updateStyle();

     ----> 431  jvm.AbstractShapeElement.mergeStyles(attrs, this.style.hover); 在配置参数中用 "style":{"hover":{"stroke":"#A52A2A"} }去指定

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值