【openlayers框架学习】十五:事件监听与交互功能



openlayers进阶

40 事件监听

map.getView().on("change:resolution", function(e){
   
   
    let zoom = this.getZoom();
    if(zoom>10){
   
   
      cityLayer.setVisible(false);
      drawLayer.setVisible(false);
    }else{
   
   
      cityLayer.setVisible(true);
      drawLayer.setVisible(true);
    }

  });

41 openlayers地图点击事件

//点击地图 弹出popup
  map.on('click',function(e){
   
   
    // const coordinate = e.coordinate;
    // let features = map.getLayers().getFeaturesAtCoordinate(coordinate);
    const pixel = e.pixel;
    const features = map.getFeaturesAtPixel(pixel);
    if(features.length > 0 && features[0].get('name')){
   
   
      const center = features[0].get("center");
      const name = features[0].get('name');
      popup = new Overlay({
   
   
        element:document.getElementById("popup"),
      });
      popup.setPosition(center);
      popupContent.value = `
      <p>当前城市是${
     
     name}</p>
      <p>经度:${
     
     center[0]}</p>
      <p>纬度:${
     
     center[1]}</p>`
      map.addOverlay(popup);
    }else{
   
   
      if(popup){
   
   
        popup.setPosition(undefined);
      }
    }
  });

App.vue

<template>
  <div class="top-nav">
    <div class="city-choose">{
  
  { city }}</div>
    <el-input v-model="searchCity" style="width:240px" size="large" placeholder="请输入城市名称" :prefix-icon="Search" @keyup.enter="handleSearchCity"></el-input>
    <el-select v-model="drawType" placeholder="请选择绘制图形" style="width: 240px;"  @change="handleDrawType">
      <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option>
    </el-select>
    <el-select v-model="iconType" placeholder="请选择图标类型" style="width: 240px;">
      <el-option v-for
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一叶怎知秋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值