openlayer3之高级标注实现

首先看实现效果:

实现要点:

1)树形标注实现

2)复杂标注样式定义

3)效率优化

 

1.树形标注实现

树形标注采用字体符号来实现,包括以下几个步骤

1)载入字体

2)设置标注值与字体对照关系

3)设置TextStyle

2.复杂标注样式定义

1)使用格网来定义每个标注部分所占单元格跨度

2)将每个部分的标注内容带入,测量标注内容所占大小,动态调整格网大小

3)根据标注中心点、旋转角度等信息,计算每部分标注位置,最后达到效果

3.效率优化

刚开始的实现思路是所有标注内容都使用Canvas绘制,但是这样效率太低,尤其是在地图浏览期间,如果发生卡顿,体验特别糟糕。后来我们发现文字部分仍然可以使用TextStyle由Openlayers来绘制,只需要用Canvas绘制分数线即可,绘制之后的分数线构造成Style加到Style组中返给Openlayers,实现代码片断如下:

posted @ 2017-10-30 20:37  点滴珍贵,贵在积累  阅读(3120)  评论(1编辑  收藏  举报