阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Vue+Openlayer中使用select选择要素

107次阅读
没有评论

共计 1807 个字符,预计需要花费 5 分钟才能阅读完成。

导读 本文通过实例代码给大家介绍 Vue+Openlayer 中使用 select 选择要素,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

效果图:
Vue+Openlayer 中使用 select 选择要素Vue+Openlayer 中使用 select 选择要素

实现代码:

&lttemplate&gt
&ltdiv id="map" ref="map" style="width: 100vw; height: 100vh"&gt&lt/div&gt
&lt/template&gt
&ltscript&gt
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" : "";});
},
},
};
&lt/script&gt

到此这篇关于 Vue+Openlayer 中使用 select 选择要素的实现代码的文章就介绍到这了

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计1807字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中