openlayer 点线面的绘制

背景:

通过openlayer库,可以在地图上实现绘制点、线、面。

并把绘制的结果添加到我的标注的弹框。

我的标注功能,包括:我的标注查询结果的数据展示;添加分组;添加我的标注;编辑分组、删除分组;以及分组下的对应的所有我的标注信息,操作包括:定位、编辑、删除、收藏等功能。

效果展示:

一、实现步骤

1.权限问题:登录成功后才能使用“我的标注”功能

2.“我的标注”按钮绑定事件,打开“我的标注”页面

3.我的标注页面,静态布局以及页面逻辑

二、添加我的标注

这一块是重点。打开“添加我的标注”的页面,初始化触发drawType(2)绘制面的方法,即默认绘制面。其它的,我们还可以绘制点、线、面、圆、矩形等。

以下从几点描述此功能:

1.触发drawType()方法,开始绘制;并且在开始绘制、结束绘制添加信息helpTips帮助信息提示框,包括:单击开始绘制、双击结束绘制、单击第一个点结束绘制等提示语言。

2.标注类型,选中高亮状态,并且触发对应的绘制方法。

3.标注样式,分为两种:绘制点,可以更换标注的图标icon;绘制几何图形,通过颜色选择器colorpicker组件,可以更换颜色color

4.绘制结束,把绘制的几何要素的经纬度进行回填(做一个展示)

5.依次验证所填写的表单项。点击提交,传参,接口请求成功。

效果展示:

 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenLayers是一个用于在Web上创建交互式地图的开源JavaScript库。它提供了丰富的功能和API,包括点(marker)、线(line)和(polygon)的绘制。 要在OpenLayers中创建点,可以使用`ol.Feature`和`ol.geom.Point`类。首先,创建一个`ol.Feature`对象,将其几何属性设置为`ol.geom.Point`的实例,并指定点的坐标。然后,将创建的要素添加到`ol.source.Vector`中,最后将该矢量图层添加到地图上。 示例代码如下: ```javascript // 创建地图 var map = new ol.Map({ target: 'map', layers: [ // 添加一个空的矢量图层 new ol.layer.Vector({ source: new ol.source.Vector() }) ], view: new ol.View({ center: [0, 0], zoom: 2 }) }); // 创建一个点要素 var pointFeature = new ol.Feature({ geometry: new ol.geom.Point([0, 0]) }); // 获取矢量图层 var vectorLayer = map.getLayers().item(0); // 将要素添加到矢量图层 vectorLayer.getSource().addFeature(pointFeature); ``` 要创建线,可以使用`ol.Feature`和`ol.geom.LineString`类。类似于创建点的方法,将线的坐标传递给`ol.geom.LineString`的实例,并将其作为要素的几何属性。 示例代码如下: ```javascript // 创建一个线要素 var lineFeature = new ol.Feature({ geometry: new ol.geom.LineString([[0, 0], [1, 1], [2, 2]]) }); // 将要素添加到矢量图层 vectorLayer.getSource().addFeature(lineFeature); ``` 要创建,可以使用`ol.Feature`和`ol.geom.Polygon`类。类似于创建点和线的方法,将的坐标传递给`ol.geom.Polygon`的实例,并将其作为要素的几何属性。 示例代码如下: ```javascript // 创建一个要素 var polygonFeature = new ol.Feature({ geometry: new ol.geom.Polygon([ [[0, 0], [1, 1], [1, 0], [0, 0]] ]) }); // 将要素添加到矢量图层 vectorLayer.getSource().addFeature(polygonFeature); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值