MapBox根据鼠标位置显示经纬度组件

2023-11-09

只需要将map实例传进来就可以了,可以通过props,也可以通过vuex、pinia等。原理就是监听mousemove事件,将经纬度取出来就可以,完整组件如下。

<template>
  <div class="mouse-position" @click="copyLngLat" title="点击可复制横纵坐标,地图上的点可以先右键使经纬度不动,再来点击复制">
    <div class="content">
      <span>{{`经度:${lngLat.lng}`}}</span>
      <span>{{`纬度:${lngLat.lat}`}}</span>
    </div>
    <div class="__mouse__status" v-show="isShowTip">
      <div class="svg-wrapper">
        <svg t="1588512684752" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2024" width="16" height="16">
        <path d="M435.2 768L908.8 294.4 864 249.6 412.8 700.8l-230.4-230.4-44.8 44.8 252.8 252.8z" fill="#67C23A" p-id="2025"></path></svg>
      </div>
      <span>已复制</span>
    </div>
  </div>
</template>

<script>
export default {
  name: 'MousePosition',
  data () {
    return {
      lngLat: {
        lng: 115,
        lat: 36
      },
      options: {
        accuracy: 2
      },
      isShowTip: false,
      map:null
    }
  },
  props:['mapLoad'],
  // computed: {
  //   map () {
  //     return this.$store.state.map.map
  //   }
  // },
  watch: {
    mapLoad:{
      handler:function(newVal,oldVal){
        this.map = newVal,
        this.getLngLat()
      }
    }
  },
  // mounted () {
  //   this.getLngLat()
  // },
  methods: {
    // 获取经纬度坐标
    getLngLat () {
      this.map.on('mousemove', (e) => {
        const accu = this.options.accuracy
        this.lngLat.lng = e.lngLat.lng.toFixed(accu) // 经度
        this.lngLat.lat = e.lngLat.lat.toFixed(accu) // 纬度
      })
    },

    // 点击copy经纬度
    copyLngLat () {
      this._simpleCopy(this.lngLat)
      this.copyTip()
    },

    // 简单copy
    _simpleCopy (lngLat, cb) {
      const input = document.createElement('input')
      input.setAttribute('id', '__mouse__position_input')
      input.value = `${lngLat.lng}  ${lngLat.lat}`
      document.querySelector('body').appendChild(input)
      input.select()
      document.execCommand('copy')
      document.body.removeChild(input)
      // this.copyTip()
    },
    copyTip () {
      if (!this.isShowTip) {
        this.isShowTip = true
        this.timer = setTimeout(() => {
          this.isShowTip = false
        }, 1000)
      }
    }
  }
}
</script>

<style lang="less" scoped>
.mouse-position {
  position: relative;
  background: #FFFFFF;
  padding: 0 10px;
  font-size: 14px;
  cursor: pointer;
  border: 1px solid #dddddd;
  border-radius: 4px;
  width: 220px;

  .content {
    span {
      display: inline-block;
      width: 90px;
      height: 24px;
      line-height: 24px;
      font-family: PingFangSC-Regular;
      font-size: 12px;
      color: #44474A;
      letter-spacing: 0;
      &:first-child {
        margin-right: 10px;
      }
    }
  }

  .__mouse__status {
    position: absolute;
    top: -40px;
    right: 0;
    padding: 0 6px;
    height: 30px;
    line-height: 30px;
    border-radius: 4px;
    background-color: #FFFFFF;
    animation: fade ease-in 0.2s;

    .svg-wrapper {
      display: inline-block;
      vertical-align: sub;
    }

    .__mouse__status span {
      display: inline-block;
      margin-left: 2px;
    }
  }

  @keyframes fade {
    from {
      top: 0;
      opacity: 0;
    }
    to {
      top: -40px;
      opacity: 1;
    }
  }

}
</style>

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MapBox根据鼠标位置显示经纬度组件 的相关文章

  • JavaScript 函数参数和范围

    我用下面列出的代码做了一些测试 function foo x alert y var y I am defined outside foo definition foo 上面的代码给了我一个警告 我是在 foo 定义之外定义的 然后另一个测
  • 错误:导航器只能包含“屏幕”组件作为其直接子组件

    我是 React Native 新手 收到此错误 但无法解决它 我正在遵循主要的教程反应导航页面 https reactnavigation org docs screen options resolution 但我无法完成它 我将不胜感激
  • 当容器有选择框时 jQuery mouseleave 触发问题

    我有两个容器 一个嵌套在另一个容器内 当我将鼠标悬停在父容器上时 我希望显示子容器 当我鼠标移出时 我希望子容器淡出 我遇到的问题是子容器有一个包含 选择框 的表单 当用户选择选择框时 会意外触发 mouseleave 事件 如何阻止选择框
  • 如何选择带有空格的类

    我如何选择一个类class boolean optional 我已经尝试过这个 boolean optional CSS boolean optional CSS 正如 Zepplock 所说 这实际上是一个属性中的两个类 boolean
  • 与玻璃钢战斗

    我读过有关 FRP 的内容 非常兴奋 它看起来很棒 因此您可以编写更多高级代码 并且一切都更加可组合 等等 然后我尝试用数百个 sloc 从纯 js 到 Bacon 重写我自己的小游戏 我发现 我实际上不是编写高级纯逻辑代码 而是击败了 B
  • Node.JS Web 服务器中的安全性

    所以 我正在学习 Node JS 到目前为止我很喜欢它 我已经有几个项目在工作了 我想我可以在其中使用nodejs 不过 我担心安全问题 如果我使用 Node JS http 模块编写自定义 Web 服务器 我是否可能非常容易受到攻击 Ap
  • 如何使 Loopback 模型事件起作用?

    我尝试过一个例子http apidocs strongloop com loopback model http apidocs strongloop com loopback model MyModel on changed functio
  • 调整发散堆积条形图以使用通用更新模式

    我一直在使用可用的堆积条形图示例here https bl ocks org mbostock b5935342c6d21928111928401e2c8608使用以下代码 var data month Q1 2016 apples 384
  • Webp 和

    我面临一个问题 我似乎无法找出问题是什么 我有
  • 如何使用 jQuery AJAX 和 JSON 通过 Bootbox 确认表单提交

    我正在使用一个网络应用程序工作Spring MVC 我试图在提交表单之前显示一个确认对话框Bootbox 但我收到 500 内部服务器错误 这是我的表格
  • ajax - 检查用户名是否存在+如果存在则返回消息

    我试图检查用户想要的用户名是否已被使用 而无需发送表单 基本上是用户名字段的模糊 我遇到了一些麻烦 有几个问题 我有我的输入字段加上js
  • 将回调函数与原型函数一起使用

    在执行回调时 我无法弄清楚如何传递对象方法而不是排序 通用原型 方法 function Client this name hello Client prototype apiCall function method params callb
  • 是否可以阻止在每个 HTTP 请求中发送 cookie?

    我最近发现 这里 每个网络请求都会发送浏览器cookie吗 https stackoverflow com questions 1336126 does every web request send the browser cookies
  • Ruby 数组到 Javascript 数组

    我有一个带有帐户 ID 的 Ruby 数组 我想将帐户 ID 的 Ruby 数组存储在 Javascript 数组中 我想知道最好的方法是什么 另外 当我尝试执行此操作时 Javascript 似乎认为如果只输入一个帐户 ID 则该 ID
  • JavaScript 不是 DOM 的一部分吗?

    为什么即使从 DOM 中删除用于创建脚本的代码 脚本仍然可以运行 我遇到了一种情况 我想阻止损坏的脚本运行 查看我的帖子 https stackoverflow com questions 2685581 is there a way to
  • 内联 YouTube 视频在 iOS 上的 cordova 应用程序中不起作用

    我用 cordova 开发了一个移动应用程序 我确实需要能够播放内联 YouTube 视频 我尝试了一段时间来解决它 我设置了属性playsinline to 1在 YouTube iframe API 中 I put
  • 谷歌地图通过骨干javascript返回div标签但不显示

    我已经开始使用地理定位 我可以获得坐标等 我想在地图中显示它 但是当我将地图返回到 div 时 什么也没有显示 现在我查看了 div 地图正在返回 但只是不可见 这是有问题的 div 请注意 这似乎只是一个小地图的链接 a style di
  • 错误:Javascript 上的 [object Object]

    当我在 Firebug 中运行下面的 javascript 时 我不断收到错误 我已经尝试更改多项内容 但它仍然输出错误 我正在使用 api 从 XML 检索信息 然后将其输出到屏幕上 但我不断收到对象错误 有人能看出为什么吗 任何帮助表示
  • 在 Div 的两个顶角创建一个三角形,用边框划分

    通过遵循以下问题和答案 我能够在 div 的右上角获得一个三角形 Div 中的右上角三角形 https stackoverflow com questions 18531959 how to create triangle shape in
  • JavaScript 反静默技术来指示失败

    当错误确实发生并且函数无法继续执行时 在 JavaScript 中报告错误而不是依赖 null 和 undefined 是一个好方法 我可以想到三种方法 没做什么 抛出异常 assert 这是一个简单的示例场景 一个将传入的金额记入用户帐户

