在DotSpatial中有自带的插件工程“DotSpatial.Plugins.Measure”,其本质为基于DotSpatial.Controls.Extension类的扩展插件类。内部封装了在地图上进行长度和面积的测量工具。但是在项目以及使用中,Ds的界面并不是很美观,所以需要将类似的插件功能独立出来,并且完善其功能。
独立其实就是将功能封装为Ds的MapFunction类的子类,然后将功能注册到地图的FunctionMode中,此时功能操作只会与Map控件相关。
此处的完善是指将想要的功能丰满起来。例如距离测量,原版的只包含了单纯的测量,但是每个线段并未画出长度,不够直观,那么在自己完善功能的时候就可以将此处搞定。能看出来,用户体验还是有很大的区别的,最后有个我自己写的这个类的传送门。
传送门:https://github.com/Spe1993/SpeRemarks/tree/master/DotSpatial