OpenLayers 3 之 绘制图形(ol.interaction.Draw)详解

在地图上绘制各种各样的矢量图形,很多应用场景都需要用到,比如可以实现在客户端勾绘矢量图形并将结果保存到数据库以待后续编辑和可视化等等很多有用的功能。这次我们看看怎么利用 OpenLayers 3 绘制各种各样的图形,并添加到图层显示。在 OpenLayers 3 中负责绘制任务的是 ol.interaction.Draw 类,下面介绍这个类和功能的用法。

ol.interaction.Draw

OpenLayers 中负责勾绘交互的是 interaction 中的 draw interaction,默认支持绘制的图形类型包含 Point(点)、LineString(线)、Polygon(面)和Circle(圆)。

触发的事件包含 drawstartdrawend,分别在勾绘开始时候(单击鼠标)和结束时候触发(双击鼠标),利用 OpenLayers 给一个 Web 地图添加勾绘交互很简单,在地图初始化的时候添加这个交互或者后续追加:

初始化 map 时添加 draw interaction:

var source = new ol.source.Vector();
var vector = new ol.layer.Vector({
    source: source
});
var map = new ol.Map({
    interactions: ol.interaction.defaults().extend([
        new ol.interaction.Draw({
            source: source,
            type: 'Polygon',
            style: new ol.style.Style({
                fill: new ol.style.Fill({
                    color: 'rgba(255, 255, 255, 0.2)'
                }),
                stroke: new ol.style.Stroke({
                    color: '#ffcc33',
                    width: 2
                }),
                image: new ol.style.Circle({
                    radius: 7,
                    fill: new ol.style.Fill({
                        color: '#ffcc33'
                    })
                })
            })
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值