Effect picture: Implementation code: <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: "Alarm 1", }, geometry: type: "Point", coordinates: [91.48879670091165, 37.83814884701121], }, }, { type: "Feature", properties: title: "Alarm 2", }, geometry: type: "Point", coordinates: [99.19515576149941, 26.713646654711134], }, }, { type: "Feature", properties: title: "Alarm 3", }, geometry: type: "Point", coordinates: [123.74363825288785, 44.363694825734726], }, }, ], }, select: {}, }; }, mounted() { this.initMap(); }, methods: { // Initialize the map 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, //Click to select}); this.map.addInteraction(this.select); this.select.on("select", (e) => { let coordinate = e.mapBrowserEvent.coordinate; //Get the selected coordinates let properties = e.selected[0].getProperties(); //Get all properties of the current feature }); // Set the style of the mouse over the vector element this.map.on("pointermove", (e) => { const isHover = this.map.hasFeatureAtPixel(e.pixel); this.map.getTargetElement().style.cursor = isHover ? "pointer" : ""; }); }, }, }; </script> This is the end of this article about the implementation code of using select elements in Vue+Openlayer. For more relevant Vue Openlayer selection elements content, please search 123WORDPRESS.COM's previous articles or continue to browse the following related articles. I hope everyone will support 123WORDPRESS.COM in the future! You may also be interested in:
|
<<: Detailed explanation of three ways to connect Docker containers to each other
>>: Detailed explanation of MySQL replication principles and practical applications
I believe that many users who make websites will ...
There are also two servers: Preparation: Set the ...
Table of contents 1. Start and stop service instr...
Table of contents Local Mixin Global Mixins Summa...
Table of contents Problem Description Front-end c...
Table of contents Preface 1. 404 Page 1. Causes 2...
Preface In a relatively complex large system, if ...
HTML has attempted to move away from presentation...
Overview What is harbor? The English word means: ...
background I talked to my classmates about a boun...
Table of contents 1. Back up the old MySQL5.7 dat...
Generally speaking, in order to get more complete...
This article example shares the specific code of ...
When talking about the screen reading software op...
Learning objectives: Learn to use Windows system ...