Vue中使用天地图

news2024/11/25 4:52:30

Vue项目引入天地图

在vue的静态资源目录下的index.html中引入天地图的底图,开发天地图源码路径:天地图API

方法一:加载天地图,引用:public/index.html

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

方法二:下载4.0天地图js,使用本地js文件实现天地图,加快天地图绘画和解决天地图加载卡顿(不做演示)

实现天地图效果,注释引用:public/index.html下的天地图

js文件目录放:components/tianditu/tianditu.api.js

实现天地图页面,导入天地图js,下载路径:tianditu.js天地图本地缓存4.0下载_js天地图,天地图js文件-Javascript文档类资源-CSDN下载

一、介绍:天地图JavaScript API 4.0是一套符合HTML5.0规范的的应用程序接口,以HTML 5.0的形式提供各种地图服务和数据,如地图展示、标注、定位等。为开发者提供了快速调用天地图在线地理信息服务的通道,包括快速创建地图、调用地图、地名搜索以及在地图上添加覆盖物等。支持PC端和移动端基于浏览器的地图应用开发,支持主流的HTML4.0和HTML5.0特性的地图开发。二、实现步骤:

  1. 创建地图容器元素;
  2. 引入天地图,tk:在官网申请;
  3. 初始化地图对象;
  4. 设置显示地图的中心点和级别;
  5. 创建地图类型控件;
  6. 将控件添加到地图,一个控件实例只能向地图中添加一次;
  7. 创建坐标,通常是调取接口获得经纬度;
  8. 创建覆盖使用的图标;
  9. 创建在该坐标上的一个图像标注实例;
  10. 将覆盖物添加到地图中,一个覆盖物实例只能向地图中添加一次;

1.创建地图容器元素

2.引入天地图,tk:在官网申请;

2.1index.html 中引入

2.2获取天地图key

用户系统
创建新应用 ===> 填写信息(注意应用类型选择服务器端) ===> 得到key

 3.初始化地图对象

注册天地图

地图的最基本使用实例文件

<template>
  <!--创建地图容器元素-->
  <div id="tdtMapDivID" class="divTdtMap"></div>
</template>
<script>
  export default {
    name: 'TdtMap',
    data() {
      return {
        tdtMap: {}
      };
    },
    created() { },
    mounted() {
      // 初始化天地图

      this.initTdtMap();
    },
    watch: {},
    methods: {
      // 初始化天地图
      initTdtMap() {
        this.tdtMap = new T.Map(this.tdtMapDivID);
        //设置显示地图的中心点和级别
        this.tdtMap.centerAndZoom(new T.LngLat(116.40769, 39.89945), 12);
        // 5.创建地图类型控件
        const ctrl = new T.Control.MapType([{
          title: '地图',
          icon: 'http://api.tianditu.gov.cn/v4.0/image/map/maptype/vector.png',                     //地图控件上所要显示的图层图标(默认图标大小80x80)
          layer: window.TMAP_NORMAL_MAP
        }, {
          title: '卫星',
          icon: 'http://api.tianditu.gov.cn/v4.0/image/map/maptype/satellite.png',
          layer: window.TMAP_SATELLITE_MAP
        }]);
        // 6.将控件添加到地图,一个控件实例只能向地图中添加一次。
        this.tdtMap.addControl(ctrl);
        // 7.创建坐标,通常是调取接口获得经纬度
        const point = new T.LngLat(112.9388, 28.2280);
        // 8.创建覆盖使用的图标
        const icon = new T.Icon({
          iconUrl: '../marker-red.png',
          iconSize: new T.Point(27, 27),
          iconAnchor: new T.Point(10, 25)
        });
        // 9. 创建在该坐标上的一个图像标注实例
        const marker = new T.Marker(point, icon);
        // 10.将覆盖物添加到地图中,一个覆盖物实例只能向地图中添加一次
        this.tdtMap.addOverLay(marker);

      }
    }
  };
</script>

<style scoped>
  .divTdtMap {
    margin: 0px;
    padding: 0px;
    width: 100%;
    height: 80vh;
    z-index: 0;
  }
</style>

这样就可以了,不过仅仅是地图的展示,其它的坐标标志、信息窗体等功能就可以结合天地图官方实例去实现了

附API总结:

设置地图中心点、缩放级别:  map.centerAndZoom(new T.LngLat(lng, lat), zoom);

var map;

var zoom = 12;

//初始化地图对象

map = new T.Map("mapDiv");

    //设置显示地图的中心点和级别

