ol点击切换矢量、影像、地形图层

根据之前添加的图层进行切换https://blog.csdn.net/ssy001128/article/details/129681657?spm=1001.2014.3001.5501【代码】ol加载wmts切片服务/xyz服务地图。https://blog.csdn.net/ssy001128/article/details/129681657?spm=1001.2014.3001.5501

<template>
    <div class="layer-control-container">
      <div
        v-for="item of list"
        :key="item.id"
        class="layer"
        :class="{active: item.id === currentLayerId}"
          @click.stop="changeBaseLayer(item.id)"
      >
      </div>
    </div>
</template>

<script>
export default {
  name: "LayerControlContainer",
  components: {

  },
  mixins: [

  ],
  props: {
    map: {
      required: true,
      type: Object
    }
  },
  data() {
    return {
      currentLayerId: "RASTER", // 默认影像
      list: [
        {
          name: "影像",
          id: "RASTER"
        },
        {
          name: "矢量",
          id: "VECTOR"
        },
        {
          name: "地形",
          id: "TOPOGRAPHY"
        }
      ],
    
    };
  },
  computed: {

  },
  watch: {
    currentLayerId(newId, oldId) {
      this.map.getLayerByProp("id", oldId)[0].setVisible(false);
      this.map.getLayerByProp("id", newId)[0].setVisible(true);
    },
   
  },
  mounted() {
  },
  methods: {
    changeBaseLayer(id) {
      this.currentLayerId = id;
    }
  }
};
</script>

<style lang="scss" scoped>
.layer-control-container {
  position: absolute;
  z-index: 10;
  width: 380px;
  height: 88px;

  .layer {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 1;
    width: 120px;
    height: 88px;
    transition: 0.5s transform;
    transform: translateX(0);
    cursor: pointer;
    &.active {
      z-index: 4;
       &:nth-of-type(1) {
      background: url('@/assets/img/image/img_yingxiang_p.png') no-repeat center / contain;
    }

    &:nth-of-type(2) {
      background: url('@/assets/img/image/img_shiliang_p.png') no-repeat center / contain;
    }

    &:nth-of-type(3) {
       background: url('@/assets/img/image/img_dixing_p.png') no-repeat center / contain;
    }
    }

    &:nth-of-type(1) {
      background: url('@/assets/img/image/img_yingxiang_n.png') no-repeat center / contain;
    }

    &:nth-of-type(2) {
      background: url('@/assets/img/image/img_shiliang_n.png') no-repeat center / contain;
    }

    &:nth-of-type(3) {
        background: url('@/assets/img/image/img_dixing_n.png') no-repeat center / contain;
    }
  }

  &:hover {
    .layer:nth-of-type(2) {
      transform: translateX(-130px);
    }

    .layer:nth-of-type(3) {
      transform: translateX(-260px);
    }
  }
}


</style>

 使用时 将地图引进去

<layer-control :map="map" :style="mapTcPositionData.tcqh"/>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值