180  
查询码:00000787
openlayer3——点
作者: 徐文彬 于 2021年02月06日 发布在分类 / 人防组 / 人防前端 下,并于 2021年02月19日 编辑
openlayer3

场景:

本篇文章主要是介绍运用openlayers3新增点、移动点,删除点。

(基础知识请阅读http://wiki.njrgrj.com:8989/webdoc/view/Pub2c90a40975d3e77f01777695a2bd49ca.html)

新增点

步骤:1、新增元素

          2、把元素添加到图层数据源上

          3、把图层数据源放到图层上

          4、把图层添加到地图上

       // 新增元素  
      that.pointFeature = new ol.Feature({
        geometry: new ol.geom.Point([data.longitude, data.latitude]), // 经纬度
        key: data.id,
      });
      // 把元素添加到图层数据源上
      that.vectorSource.addFeature(that.pointFeature);
      // 把图层数据源放到图层上
        that.pointVectorLayer = new ol.layer.Vector({
          source: that.vectorSource,
          style: new ol.style.Style({
            image: new ol.style.Icon({
              // 图标缩放比例
              scale: iconScale,
              // 透明度
              opacity: 0.8,
              // 图标的url
              src: src,
            }),
          }),
        });
       // 把图层添加到地图上
       that.map.addLayer(that.pointVectorLayer);

移动点

  var translate1 = new ol.interaction.Translate({
        features: new ol.Collection([feature]),
      });
      this.map.addInteraction(translate1);

删除点

this.vectorSource.removeFeature(feature);

注意点:

1、添加点时用的图标可能是后端返回的图片路径(jpg,png等格式),可能是后端返回的路径(svg格式),也可能是本地的静态资源,此处src的写法是有区别的。

       使用后端返回的图片路径(jpg,png等格式)      src:后端返回的路径(http...)

       使用后端返回的图片路径(svg格式) 首先需要用路径转换格式   src: "data:image/svg+xml," + escape(svg文件)

       使用本地的静态资源             src:  require("本地图片路径")

2、需要更换图片的颜色要使用svg格式,此处需要注意的是拿到后端的svg图片路径之后需要转换成svg对应的格式,然后改变图片的颜色再使用。svg转换格式最好在后端转换好再返回前端,可以避免格式未转换完成导致无法绘制图标的问题。

粘贴图片




 推荐知识

 历史版本

修改日期 修改人 备注
2021-02-19 09:56:01[当前版本] 徐文彬 2021.02.19
2021-02-06 17:04:37 徐文彬 openlayer3——点

 附件

附件类型

PNGPNG

知识分享平台 -V 4.8.7 -wcp