map.centerAndZoom(new T.LngLat(120.19551,30.25082), zoom);

放大地图:map.zoomIn()//类似双击地图
缩小地图:map.zoomOut()//类似双击地图

指定缩放几倍:map.setZoom(14);

地图平移:map.panTo(new T.LngLat(116.64899, 40.12948));

var bs = map.getBounds();   //获取可视区域

var bssw = bs.getSouthWest();   //可视区域左下角

var bsne = bs.getNorthEast();   //可视区域右上角
设置是否允许鼠标双击放大地图:

map.enableDoubleClickZoom();//允许双击地图放大

map.disableDoubleClickZoom();//禁止双击地图放大

设置是否允许鼠标滚轮缩放地图:

map.enableScrollWheelZoom();//允许鼠标滚轮缩放地图

map.disableScrollWheelZoom();//禁止鼠标滚轮缩放地图

设置是否允许鼠标惯性拖拽地图

map.enableInertia();//允许鼠标地图惯性拖拽

map.disableInertia()//禁止鼠标地图惯性拖拽

设置是否允许键盘操作地图

map.enableKeyboard();//允许键盘操作地图

map.disableKeyboard()//禁止键盘操作地图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/346290.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

来来来,手摸手写一个hook

hello&#xff0c;这里是潇晨&#xff0c;今天就带着大家一起来手写一个迷你版的hooks&#xff0c;方便大家理解hook在源码中的运行机制&#xff0c;配有图解&#xff0c;保姆级的教程&#xff0c;只求同学一个小小的&#x1f44d;&#xff0c;&#x1f436;。 第一步&#xf…

【软件测试】团队测试技术体现,遇到不可复现bug处理方式......

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 测试技术带来的是PP…

ThingsBoard-规则链-check alarm status

1、概述 从今天开始,专门讲解ThingsBoard的规则链,每一个节点都会详细讲解,并且配套案例,让大家都能理解,喜欢请点个关注。今天讲的是筛选器的第第一个节点【check alarm status】,意思是检测告警状态。 2、节点理解 2.1、概述 【check alarm status】节点如图所示:…

解立方根-蓝桥杯

题目 分析 主要是运用二分法使复杂度减低。 代码 #include<iostream> #include<iomanip> #include<cmath> using namespace std; #define double long double const double eps 1e-12; int main() {int T 1;cin >> T;while (T--){double n;cin &g…

LMS 最佳实践:学习管理系统中的知识管理!

企业需要在整个组织中收集、存储和传播知识。我们被信息淹没了&#xff0c;因此应该充分利用学习管理系统&#xff08;LMS&#xff09;来组织业务资产并支持知识管理&#xff08;KM&#xff09;战略。LMS 不仅仅是一个捕获电子学习单元和多项选择题的系统。它很可能没有充分发挥…

代码随想录算法训练营第二十八天 | 491.递增子序列,46.全排列,47.全排列 II

一、参考资料递增子序列题目链接/文章讲解&#xff1a;https://programmercarl.com/0491.%E9%80%92%E5%A2%9E%E5%AD%90%E5%BA%8F%E5%88%97.html 视频讲解&#xff1a;https://www.bilibili.com/video/BV1EG4y1h78v 全排列题目链接/文章讲解&#xff1a;https://programmercarl.…

从零学架构-基础部分

一、架构的基础将学习的架构设计知识总结出来&#xff0c;分享给大家。1.1什么是架构架构和框架是什么关系&#xff1f;有什么区别?Linux有架构&#xff0c;MySQL有架构&#xff0c;JVM也有架构&#xff0c;应该关注哪个架构&#xff1f;金融有架构&#xff0c;支付有架构&…

【排序算法】数据结构排序详解

前言&#xff1a; 今天我们将讲解我们数据结构初阶的最后一部分知识的学习&#xff0c;也是最为“炸裂”的知识---------排序算法的讲解&#xff01;&#xff01;&#xff01;&#xff01; 目录1.排序的概念及其运用1.1排序的概念1.2排序运用2.常见排序算法的实现2.1 插入排序2…

Java 基础面试题——集合

目录1.Java 有哪些常用容器&#xff08;集合&#xff09;&#xff1f;2.Collection 和 Collections 有什么区别&#xff1f;3.List、Set、Map 之间的区别是什么&#xff1f;4.HashMap 的长度为什么是 2 的 N 次方&#xff1f;源码中是如何保证的&#xff1f;5.HashMap 和 Hasht…

