当前位置: 首页 > 工具软件 > jVectorMap > 使用案例 >

jvectormap 扩展开发

倪培
2023-12-01

          最近在用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"} }去指定

 

 

 类似资料: