1.0.7 • Published 3 years ago
hjl-easymap v1.0.7
该项目是为了封装一个canvas坐标系绘制方法.以方便地图类型项目的绘制.
测试界面启动
npm run serve
ts文件打包
npm run build
打包后位置为 dist/core
项目笔记
项目主要包括的类型有
EasyMap
(地图)、OverLay
(覆盖物)、layer
(图层) 三种类型项目中的为了保证坐标轴方向可控,编写了
Context2DProxy
对CanvasRenderingContext2D
对象进行了代理.其中新增了
canvasPointToMapPoint
canvas坐标转换成map坐标mapPointToCanvasPoint
map坐标转换成canvas坐标saveDraw
保存绘制内容,绘制完成后还原上下文设置saveMapDraw
保存绘制内容,在地图坐标系中绘制.会之后还原上下文设置clearCanvas
清空绘制translateCenter
原点移动到canvas中心axisRotate
旋转坐标轴
其中重构了
- 绘制中包含坐标和角度的方法(例如
moveTo
lineTo
等) save
restore
方法会进行计数.编译回到最初状态
使用注意事项
- 在以
canvas坐标系
内绘制时,应该使用原来的CanvasRenderingContext2D
进行坐标处理,若使用Context2DProxy
会绘制错误.一般会在saveDraw
时绘制基于canvas坐标系
项目中使用
EventHandler
和MapEventTarget
对事件进行分发处理.其中包含了
PCEventHandler
和MobileEventHandler
两个处理器. 这两个处理器会处理canvas
上的事件,并dispatchEvent
到MapEventTarget
中. 其中EasyMap
、OverLayer
和Layer
都继承了MapEventTarget
. 注意: 现在只实现了PCEventHandler
的部分操作.这个地方需要进行思考.如何更合理的处理事件分发.避免在每个MapEventTarget
子类中都重写dispatchEvent
方法