您当前的位置:首页 > 网站建设 > javascript
| php | asp | css | H5 | javascript | Mysql | Dreamweaver | Delphi | 网站维护 | 帝国cms | React | 考试系统 | ajax |

Vue+Openlayer中使用select选择要素的实现代码

51自学网 2022-05-02 21:33:21
  javascript

效果图:

  

实现代码:

<template>  <div id="map" ref="map" style="width: 100vw; height: 100vh"></div></template> <script>import "ol/ol.css";import { Map, View } from "ol";import { OSM, Vector as VectorSource } from "ol/source";import { Vector as VectorLayer, Tile as TileLayer } from "ol/layer";import GeoJSON from "ol/format/GeoJSON"; import Select from "ol/interaction/Select";import { altKeyOnly, click, pointerMove } from "ol/events/condition"; export default {  name: "gif",  data() {    return {      map: {},      layer: {},      geojsonData: {        type: "FeatureCollection",        features: [          {            type: "Feature",            properties: {              title: "警报1",            },            geometry: {              type: "Point",              coordinates: [91.48879670091165, 37.83814884701121],            },          },          {            type: "Feature",            properties: {              title: "警报2",            },            geometry: {              type: "Point",              coordinates: [99.19515576149941, 26.713646654711134],            },          },          {            type: "Feature",            properties: {              title: "警报3",            },            geometry: {              type: "Point",              coordinates: [123.74363825288785, 44.363694825734726],            },          },        ],      },      select: {},    };  },  mounted() {    this.initMap();  },  methods: {    // 初始化地图    initMap() {      this.layer = new VectorLayer({        source: new VectorSource({          features: new GeoJSON().readFeatures(this.geojsonData),        }),      });      this.map = new Map({        target: "map",        layers: [          new TileLayer({            source: new OSM(),          }),          this.layer,        ],        view: new View({          projection: "EPSG:4326",          center: [104.912777, 34.730746],          zoom: 4.5,        }),      });       this.select = new Select({        condition: click, //单击选择      });      this.map.addInteraction(this.select);      this.select.on("select", (e) => {        let coordinate = e.mapBrowserEvent.coordinate; //获取选择的坐标        let properties = e.selected[0].getProperties(); //获取当前要素的所有属性      });       // 设置鼠标划过矢量要素的样式      this.map.on("pointermove", (e) => {        const isHover = this.map.hasFeatureAtPixel(e.pixel);        this.map.getTargetElement().style.cursor = isHover ? "pointer" : "";      });    },  },};</script>

到此这篇关于Vue+Openlayer中使用select选择要素的实现代码的文章就介绍到这了,更多相关Vue Openlayer选择要素内容请搜索wanshiok.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持wanshiok.com!


Vue实现天气预报功能
Vue实现天气预报小应用
51自学网,即我要自学网,自学EXCEL、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。
京ICP备13026421号-1