首页 > 其他分享 >mapbox添加自定义控件

mapbox添加自定义控件

时间:2023-06-12 22:36:47浏览次数:36  
标签:控件 container mapStore 自定义 map changeView mapbox const ref

需要定义一个类,然后至少重写实现onAddonRemove方法,示例如下

<template>
  <div ref="changeViewRef" @click="changeView" class="changeView mapboxgl-ctrl">
    <el-tooltip
      class="box-item"
      effect="dark"
      :content="`${mapStore.mode}视图`"
      placement="left"
    >
      <el-icon><Refresh /></el-icon>
    </el-tooltip>
  </div>
</template>

<script setup>
import G from "@/config";
import useMapStore from "@/store/modules/map";
const mapStore = useMapStore();
const changeViewRef = ref();
onMounted(() => {
  G.map.addControl(new MyCustomControl(changeViewRef.value), "bottom-right");
});
const changeView = () => {
  if (mapStore.mode == "2D") {
    G.map.setProjection("globe");
    mapStore.mode = "3D";
  } else {
    G.map.setProjection("mercator");
    mapStore.mode = "2D";
  }
};
class MyCustomControl {
  constructor(ref) {
    this.container = ref;
  }
  onAdd() {
    return this.container;
  }
  onRemove() {
    this.container.parentNode.removeChild(this.container);
  }
}
</script>

<style lang="scss" scoped>
.changeView {
  width: 29px;
  height: 29px;
  padding: 5px;
  border-radius: 4px;
  background-color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
}

.changeView:hover {
  opacity: 0.8;
}
</style>

标签:控件,container,mapStore,自定义,map,changeView,mapbox,const,ref
From: https://www.cnblogs.com/echohye/p/17476264.html

相关文章

  • DotNet 自定义模板
    目录DotNet自定义模板创建目录结构template.json生成本地模板使用本地模板生成项目发布到Nuget参考资料DotNet自定义模板创建目录结构下面以artizan-abp-microservice项目为例,解决方案结构:基于该项目创建dotnet模板,首先,创建文件夹templates,所有的项目模板将保存......
  • 自定义SpringBoot的starter
    1.自定义starter名为my-starter-spring-boot-starter1.1idea中创建一个maven模块groupId为com.exampleartifactId为my-starter-spring-boot-starter起名规范:1.官方starter是spring-boot-starter-xxxx2.自定义starter是xxx-spring-boot-starter依赖如下<?xmlversion="1.0......
  • 012 数据库学习笔记--自定义函数
    自定义函数:根据自己的需要,自定义一些函数分类:标量函数、内嵌表值函数、多声明表值函数标量函数:对单一值的操作,返回单一值;包含beginend创建的时候,指定了函数所有体,调用时也必须指定函数所有者调用时,如果函数中指定了默认值,调用的时候,可使用默认值default代替在语法上r......
  • Flutter的FittedBox控件
    简介FittedBox是Flutter中的一个控件,它用于调整其子控件的大小以适应可用空间。它会根据子控件的大小和可用空间的大小,自动进行缩放或拉伸操作,以使子控件恰好填充可用空间。属性FittedBox的常用属性包括:fit:指定子控件如何适应可用空间的枚举值。常用的取值有:BoxFit.contain:将......
  • 热门自定义报表系统推荐,哪款自定义报表系统更功能更强大?
    随着企业管理的日益复杂,越来越多的企业需要一款高效、灵活、易用的自定义报表系统来满足其各种报表制作和数据分析需求。然而,在众多自定义报表系统中,哪款更加强大?今天,我将向大家推荐5款热门自定义报表系统,并详细介绍其中最具代表性的VeryReport自定义报表系统。1.VeryReport编辑搜......
  • 微信小程序 自定义弹窗
    效果图wxml<viewclass="toastbd"catchtouchmove='preventTouchMove'wx:if='{{showModal}}'></view><viewclass="mytoast"catchtouchmove='preventTouchMove'wx:if='{{showModal}}'>......
  • 医院项目中,如何使用自定义注解?
    你好,我是田哥不管是项目中,还是各种框架中,都有着大量的注解。而且,我们在项目开发中,通常一个注解就能搞定好多事情,尤其是在Spring大家族里,注解那是被玩的飞起,另外其他框架中不少使用。下面给大家罗列一下常用注解:1、@Configuration标识当前类是配置类2、@ComponentScan包扫描......
  • 前端 vue 自定义导航栏组件高度及返回箭头 自定义 tabbar 图标
    前端vue自定义导航栏组件高度及返回箭头自定义tabbar图标,下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=12986效果图如下:使用方法//page.json采用矢量图标设置返回箭头,{"path":"pages/Home/Home",......
  • WPF控件库之HandyControl
    HandyControl介绍HandyControl是一套WPF控件库,它几乎重写了所有原生样式,同时包含80余款自定义控件(正逐步增加)。安装使用github地址:https://github.com/HandyOrg/HandyControl官网地址:https://handyorg.github.io/......
  • 使用chatgpt根据openAI API key自定义关键词批量写文章
    使用chatgpt根据openAIAPIkey自定义关键词批量写文章使用方法:1.api.txt里放openaikey,每行一个,程序会随机使用一个KEY2.key.txt放关键词,根据关键词写文章。3.写好的文章会自动保存到wenzhang文件夹下。 写文章速度以来openaikey及本身网络速度。本视频录制采用1核1G机器运......