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
Table of contents Import on demand: Global Import...
1. Download address: http://dev.mysql.com/downloa...
Table of contents Node Event Loop Event loop diag...
1. MySQL gets the current date and time function ...
Now most projects have begun to be deployed on Do...
This article shares the specific code of JavaScri...
In development, it is often necessary to cache th...
Being an operation and maintenance engineer is a ...
This article shares the specific code of JavaScri...
Below are some common parameters of /etc/my.cnf o...
Table of contents Preface Earlier iterations Iter...
Table of contents PXE implements unattended batch...
1. To optimize the query, try to avoid full table...
Table of contents Class void pointing ES6 Arrow F...
The first step is to create a mysql container doc...