Vue中使用天地图

这篇具有很好参考价值的文章主要介绍了Vue中使用天地图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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 中引入

Vue中使用天地图

2.2获取天地图key

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

 3.初始化地图对象

注册天地图

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

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

      this.initTdtMap();
    },
    watch: {},
    methods: {
      // 初始化天地图
      initTdtMap() {
        let T = window.T;
        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>

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

Vue中使用天地图

附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()//禁止键盘操作地图

一.准备页面

根据HTML 标准,每一份HTML 文档都应该声明正确的文档类型,我们建议您使用最新的符合HTML5 规范的文档声明:

<!DOCTYPE html>

二、引入天地图JavaScript API文件

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

三、创建地图容器元素

地图需要一个HTML元素作为容器,这样才能展现到页面上。这里我们创建了一个div元素。将div元素的宽和高分别设置为100%,使其充满整个屏幕,或者您也可以计算浏览器窗口的大小并进行设置。

四、创建地图实例

//初始化地图对象
​​​​​​​var map=new T.Map('mapDiv');

五、确定经纬度坐标

var lnglat = new T.LngLat(116.40969,39.89945)

这里我们使用T命名空间下的T.Lnglat类来创建一个坐标点。T.Lnglat类描述了一个地理坐标点,其中116.40969表示经度,39.89945表示纬度。

六、地图初始化

map.centerAndZoom(lnglat,12);

在创建地图实例后,我们需要对其进行初始化,map.centerAndZoom方法要求设置中心点坐标和地图级别。 地图必须经过初始化才可以执行其他操作。





 

七、天地图API及服务接口调用418错误

几个月前写的天地图API调用,今天发布一下竟然返回“418,抱歉,您的请求被拦截,因为您的请求疑似攻击行为!”,以为是ip被黑名单了,换了ip也不行,去官网才发现自2019年1月1日起地图API及服务接口调用都需要获得开发授权,授权的方法也很简单,地址:

升级向导

1.注册用户

2.申请成为天地图开发者
我选择申请个人开发,不需要审核,立即生效

3.获取服务许可(Key密钥)
申请新应用,也是立即生效

4.使用示例

JavaScript API调用

以天地图JavaScript API 4.0为例,您只要在引用的API 地址后增加授权信息即可,其余使用方法不变。例如:文章来源地址https://www.toymoban.com/news/detail-429168.html

http://api.tianditu.gov.cn/api?v=4.0&tk=您的密钥

到了这里,关于Vue中使用天地图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringBoot访问静态资源和jar外部静态资源,部署前端打包后的vue项目放入静态资源里

    记录一下使用SpringBoot访问静态资源和SpringBoot打包之后的jar外部静态资源,在开发的时候,一般选择前后端分离的方式,前端使用vue 后端使用SpringBoot,通常情况下,部署都是前端通过http去请求后端资源,涉及到http请求,那么肯定需要资源的目标地址IP,一般云端部署给到I

    2024年02月09日
    浏览(75)
  • vue项目静态文件资源下载

    业务场景:页面有一个导入功能,需要一个模板文件供下载,文件放在本地。 对于 Vue 3 + Vite 项目,使用 require 方法来导入模块是不被支持的。require 是 CommonJS 规范中用于模块导入的方法,在 Webpack 等构建工具中常用。 Vite 使用 ES 模块规范,并且支持动态导入(Dynamic Import)

    2024年02月11日
    浏览(42)
  • vue项目引入百度地图BMapGL鼠标绘制和BMap辅助工具

    目录 引言 1、引用百度地图 2、在项目中使用百度地图 2-1、页面结构部分 2-2、js逻辑部分 3-1、页面结构部分 Vue.js 是一个用于构建用户界面的渐进式 JavaScript 框架。它旨在平易近人、灵活且可扩展,重点是声明式渲染和基于组件的架构。Vue 的反应性和可组合性使其成为开发复

    2024年01月16日
    浏览(38)
  • vue中引入并使用高德地图

    1.进入高德开放平台 2.点击: 开发支持---------地图JS AP---------JSAPI的加载 3.选择 按NPM方式使用loader 4.定义一个有宽高的div,书写以下代码: 先放效果图,左下角是可供选择的鼠标样式 1.点击示例中心---------地图属性-------下划找到 设置鼠标样式 2.点进去后有示例代码 3.这是之前

    2024年02月03日
    浏览(56)
  • vue项目 前端加前缀(包括页面及静态资源)

    具体步骤 (1)更改router模式,添加前缀 位置:router文件夹下面的index.js (2)实现静态文件加前缀 位置:vue.config.js 静态资源css,js之类的的src或href引用位置会加上这个前缀,会体现在打包后的index.html文件内容 例如 (3)nignx配置

    2024年02月04日
    浏览(55)
  • vue项目中下载静态资源里的pdf文件

    1.把文件放在项目目录src/assets文件下 2.在项目是用a标签下载 以上项目运行会报错 Failed to compile. ./src/assets/download.pdf 1:0 Module parse failed: Unexpected token (1:0) You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#load

    2024年02月20日
    浏览(46)
  • 如何再vue项目中使用cdn(以使用天地图得cdn获取当前位置为例)

    http://lbs.tianditu.gov.cn/api/js4.0/examples.html 在其中可以了解天地图的基本使用教程 但其中的教程均为h5引入cdn的方式 以h5定位为例来改成vue项目 源码: 如

    2024年02月10日
    浏览(54)
  • vue项目打包,解决静态资源无法加载和路由加载无效(404)问题

    打包后的项目静态资源无法使用,导致页面空白 静态资源无法使用,那就说明项目打包后,图片和其他静态资源文件相对路径不对,此时找到config里面的index.js,在build模块下加入 assetsPublicPath: \\\'./\\\',  如下图所示,或者是在打包完的dist文件夹中找里面的.js文件,将其中的\\\'/\\\'替

    2024年02月08日
    浏览(57)
  • 前端系列——vue2+高德地图web端开发(使用和引入)

    本人非专业前端开发,其实是搞后端的,但是正好接了一个项目需要我负责全栈,所以写了这个系列的文章,如果以后项目可以开源我会放出来的 本次我们要实现的是vue2+高德地图的网页开发 本文需要大家系统学过vue以及初步了解高德地图的情况下理解起来会十分省力 高德

    2024年01月16日
    浏览(48)
  • Vite静态资源处理——动态引入图片

    服务时引入一个静态资源会返回解析后的公共路径: 导入既可以使用绝对公共路径(基于开发期间的项目根路径),也可以使用相对路径。 vite 生产构建后文件名会哈希,如图: import.meta.url 是一个 ESM 的原生功能,会暴露当前模块的 URL。将它与原生的 URL 构造器 组合使用,

    2024年02月10日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包