从零开始的VUE+ArcGIS API for JS项目——图层管理

前言

图层列表工具主要实现将不同类型的地图图层添加到地图上,目前已经实现featurelayer,imagelaye添加到地图,其他类型的地图可以参考官方的api接口,同时能够通过图层树控制图层的显示隐藏,支持缩放到图层。

快速链接
arpgis api地址
初始化地图应用
底图切换

创建图层管理工具

继续之前的工程,在toolbox文件夹下新建 Layertree.vue,文件,对于图层控制的相关操作都在这个文件中实现。主要包含三个方法:initLayers初始化图层树,根据数据源(可以从后端传入)自动初始化图层树组件并将图层添加到地图。handleCheckChange监听树列表checkbox事件,选中则显示图层,未选中则隐藏图层。zoomLayer缩放到选中图层。
完整代码如下:

<template>
    <el-tree
      ref="treeRef"
      style="max-width: 600px"
      :data="data"
      show-checkbox
      default-expand-all
      :default-checked-keys="defaultCheckedKeys"
      node-key="id"
      highlight-current
      :props="defaultProps"
      @check-change="handleCheckChange"
      >
      <template #default="{ node, data }">
        <span class="custom-tree-node">{
   {
    node.label }}</span>
        <el-button size="small" v-if="!data.children"  @click="zoomLayer(data)">
          <el-icon><Position /></el-icon>
        </el-button>
      </template>
    </el-tree>
  </template>
  
  <script lang="ts" setup>
  import {
    ref,onBeforeMount,onMounted,reactive} from 'vue'
  import {
    ElTree } from 'element-plus'
  import FeatureLayer from "@arcgis/core/layers/FeatureLayer.js"
  import ImageLayer from "@arcgis/core/layers/ImageryLayer"
  import WMTSLayer from "@arcgis/core/layers/WMTSLayer"

  //接收主地图的视图view对象
  const props = defineProps({
   
    viewObj: Object,
  });

  interface Tree {
   
    id: number
    label: string
    children?: Tree[]
    url:string
    type
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值