vue的openlayers使用教程,vue使用openlayers

  vue的openlayers使用教程,vue使用openlayers

  这篇文章主要介绍了Vue Openlayer加载动画效果的实现代码,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  注意:实现动画时不能有scoped!!!!

  通过可交换的图像格式

  模板

  测试

  div id= map ref= map style= width:100 VW;高度:100英尺/格

  /div

  /模板

  脚本

  导入“ol/ol。CSS”;

  从" ol "导入{地图、视图、覆盖};

  从" ol/图层/拼贴"导入图层

  从" ol/source/OSM "导入OSM;

  导出默认值{

  名称: gif ,

  data() {

  返回{

  地图:{},

  覆盖:{},

  标记点:{},

  地理数据:{

  类型:“FeatureCollection”,

  功能:[

  {

  类型:"特征",

  属性:{

  标题: 警报1,

  },

  几何图形:{

  类型:"点",

  坐标:[91.48879670091165,37.8314884701121],

  },

  },

  {

  类型:"特征",

  属性:{

  标题: 警报2,

  },

  几何图形:{

  类型:"点",

  坐标:[99.19515576149941,26.713646654711134],

  },

  },

  {

  类型:"特征",

  属性:{

  标题: 警报3,

  },

  几何图形:{

  类型:"点",

  坐标:[123.74363825288785,44.3664825734726],

  },

  },

  ],

  },

  };

  },

  已安装(){

  这个。init map();

  这个。add gif();

  },

  方法:{

  //初始化地图

  initMap() {

  this.map=新地图({

  目标:"地图",

  图层:[

  新平铺层({

  来源:新OSM(),

  }),

  ],

  视图:新视图({

  预测:“EPSG:4326”,

  中心:[104.912777,34.730746],

  变焦:4.5,

  }),

  });

  },

  //使用覆盖物添加GIF格式格式动态图标点位信息

  addGif() {

  让坐标=这个。getcoordinatesbygeojson(这个。geojsondata);

  对于(坐标中的常数I){

  设gif _ span=document。createelement(“span”);

  文档。文档元素。appendchild(gif _ span);

  这个. nextTick(()={

  this.markerPoint=新覆盖({

  位置:坐标[我],

  element: gif_span,

  定位:"中心-中心",

  });

  这个。地图。添加覆盖(这。标记点);

  });

  }

  },

  //根据矢量数据数据获取坐标集

  getCoordinatesByGeojson(geojsonData){

  设坐标=[];

  geojsondata。特色。地图((要素)={

  坐标=[.坐标,特色。几何。坐标];

  });

  返回坐标;

  },

  },

  };

  /脚本

  样式lang=scss 。测试{

  跨度{

  显示:内嵌-块;

  宽度:80px

  高度:80px

  边界半径:50%;

  背景:URL( https://智能花园-管理。成都OSS-。阿里云。com/gif。gif’)

  不重复;

  背景-尺寸:80像素80像素

  }

  }

  /风格

  通过关键帧@关键帧

  模板

  测试

  div id= map ref= map style= width:100 VW;高度:100英尺/格

  /div

  /模板

  脚本

  导入“ol/ol。CSS”;

  从" ol "导入{地图、视图、覆盖};

  从" ol/图层/拼贴"导入图层

  从" ol/source/OSM "导入OSM;

  导出默认值{

  名称: gif ,

  data() {

  返回{

  地图:{},

  覆盖:{},

  点覆盖:{},

  地理数据:{

  类型:“FeatureCollection”,

  功能:[

  {

  类型:"特征",

  属性:{

  标题: 警报1,

  },

  几何图形:{

  类型:"点",

  坐标:[91.48879670091165,37.8314884701121],

  },

  },

  {

  类型:"特征",

  属性:{

  标题: 警报2,

  },

  几何图形:{

  类型:"点",

  坐标:[99.19515576149941,26.713646654711134],

  },

  },

  {

  类型:"特征",

  属性:{

  标题: 警报3,

  },

  几何图形:{

  类型:"点",

  坐标:[123.74363825288785,44.3664825734726],

  },

  },

  ],

  },

  };

  },

  已安装(){

  这个。init map();

  这个。add gif();

  },

  方法:{

  //初始化地图

  initMap() {

  this.map=新地图({

  目标:"地图",

  图层:[

  新平铺层({

  来源:新OSM(),

  }),

  ],

  视图:新视图({

  预测:“EPSG:4326”,

  中心:[104.912777,34.730746],

  变焦:4.5,

  }),

  });

  },

  //使用覆盖物添加GIF格式格式动态图标点位信息

  addGif() {

  让坐标=这个。getcoordinatesbygeojson(这个。geojsondata);

  对于(坐标中的常数I){

  设point _ div=document。createelement( div );

  点_格。class name= CSS _ animation

  点_格。id=` coordinate _ $ { I }

  文档。文档元素。appendchild(point _ div);

  这个. nextTick(()={

  this.point_overlay=新叠加({

  位置:坐标[我],

  元素:point_div

  定位:"中心-中心",

  });

  这个。地图。添加覆盖(这。point _ overlay);

  });

  }

  },

  //根据矢量数据数据获取坐标集

  getCoordinatesByGeojson(geojsonData){

  设坐标=[];

  geojsondata。特色。地图((要素)={

  坐标=[.坐标,特色。几何。坐标];

  });

  返回坐标;

  },

  },

  };

  /脚本

  样式lang=scss 。测试{。css _动画{

  高度:50px

  宽度:50px

  边界半径:50%;

  背景:rgba(255,0,0,0.9);

  方框阴影:插入0 0 8px红色;

  transform:scale(0);

  动画:我的前3s

  动画-迭代-计数:无限;//无限循环

  }

  @关键帧我的第一个{

  到{

  变换:缩放(2);

  背景:rgba(0,0,0,0);

  box-shadow: inset 0 0 50px rgba(255,0,0,0);

  }

  }

  }

  /风格

  既可加载动画,又可获取动画所在要素点的属性

  注意:该代码存在问题。目前只能要么点击获取属性,要么展示动画,而不能同时存在,还有待优化!

  模板

  测试

  div id= map ref= map style= width:100 VW;高度:100英尺/格

  差异

  id=popup

  style=

  位置:绝对;

  背景色:rgba(47,57,90,0.678);

  底部:20px

  左:30px

  边框:1px纯白;

  填充:10px

  宽度:60px

  {{ properties.title }}

  /div

  /div

  /模板

  脚本

  导入“ol/ol。CSS”;

  从" ol "导入{地图、视图、覆盖};

  从" ol/source "导入{ OSM,向量为向量源};

  从" ol/层"导入{ Vector as VectorLayer,Tile as Tile layer };

  从" ol/format/GeoJSON "导入geo JSON

  从" ol/交互/选择"导入选择;

  从" ol/事件/条件"导入{ altKeyOnly,click,指针移动};

  从" ol/style "导入{填充、描边、样式、圆形}。

  导出默认值{

  名称: gif ,

  data() {

  返回{

  地图:{},

  图层:{},

  覆盖:{},

  点覆盖:{},

  地理数据:{

  类型:“FeatureCollection”,

  功能:[

  {

  类型:"特征",

  属性:{

  标题: 警报1,

  },

  几何图形:{

  类型:"点",

  坐标:[91.48879670091165,37.8314884701121],

  },

  },

  {

  类型:"特征",

  属性:{

  标题: 警报2,

  },

  几何图形:{

  类型:"点",

  坐标:[99.19515576149941,26.713646654711134],

  },

  },

  {

  类型:"特征",

  属性:{

  标题: 警报3,

  },

  几何图形:{

  类型:"点",

  坐标:[123.74363825288785,44.3664825734726],

  },

  },

  ],

  },

  选择:{},

  属性:{

  标题: ,

  },

  };

  },

  已安装(){

  这个。init map();

  //这个。添加gif();//注释掉后,点击可获取特征属性

  },

  方法:{

  //初始化地图

  initMap() {

  this.layer=new VectorLayer({

  来源:新矢量源({

  特点:新GeoJSON().readFeatures(this.geojsonData),

  }),

  });

  this.map=新地图({

  目标:"地图",

  图层:[

  新平铺层({

  来源:新OSM(),

  }),

  这一层,

  ],

  视图:新视图({

  预测:“EPSG:4326”,

  中心:[104.912777,34.730746],

  变焦:4.5,

  }),

  });

  this.select=新选择({

  条件:点击,//单击选择

  });

  这个。地图。addinteraction(this。选择);

  let overlayer _ popup=new overlayer({

  元素:文档。getelementbyid( popup )。

  定位:"中心-中心",//一定要加上,否则会有偏移

  });

  this.select.on(select ,(e)={

  设坐标=e . mapbrowserevent。坐标;//获取选择的坐标

  设feature select=e . selected[0];//选中的特征要素

  if (e.selected.length!==0) {

  overlayer_popup.setPosition(坐标);

  这个。地图。添加叠加层(overlayer _ popup);

  }否则{

  overlayer _ popup。设置位置(" ");

  }

  如果(功能选择){

  这个。属性=功能选择。获取属性();//获取当前要素的所有属性

  //设置选中的样式

  featureSelect.setStyle(

  新样式({

  图片:新圆圈({

  半径:10,

  填充:新填充({

  //矢量图层填充颜色,以及透明度

  颜色: rgba(255,0,0,0.5),

  }),

  笔画:新笔画({

  //边界样式

  颜色: rgba(100,90,209,0.6),

  宽度:3,

  }),

  }),

  })

  );

  }

  });

  //设置鼠标划过矢量要素的样式

  this.map.on(pointermove ,(e)={

  const结束=这个。地图。hasfeatureatpixel(e . pixel);

  这个。地图。gettargetelement()样式。光标=是悬停?指针":";

  });

  },

  //使用覆盖物添加GIF格式格式动态图标点位信息

  addGif() {

  让坐标=这个。getcoordinatesbygeojson(这个。geojsondata);

  对于(坐标中的常数I){

  设point _ div=document。createelement( div );

  点_格。class name= CSS _ animation

  点_格。id=` coordinate _ $ { I }

  文档。文档元素。appendchild(point _ div);

  这个. nextTick(()={

  this.point_overlay=新叠加({

  位置:坐标[我],

  元素:point_div

  定位:"中心-中心",

  });

  这个。地图。添加覆盖(这。point _ overlay);

  });

  }

  },

  //根据矢量数据数据获取坐标集

  getCoordinatesByGeojson(geojsonData){

  设坐标=[];

  geojsondata。特色。地图((要素)={

  坐标=[.坐标,特色。几何。坐标];

  });

  返回坐标;

  },

  },

  };

  /脚本

  样式lang=scss 范围。测试{

  }

  /风格

  样式lang=scss 。测试{。css _动画{

  高度:50px

  宽度:50px

  边界半径:50%;

  背景:rgba(255,0,0,0.9);

  方框阴影:插入0 0 8px红色;

  transform:scale(0);

  动画:我的前3s

  动画-迭代-计数:无限;//无限循环

  }

  @关键帧myfirst {

  到{

  变换:缩放(2);

  背景:rgba(0,0,0,0);

  box-shadow: inset 0 0 50px rgba(255,0,0,0);

  }

  }

  }

  /风格

  这就是这篇关于Vue Openlayer加载动画的文章。更多相关Vue Openlayer加载动画内容,请搜索我们之前的文章或者继续浏览下面的相关文章。希望大家以后能多多支持我们!

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

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