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 1. Timestamp to date 2. Convert...
WeChat applet calculator example, for your refere...
Preface When we write code, we occasionally encou...
I've been playing with the remote development...
Table of contents 1. Theory SERIALIZABLE REPEATAB...
mysql-8.0.19-winx64 downloaded from the official ...
Table of contents JS Three Mountains Synchronous ...
Table of contents 1. Decoupled assignment of arra...
What is a tree in web design? Simply put, clicking...
Page directory structure Note that you need to mo...
Table of contents 1. Basic use 2. Several points ...
I believe everyone is familiar with the trashcan,...
As shown in the figure: Table Data For such a tre...
This article shares the specific code of js to ac...
When encapsulating Vue components, I will still u...