vue的openlayers使用教程,openlayers vue

  vue的openlayers使用教程,openlayers vue

  本文主要详细介绍Vue如何使用openlayers绘制圆形和多边形。文章中的示例代码有详细的解释。感兴趣的朋友可以和边肖一起尝试一下。

  

目录

  画圆,画多边形,画编辑多边形,完成这个地方的绘制。我就简单写一下,因为有些东西比较乱,有些包可以根据官网API开发文档中的错误提示自行添加,这里就不赘述了。

  

绘制圆形

  这里画圆是指后台返回数据时,告诉你以某个经纬度坐标为圆心,或者顶点,以R为半径画一个圆,而不是用鼠标手动画。

  首先画一个圆。首先,有一个数据源和一个图层来存储绘制的圆。这个很简单。那么你应该能够自己创建变量。我估计都是搞openlayer的。这些基础知识不应该不知道。我把关键代码写在这里。我觉得应该没问题。我使用默认的坐标3857,而不是4326。

  Source=new vector Source()//创建数据源

  Layer=新矢量层({//创建一个层

  ZIndex: 1,//层的级别

  })

  layer . set source(source point)//将数据源绑定到层。

  Map.addLayer(layerPoint) //向地图添加图层。

  好了,通过上面的代码,在地图上创建一个图层来放置绘制的圆。

  下一步是向这个数据源添加圆。这个,或者说这个,跟我之前的博客差不多。那些部分互相嵌套,我还是贴图吧。这张图是大佬们编的,我就直接用了。

  从上图可以看出,我们刚刚做的是将图层图层添加到地图中,将源数据源添加到图层中。下一步是向源代码添加特性。

  //画一个圆

  addCircle() {

  假设特征=新特征({

  标题:“北京”,

  几何:New Circle(Fromlonlat([116.400819,39.916263]),this.getRadius (500)),//创建一个以[116.400819,39.916263]为圆心,以500米为半径的圆,但是这个半径不是很准确。

  })

  feature.setStyle(

  新样式({

  填充:新填充({

  颜色: rgba(32,157,230,0.5)

  })

  })

  )

  源点。添加功能([功能])

  },

  上面的代码是在地图上的某个点和某个半径上画一个圆,但是半径不是很准确。如果有大佬解决了半径不准的问题,希望大家帮帮我。

  

绘制多边形

  这个地方画多边形是指用鼠标手动画多边形,画完就可以得到鼠标画出的多边形的顶点坐标。

  

绘制

  首先,画图同上,所以只要是图层,地图上都可以显示哪些图层。所以,先创建图层和数据源添加到地图上,然后,因为是鼠标绘制,所以需要在地图上设置绘制的多边形的样式,然后添加一个鼠标交互的工具,所以是下面的代码。

  source=new vector source();

  vector=新的VectorLayer({

  来源:来源,

  样式:新样式({

  填充:新填充({

  颜色: rgba(255,255,255,0.2),

  }),

  笔画:新笔画({

  颜色: #ffcc33 ,

  宽度:3,

  }),

  image: new CircleStyle({

  半径:3,

  填充:新填充({

  颜色: #ffcc33 ,

  }),

  }),

  }),

  });

  map.addLayer(矢量)

  Modify=new Modify({ source:source });

  Snap=new Snap({ source:source });

  draw=new Draw({

  来源:来源,

  类型:“多边形”,

  });

  上面的代码实现了图层和交互工具的初始化,然后鼠标绑定事件的绘制。

  map.addInteraction(修改);

  map . add interaction(draw);

  map . add interaction(snap);

  Draw.on(drawend ,e={//绘画完成的触发时间

  const geometry=e . feature . get geometry()

  const corrdinates=geometry . get coordinates()

  let points=[]

  坐标[0]。forEach(item={

  XY=将(item, epsg: 3857 , epsg:4326 )//转换为纬度和经度坐标。

  点.推(xy)

  })

  这个。$message.success(顶点坐标为: JSON.stringify(磅))

  map . remove interaction(draw);//删除交互

  map . remove interaction(snap);//删除交互

  map.removeInteraction(修改);//删除交互

  });

  

编辑多边形

  如果再编辑一下,这个就很简单了。上一步不是去掉三个了吗?第一个是鼠标画图。编辑时,除了鼠标画图,其他两个去掉的交互都可以添加。

  map.addInteraction(修改);

  map . add interaction(snap);

  

完成绘制

  绘制完成后,只需移除交互工具,重新获得顶点坐标列表即可。

  map . remove interaction(draw);//移除绘画交互

  map . remove interaction(snap);//移除绘画交互

  map.removeInteraction(修改);//移除绘画交互

  let feature=source . get features()[0]

  const geometry=feature . get geometry()

  const corrdinates=geometry . get coordinates()

  let points=[]

  坐标[0]。forEach(item={

  设xy=transform(item, EPSG:3857 , EPSG:4326 )

  点.推(xy)

  })

  这个。$message.success(顶点坐标为: JSON.stringify(磅))

  不要在这里映射。

  这就是这篇关于Vue使用openlayers绘制圆形和多边形的文章。有关Vue openlayers绘制圆形多边形的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: