在vue项目引入天地图,根据经纬度获取具体地址

2023-10-27

1、申请key

天地图地图服务对所有用户开放。使用本组服务之前,需要申请Key

2、引入API

地图API是由JavaScript语言编写的,您在使用之前需要通过<script>标签将API引用到页面中:

<script src="http://api.tianditu.gov.cn/api?v=4.0&tk=您的密钥" type="text/javascript"></script>

在vue项目中,我们在public文件夹的index.html中引入天地图的api文件

<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <script defer src="//static.gdzwfw.gov.cn/mhyy/browser-upgrade/index.js"></script>
    <script type="text/javascript" src="http://api.tianditu.gov.cn/api?v=4.0&tk=你申请的key"></script>
  </head>
  <body>
    <noscript>
      <strong>We're sorry but aba-init-vue doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
    </noscript>
    <div id="root"></div>
  </body>
</html>

3、在vue页面中,创建一个tiandiMap.vue页面,初始化地图,代码如下:

<template>
  <div>
    <div id="divwxMap" class="divwxMap" style="width: 100%;height: 580px;"></div>
    <div style="margin-top:10px;width:100%">
      <label for="">选中的地址:</label>
      <gd-input
        style="width:88%"
        v-model="address">
      </gd-input>
    </div>
  </div>
</template>

<script type="text/javascript">
  import { mapActions } from 'vuex';
  export default {
    components: {
    },
    data () {
      return {
        wxMap: '',
        address: '',
        markerTool: '',
        addrResult: {},
      };
    },
    mounted () {
      this.initwxMap();
    },
    methods: {
      ...mapActions([
        'getGeocoder',
      ]),
      // 初始化天地图
      initwxMap () {
        // vue项目需要先声明 T = window.T
        let T = window.T;
        this.wxMap = new T.Map('divwxMap'); // div的id
        // 传参中心点经纬度,以及放大程度,最小1,最大18
        this.wxMap.centerAndZoom(new T.LngLat(113.86942, 35.30416), 18);
        var cp = new T.CoordinatePickup(this.wxMap, { callback: this.getLngLat });
        cp.addEvent();
      },
      getLngLat (lnglat) {
        let T = window.T;
        console.log('获取的经纬度');
        const x = lnglat.lng.toFixed(6);
        const y = lnglat.lat.toFixed(6);
        this.wxMap.clearOverLays(); // 清空原来的标注点
        let point = new T.LngLat(x, y);
        let marker = new T.Marker(point);
        this.wxMap.addOverLay(marker); // 添加标注点
        this.getGeocoderFun(x, y);
      },
      // 根据经纬度获取地址
      async getGeocoderFun (lon, lat) {
        this.$loading.show('查询中...');
        const query = {
          postStr: {
            lon,
            lat,
            ver: '1',
          },
          type: 'geocode',
          tk: '7b733691924fcd55d8724722172a0664',
        };
        try {
          const res = await this.getGeocoder({ query });
          this.$loading.hide();
          if (res.status === '0') {
            const result = res.result;
            this.address = result.formatted_address;
            this.addrResult = result;
          }
        }
        catch (e) {
          this.$loading.hide();
        }
      },
      getAddress () {
        return this.addrResult;
      },
    },
  };
</script>

<style lang="stylus" scoped>
</style>

效果:

 

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

在vue项目引入天地图,根据经纬度获取具体地址 的相关文章

