vue+openlayers,

  vue+openlayers,

  点击弹出窗口其实就是添加一个弹出层,然后让它在点击的时候显示出来。本文将使用openlayers来实现这一效果。跟边肖学吧。

  

目录

  说明使用弹出组件编写弹出窗口、引入openlayer和点击事件稍微容易一些。其实这个并不是很难,只需要知道原理就可以了。

  我想实现什么?也就是说,页面上有很多坐标点。点击坐标点时,相应位置会弹出一个框,然后这个坐标点的相关数据会显示在框中。

  

解释

  这个内容的目的其实就是添加一个弹出层,然后让它在点击的时候显示出来。

  

编写弹窗

  首先我们需要自己写这个弹窗,具体的样式,显示的内容等等,所以写一个弹窗组件,然后在openlayer文件中引用加载。

  例如,让我们创建一个msgModel.vue

  模板

  div class=msg-div

  p class= msg-title“{ data . title } }/p

  /div

  /模板

  脚本

  导出默认值{

  道具:[数据],

  data() {

  返回{

  }

  },

  方法:{

  },

  }

  /脚本

  样式范围。msg-div {

  最小宽度:200像素;

  填充:0px

  背景色:# fff

  垫底:5px

  }。消息标题{

  边距:0;

  左填充:5px

  高度:30px

  行高:30px

  字体大小:13px

  颜色:# fff

  }

  /风格

  以上是我自己随机演示的,然后跟着你自己的。

  

引入

  然后在openlayer文件中介绍。

  从“@/views/modules/wjw/demo/msgModel”导入msg model

  然后像普通子组件一样加载它。

  组件:{

  msgModel,

  },

  然后添加到界面。

  msg-model ref= msg form :data= data /msg-model

  其中该数据是过去要显示的值。

  

openlayer使用弹窗组件

  初始化地图时,我们将这个弹出窗口加载到openlayer中。

  OverlayForm=new Overlay({ //创建层

  元素:这个。$ refs.msgform.el,//图层绑定我们上方的弹出窗口。

  autoPan:没错,

  自动映射:{

  时长:250,

  }

  })

  overlay form . Set position(undefined)//设置弹出位置。一开始我们不让他展示,只是未定义。

  Map.addOverlay(overlayForm) //然后在地图上加载弹出图层。

  上面的代码写完后,地图上没有弹出窗口,因为我没有设置他的位置。

  然后点击弹出。

  

点击事件

  比如地图上有坐标点,我点击坐标点,然后这个弹出框显示被点击坐标点的数据信息。

  map.on(click ,ev={

  像素=ev.pixel//where鼠标点击,这应该是一个像素

  mouse=ev . coordinate//鼠标点击的坐标位置

  let feature=map . foreachfeatureatpixel(pixel,(feature)={

  返回特征//找出你点击了哪个坐标。

  })

  If (feature) {//如果单击坐标点

  this . data=feature . Get( data )//获取坐标点的数据

  overlay form . Set position(mouse)//设置弹出窗口的位置。

  }否则{

  overlay form . set position(undefined)//如果不点击坐标点,弹出窗口会被隐藏。

  }

  })

  好了,上面的代码基本实现了点击坐标点弹出信息框的功能,就不截图了。我们将就一下吧。

  关于Vue如何使用openlayers点击弹出窗口的这篇文章到此结束。有关Vue openlayers点击弹出窗口的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!

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

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