随机推荐

  • Keil报: warning: #223-D: function “某某某“ declared implicitly 的警告,三个解决方法

    原因 找不到 某某某 函数 解决 看有没有 include 相关头文件 看函数定义有没有出错 函数定义有一点不同就会出现上述原因 我个人遇到的比较奇葩的原因 emmm 人比较奇葩吧 在两个不同的 h文件中写了相同的 ifndef INA H
  • led灯条串联图_三分钟学会DIY个性LED灯

    上篇文章介绍了LED光源 主要介绍LED结构 常用参数 型号 常见品牌等内容 回看的小伙伴请点击照明灯饰专栏 今天主要介绍LED灯的工作原理与常见的LED灯 明白之后DIY自己的个性LED毫无压力 先别跳过下面有干货 一 LED驱动 上篇文
  • GoogLeNet论文阅读笔记

    目录 前言 GoogLeNet论文阅读笔记 Abstract 1 Introduction 2 Related Work 3 Motivation and High Level Considerations 4 Architectural
  • 上升沿_输入输出的上升沿和下降沿是怎么来的,一起看看

    高电平 低电平 上升沿和下降沿的区别 数字电路中 电平从低电平 逻辑信号为0 变为高电平 逻辑信号为1 的那一瞬间叫作上升沿 电平从高电平 逻辑信号为1 变为低电平 逻辑信号为0 的那一瞬间叫作下降沿 高电平触发 是指I O口电平为高电平时
  • Java实现给定两个 int 变量, 交换变量的值

    给定两个 int 变量 交换变量的值 1 创建变量i实现交换 2 不创建临时变量利用加减法实现 public class Solution public static void main String args int a 10 int b
  • C++ C2460 error

    关于该错误的官方说明 https msdn microsoft com en us library 1kf0205c aspx 结构形如 identifier1 uses identifier2 类或结构 identifier2 被声明为其
  • django中的跨域问题以及解决策略

    目录 跨域请求 同源策略 CORS 跨域资源共享 简介 CORS基本流程 解决跨域问题的方法 CORS两种请求详解 预检 解决跨域问题 服务端 简单请求 非简单请求 解决跨域问题 第三方 后端配置 解决跨域问题 前端 跨域请求 跨域是指浏览
  • Object Detection网络框架学习:Faster-RCNN

    经过RCNN和Fast RCNN的积淀 Ross B Girshick在2016年提出了新的Faster RCNN 在结构上 Faster RCN已经将特征抽取 feature extraction proposal提取 bounding
  • Linux找回root密码(Centos 7)

    首先 启动系统 进入开机界面 在界面中按 e 进入编辑界面 手速一定要快 进入编辑界面 使用键盘上的上下键把光标往下移动 找到以 Linux16 开头内容所在的行数 把光标移动到最尾部 在行的最后面输入 init bin sh 接着 输入完
  • vue实现点击两个按钮互相切换背景色

    首先准备两个按钮
  • HTTP中Put和Post的区别

    解释HTTP中Put和Post 它们有什么区别 哪个使用时更加安全 Put和Post都是浏览器向网页服务器提交数据的方法 Put把要提交的数据编码在url中 比如 http hi baidu com mianshiti key1 value
  • 【狂神说Mybatis29道练习题】

    Mybatis Mybatis动态SQL 狂神说学习笔记 29道练习题 Mybatis动态SQL 狂神说学习笔记 29道练习题 以下代码分为工具类 几个配置文件 mybatis config xml 实体类 持久层 mapper映射文件 测
  • 小程序原生和wepy、mpvue、uni-app、taro等主流开发框架,哪个好?这里是深度横评对比

    如下文章为2019年4月发布 2020年的测评版本也已出炉 最新评测点击 跨端开发框架深度横评之2020版 上周 Taro 团队发布了一篇 小程序多端框架全面测评 让开发者对业界主流的跨端框架 有了初步认识 感谢 Taro 团队的付出 不过
  • 【LeetCode】MySQL数据库简单题

    简单题近期打卡 1322 广告效果 1322 1 SQL架构 1322 2 题目要求 1322 3 代码实现 585 2016年的投资 585 1 SQL架构 1327 列出指定时间段内所有的下单产品 1327 1 SQL架构 1327 2
  • 【千律】C++基础:多态性与虚函数

    虚函数 通过父类的指针 指向子类的对象 调用虚函数时 调用子类的函数 include
  • 搭建完全分离式LNMP平台的简单案例

    案例拓扑图 安装配置nginx服务器 编译安装nginx时 需要事先安装 开发包组 Development Tools 和 Server Platform Development 同时还需专门安装pcre devel包 yum y grou
  • Git官网下载太慢,解决方案

  • 银行客户流失分析预测

    客户流失意味着客户终止了和银行的各项业务 毫无疑问 一定量的客户流失会给银行带来巨大损失 考虑到避免一位客户流失的成本很可能远低于挖掘一位新客户 因此对客户流失情况的分析预测至关重要 本文分析了某银行10000条客户信息 含14个字段 接下
  • 1X1卷积的作用,以及pytorch代码实现简单程序

    解释 从从某种程度来讲用1 1卷积并不是是网络变得更深 而是更宽 这里的宽实际上是增加数据量 但是通过1 1的卷积我们就可以对原始图片做一个变换 得到一张新的图片 从而可以提高泛化的能力减小过拟合 同时在这个过程中根据所选用的1 1卷积和f
  • MapBox根据鼠标位置显示经纬度组件

    只需要将map实例传进来就可以了 可以通过props 也可以通过vuex pinia等 原理就是监听mousemove事件 将经纬度取出来就可以 完整组件如下