随机推荐

  • 关于Class.forName()

    Class forName xxx 采用类加载机制 传入类的全路径名可以在程序运行的过程中动态地加载一个类 返回这个类的Class对象 这个对象对于任何一个类来说都是单例唯一的 通过这个Class对象利用反射进而可以创建这个类的实例 得到这
  • 【06】Vue_集成mavon-editor编辑器

    06 Vue 集成mavon editor编辑器 官网 https www npmjs com package mavon editor 文章目录 06 Vue 集成mavon editor编辑器 一 mavon editor 安装 二 项
  • OTDR曲线中的事件类型

    我们通过OTDR原理一文了解了反射 散射的原理 现在我们结合上图 形象的看下正常连接点的光反射OTDR图形是什么样子的 首先是UPC连接 大家都知道UPC连接的端面是超球面 即使再精密的端面连接也会有间隙 也就是会有空气 折射率肯定就会变化
  • Python代码中“# -*- coding: utf-8 -*-”的作用及正确的位置

    语句 coding utf 8 的作用是告诉Python解释器和IDE 我这个文件中的内容你们该以什么样的编码进行读取和保存 在Python 3中 默认是以 utf 8 对代码内容进行读取和保存的 语句 coding utf 8 的具体作用
  • 蓝桥杯真题七段码

    题目 七段码对应的a b c d e f g分别用数字0 1 2 3 4 5 6表示 一 DFS check函数 这里与普通的dfs并不相同 因为这里的dfs不要求一定要到达叶子节点 但是dfs方法走了很多多余的路太笨了 这是我最开始的想法
  • vscode常用配置、快捷键及插件使用

    一 配置 通过文件 首选项 设置 或者ctrl 即可打开设置页面 以下是一些常用设置 1 字体 可以直接设置fontsize大小 也可以通过勾选mouse wheel zoom 去使用ctrl 滚轮对字体大小进行缩放 2 word wrap
  • Django-模型层(多表操作)

    1 创建模型 表和表之间的关系 一对一 多对一 多对多 用book表和publish表自己来想想关系 想想里面的操作 加外键约束和不加外键约束的区别 一对一的外键约束是在一对多的约束上加上唯一约束 实例 我们来假定下面这些概念 字段和关系
  • 2022福大数学建模赛题B题-多元 Logistic回归分类模型-附Python完整代码

    题目 第3题 请根据附件 2 所提供的部分食物寒热属性 分为三类 性平 性温热 性凉寒 对附 件 1 中的食物进行分类 判断这些食物是属于性平 性温热或性凉寒中哪一类 并说明你分类 的合理性 思路 如果食品寒热属性与其成分之间都是线性关系
  • SOIC 和 SOP区别

    SOP是一种很常见的封装形式 始于70年代末期 SOP封装的应用范围很广 而且以后逐渐派生出SOJ J型引脚小外形封装 TSOP 薄小外形封装 VSOP 甚小外形封装 SSOP 缩小型SOP TSSOP 薄的缩小型SOP 及SOT 小外形晶
  • 9月5日晚盘黄金原油交易策略

    9月5日 美黄金主力合约1912合约 晚间分析 技术分析 早盘中我们看空在1559附近开始看空截止下午空单获得丰厚的利润 在下午2点以后出现一次 强有力的反弹 但依然在空头趋势中 至此我们可以确定图中两条趋势线 交易策略 开仓方向 做空为主
  • 使用CopperCube(IrrEdit)创建Irrlicht场景

    使用CopperCube IrrEdit 创建Irrlicht场景 标签 Irrlicht游戏引擎 2013 11 22 19 32 3384人阅读 评论 7 收藏 举报 分类 Irrlicht 13 版权声明 本文为博主原创文章 未经博主
  • SQL语句补充--增删改查 limit 排序 分组 连表操作

    create table tb1 id int auto increment primary key name varchar 32 age int engine innodb default charset utf8 增 insert i
  • AR APP测试:现有工具简单调研

    最近要对开发的一个AR APP进行测试 于是在网上搜了一下现有的AR APP测试工具和实践 但是 目前能找到的工具和系统的实践教程并不多 可能正如这本书 1 所说 在这个领域仍然没有足够的测试工具或成熟的测试方法 测试是根据上下文定制的 现
  • c语言,算数运算符、关系运算符、逻辑运算符、赋值运算符、三目运算符、分支结构、运算符优先级以及执行顺序

    算术运算符 除 1 参与的数类型都是整型时 做取整运算 即商n余m 结果为n 2 只要有一个浮点数参与 就会做类似精确运算 取余 取余运算符号 也叫取模运算符号 做除法运算时 商n余m 结果为m 而且被除数必须是整数 1 参与运算都是整数时
  • Android sdk工程搭建(aar)

    Android sdk工程搭建 aar Unity 和 Android 交互流程 AndroidJavaClass public AndroidJavaClass string className className 指定类名 java l
  • 恒压供水一拖三程序图纸(看描述)恒压供水一拖三图纸程序

    恒压供水一拖三程序图纸 看描述 恒压供水一拖三图纸程序 1 采用西门子SMART SR20 CPU 加AE04模块 2 触摸屏采用昆仑通态 同时通讯PLC和变频器 3 PLC模拟量检测压力 变频器PID控制 PLC检测频率加减泵 4 此程序
  • tplogin服务器无响应,tplogin.cn打不开解决教程

    TP Link TL WDR6600 有线路由器作为无线交换机应用设定实例教程 1 电脑连接和无线路由器 将设定连接电脑到无线路由器的LAN口 保证系统自动获得到IP地址和DNS服务器ip 以下 留意 以便防止IP地址或DHCP网络服务器矛
  • 查看linux jvm使用情况,查看jvm内存使用命令

    jmap linux下特有 也是很经常使用的一个命令 java 观察运行中的jvm物理内存的占用状况 linux 参数以下 数据库 heap 打印jvm heap的状况 histo 打印jvm heap的直方图 其输出信息包括类名 对象数量
  • oracle提示 o s-error,【案例】Oracle报错OSD-04016 O/S-Error 使用dd复制数据块恢复数据...

    天萃荷净 运维DBA反映数据库在异常断电导致硬盘IO出现O S Error OS 23 数据错误 循环冗余检查 错误 分析原因为坏块导致 通过dd来复制数据块修复数据库 一台数据库因为异常断电导致硬盘IO出现O S Error OS 23
  • 在vue项目引入天地图,根据经纬度获取具体地址

    1 申请key 天地图地图服务对所有用户开放 使用本组服务之前 需要申请Key 2 引入API 地图API是由JavaScript语言编写的 您在使用之前需要通过