ChatGPT 下一步,分配对象脱单有望

ChatGPT 火了&#xff0c;上一次这么热闹还是上一次……那时最紧俏的概念叫元宇宙。 混沌时期&#xff0c;鱼龙混杂。资本市场靠新故事造梦&#xff0c;科技巨头争相加入竞赛&#xff0c;也有脑子活泛的已经利用它的巨大热度搞上了小钱钱——活跃在某宝某鱼上&#xff0c;贩卖…

2023版Java面试汇总!全面对标阿里P7,学完,化身offer收割机

最近内卷严重&#xff0c;各种跳槽裁员&#xff0c;本文主要是为了帮大家快速回顾Java中知识点&#xff0c;这套&#xff08;详细笔记/面试题&#xff09;它几乎涵盖了所有的Java技术栈面试题和答案&#xff0c;相信可以帮助大家在金三银四&#xff0c;最短的时间内用作学习和面…

基于微信小程序的优选驾考小程序

文末联系获取源码 开发语言&#xff1a;Java 框架&#xff1a;ssm JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7/8.0 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.3.9 浏览器…

SpringBoot查询接口传入参数为List,XML的写法

✉️ 查询业务 ➿ 目前互联网项目的诸多业务中数查询业务居多&#xff0c;而查询业务中又数展示类接口、报表类接口是我们接触最多的查询类接口。在实际项目中&#xff0c;不是全局查询数据就做完了业务&#xff0c;这样的需求也没有意义。条件查询因此作为最普遍的查询业务&am…

软件测试之优秀的产品质量评估模型的特征

产品质量评估中的几个场景&#xff1a; 场景1&#xff1a;项目计划的时间到了&#xff0c;就发布产品。 场景2&#xff1a;将缺陷修复率作为产品的质量目标。产品必须达到一定的缺陷修复率&#xff0c;才能发布。 场景3&#xff1a;我们为产品建立了很多指标来作为质量目标&…

报表开发工具FastReport .Net 如何在移动端生成Web报表应用?

FastReport .Net是一款全功能的Windows Forms、ASP.NET和MVC报表分析解决方案&#xff0c;使用FastReport .NET可以创建独立于应用程序的.NET报表&#xff0c;同时FastReport .Net支持中文、英语等14种语言&#xff0c;可以让你的产品保证真正的国际性。专业版和企业版包括Fast…

软件测试1-测试就是找茬游戏

软件测试是找茬游戏以前有一个很火的游戏叫《大家来找茬》&#xff0c;我玩这个游戏很厉害&#xff0c;在这个游戏中&#xff0c;两幅图中有几个不一样的地方&#xff0c;有些地方很明显&#xff0c;一眼就能看到&#xff0c;有的地方隐藏得比较深&#xff0c;要仔细看才能看清…

2PC(两阶段提交)方案

XA方案2PC的传统方案是在数据库层面实现的&#xff0c;如Oracle、MySQL都支持2PC协议&#xff0c;为了统一标准减少行业内不必要的对接成本&#xff0c;需要制定标准化的处理模型及接口标准&#xff0c;国际开放标准组织Open Group定义了分布式事务处理模型DTP&#xff08;Dist…

“遥感+”蓝碳储量估算、红树林信息提取

大气温室气体浓度不断增加&#xff0c;导致气候变暖加剧&#xff0c;随之会引发一系列气象、生态和环境灾害。如何降低温室气体浓度和应对气候变化已成为全球关注的焦点。海洋是地球上最大的“碳库”,“蓝碳”即海洋活动以及海洋生物&#xff08;特别是红树林、盐沼和海草&…

Fluent Python 笔记 第 13 章 正确重载运算符

运算符重载的作用是让用户定义的对象使用中缀运算符(如 和 |)或一元运算符(如 - 和 ~)。说得宽泛一些&#xff0c;在 Python 中&#xff0c;函数调用(())、属性访问(.)和元素访问 / 切片 ([])也是运算符&#xff0c;不过本章只讨论一元运算符和中缀运算符。 13.1 运算符重载基…

Tomcat安装、IDEA发布web项目及通过浏览器访问servlet程序

tomcat安装 在官网上下载tomcat安装包&#xff0c;推荐下载8.5版本 解压安装到任意磁盘&#xff0c;记住安装时的目录 在系统里找到高级系统设置——高级——环境变量——系统变量里的path——编辑——新建&#xff0c;内容填写tomcat中的bin路径的绝对路径。 在bin文件夹找…