【干货】新中地GIS开发夏令营文档(7)地图绘制
第三章: 图形绘制
一. 基本绘图原理
1 常用类及关系
Map类: 地图(底图)
Layers类: 图层(需要数据源)
Feature类: 要素
geom类: 几何图形

注意
只有失量图是可以修改的
2 操作步骤

1创建几何形状对象(点, 线, 圆, 正方形, 矩形, 多边形)
2创建要素对象: 参数为 几何形状对象
3设置要素对象的样式: 样式对象
4创建数据源: 参数为要素对象
5创建失量图层: 参数为数据源
6将图层添加到地图中
二. 基于坐标绘制图形
1 绘制点
示例

2 绘制线

3 绘制圆

4 绘制正方形
在ol中, 圆是用正32边形模拟的. 可以根据圆生成正方形

5 绘制矩形

6 绘制任意多边形

三. 常用的方法
●获取图层: map.getLayers()
●获取源: layer.getSource()
●获取要素: source.getFeature()
●要素下包括: geometry和style

四. 交互式绘制(重点)
1 基本概念
交互式绘制的两个基本概念
●画布
●画笔
画布就是一个数据源, 加载到失量图层
画笔就是交互式控件ol.interaction.Draw
2 操作步骤
1创建画布(失量图层, 数据源)
2创建画笔(交互式控件)
1) 创建画布

2) 创建画笔
通过
interaction
接口创建画笔, 设置对应的画布

3) 激活与移除
通过addInteraction
激活交互式控件

通过removeInteraction
移除交互式控件

4) 完成事件
画笔对象drawend
事件, 当绘制完成时调用

3 交互式点绘制
需求
当点击激活点绘制时, 可以进行交互点绘制
当点击退出时, 停止交互式绘制
当点击清除时, 清除绘制的图形
示例

4 交互式线

5 交互式圆

6 交互式正方形

正方形是通过: 创建正4边形得到的
7 交互式矩形

矩形比较麻烦
通过对角线的两个点来绘制

8 交互式多边形
9 作业
需求
选择不同的交互式控件, 选中时激活
当切换不同控件时, 之前的数据自动清除
这里, 我们可以封装一个函数, 根据类型, 生成交互式绘图控件
示例
五. 交互式图形编辑
可以修改选中的图形, 进行修改
交互式图形编辑主要有两个控件
交互选择控件: Select(), 可以选中具体的某个要素
交互编辑控件: Modify(), 在选中要素后, 可以对图形进行编辑