引入天地图 js

首先到天地图官网获取服务许可key;国家地理信息公共服务平台 天地图

全局引入地图 js 库

在Vue项目的index.html 文件中,全局引入天地图js库

<body><script src="http://api.tianditu.gov.cn/api?v=4.0&tk=申请的key" type="text/javascript"></script>
</body>

这种方法引入的地图 js,会导致项目的每一个组件都会加载该 js,尤其在不需要加载天地图的页面,会造成很大的性能损耗;而在首页不需要天地图时,天地图加载缓慢,会造成很长的白屏时间,因此需要优化一下引入地图 js 的方法;

创建dom元素并插入

在需要引入 js 的页面,创建script元素,设置 src 属性,并插入;这样就会只在该页面中引入天地图 js;

mounted() {let script = document.createElement('script')script.type = 'text/javascript'script.src = 'http://api.tianditu.gov.cn/api?v=4.0&tk=申请的key'document.body.appendChild(script)
},

应用天地图

<template><div id="map"></div>
</template><script>
export default {data() {return {map: {}}},mounted() {this.load();},methods: {load() {const init = new Promise((resolve, reject) => {if(window.T) {console.log('地图初始化成功')resolve(window.T)reject('error')}})init.then(T => {this.map = new T.Map('map');this.map.centerAndZoom(new T.LngLat(116.40769, 39.89945), 12);})},}
}
</script>
<style scoped>
#map {width: 1000px;height: 300px;
}
</style>

添加标注点,点击标注点出现信息窗口

在上述代码基础上添加一个按钮

<el-button type="primary" @click="handleAddPoint">添加标注点</el-button>data() {return {map: {},longitude: 116.403963,latitude: 39.915119}
},methods: {handleAddPoint() {this.map.clearOverLays(); //清空原来的标注点let point = new T.LngLat(this.longitude -= 0.01,this.latitude -= 0.01)let marker = new T.Marker(point)this.map.addOverLay(marker) //添加标注点//点击标注点事件,添加信息窗口let markerInfoWin = new T.InfoWindow("信息窗口");marker.addEventListener('click', function() {marker.openInfoWindow(markerInfoWin);})},
}

地理编码: 根据地址名称进行坐标解析并标注到地图上

在以上代码基础上添加下面内容

<div style="display: flex"><el-input style="width: 300px; margin-right: 10px" v-model="inputLocation" @keyup.enter.native="handleFindLocation"></el-input><el-button type="primary" @click="handleFindLocation">搜索</el-button>
</div>data() {return {map: {},inputLocation: ''}
},handleFindLocation() {let geocoder = new T.Geocoder()let that = thisfunction searchResult(result){if(result.getStatus() == 0){//将地图的中心点变换到输入的地理位置,同时缩放到指定等级that.map.panTo(result.getLocationPoint(), 16);//创建标注对象let marker = new T.Marker(result.getLocationPoint());//向地图上添加标注that.map.addOverLay(marker);}else{alert(result.getMsg());}        }geocoder.getPoint(this.inputLocation, searchResult);
},

Vue项目中应用天地图相关推荐

  1. Vue项目中引入天地图

    在Vue的静态资源目录下的index.html中引入天地图的底图天地图API: 在引入了Vue项目以后及将需要用到的功能从window对象下赋值给当前项目的Data; <script type= ...

  2. vue项目中使用天地图

    天地图使用示例 一.申请key 二.代码部分 1.静态引入 2.创建容器 3.创建基础地图 4.创建卫星图图层 5.创建点位遮盖物 6.点位弹窗展示 一.申请key 链接: http://lbs.ti ...

  3. canvas java 上传截图_在Vue项目中使用html2canvas生成页面截图并上传

    使用方法 项目中引入 npm install html2canvas html代码 //html代码 js代码 // 引入html2canvas import html2canvas from 'ht ...

  4. 如何在Vue项目中使用vw实现移动端适配(转)

    有关于移动端的适配布局一直以来都是众说纷纭,对应的解决方案也是有很多种.在<使用Flexible实现手淘H5页面的终端适配>提出了Flexible的布局方案,随着viewport单位越来越 ...

  5. 实战:vue项目中导入swiper插件

    版本选择 swiper是个常用的插件,现在已经迭代到了第四代:swiper4. 常用的版本是swiper3和swiper4,我选择的是swiper3. 安装 安装swiper3的最新版本3.4.2: ...

  6. vue ajax highcharts,在vue项目中引入highcharts图表的方法(详解)

    npm进行highchars的导入,导入完成后就可以进行highchars的可视化组件开发了 npm install highcharts --save 1.components目录下新建一个char ...

  7. VUE项目中使用this.$forceUpdate();解决页面v-for中修改item属性值后页面v-if不改变的问题

    VUE项目中使用this.$forceUpdate();解决页面v-for中修改item属性值后页面v-if不改变的问题 参考文章: (1)VUE项目中使用this.$forceUpdate();解决 ...

  8. 在vue项目中:统一封装 Axios 接口与异常处理

    在vue项目中:统一封装 Axios 接口与异常处理 参考文章: (1)在vue项目中:统一封装 Axios 接口与异常处理 (2)https://www.cnblogs.com/itgezhu/p/ ...

  9. vue php跨域,Vue 项目中遇到的跨域问题及解决方法(后台php)

    问题描述 前端 vue 框架,后台 php,百度跨域问题后台加这段代码 header("Access-Control-Allow-Origin: *"); 加了之后报这个错: Th ...

最新文章

  1. MySQL 学习笔记(1)— 创建/连接/选择/显示数据库(表) 查询单列(多列/所有列)/查询返回特定的行数 各种排序(单列/多列/降序/组合排序) 过滤数据
  2. c++11 线程:让你的多线程任务更轻松
  3. Yii学习笔记:利用setFlash和runController打造个性化的提示信息页面
  4. android之多媒体篇(一)
  5. 浅析透雾监控镜头的四大透雾技术
  6. Java注解学习一:注解术语
  7. 流媒体服务器性能测试
  8. 群体智能优化算法之和声搜索(Harmony Search,HS)-附源码
  9. [SQLite]www.sqlite.org官网.NET最新版本所有内容下载
  10. 机器学习教程之语义分割入门教程
  11. NBA比赛数据table表格
  12. 第044篇:VBA之三种单元格引用小结(Range、Cells、[单元格区域])
  13. IE的Kiosk模式
  14. 51驱动DS1302制作电子时钟1602显示
  15. 多重网格法(multigrid)求解1d泊松方程--python
  16. 罗德里格斯旋转公式(Rodrigues‘ rotation formula)推导
  17. pyinstxtractor.py 的改进 - 反编译pyinstaller生成exe的工具
  18. Python数据挖掘-NLTK文本分析+jieba中文文本挖掘
  19. java实现弹幕效果_css3实现蒙版弹幕功能
  20. 无向图的Depth-first search和Breadth-first Search

热门文章

  1. 从泛孪生到小场景,数字孪生如何破“皮”
  2. 揭秘美国云计算 大企业是第一推动力
  3. 文旅景区夜游该如何设计项目
  4. Python之统计作图函数讲解(三)
  5. Open vSwitch + VLAN 组网
  6. Cocos Creator之H5版Web版上传头像
  7. Autodesk Genuine Service2020删除
  8. 动力节点-Servlet-JSP课堂笔记
  9. 微服务架构下的服务调用与鉴权——某保险公司微服务平台实施案例分享
  10. DICOM文件格式剖析(初识)