概述
最近项目需要用到天地图,要引入到Vue项目中,鉴于官网没有相关的说明文档,在这里我记录一下我所使用的引入方法,可能不是很好,希望有更好的方法大佬能教一下我。
- 第一步,在Vue项目文件夹public下的index.html入口文件中加入天地图API JS文件。
引入天地图JavaScript API文件
<script src="http://api.tianditu.gov.cn/api?v=4.0&tk=您的密钥" type="text/javascript"></script>
- 第二步,先创建一个Vue中初始化的天地图的JS文件,用于指向天地图类。
文件命名为 MapInit.js
写入初始化代码
// 初始化地图
export default {
init() {
return new Promise((resolve, reject) => {
// 如果已加载直接返回
if (window.T) {
console.log('地图脚本初始化成功...')
resolve(window.T)
reject('error')
}
})
}
}
- 第三步,在单页文件中引入地图初始化封装好的文件
import MapInit from '../../components/show/MapInit.js';
- 引入之后可在methods中的方法函数直接调用,封装方法函数代码如下:
roadMap() {
MapInit.init().then(
T => {
this.T = T;
const imageURL = "http://t0.tianditu.gov.cn/img_c/wmts?tk=您的密钥";
const lay = new T.TileLayer(imageURL, { minZoom: 1, maxZoom: 18 });
const config = { layers: [lay], name: 'TMAP_SATELLITE_MAP' };
this.map = new T.Map('yzMap', config);
const ctrl = new T.Control.MapType();
this.map.addControl(ctrl);
this.map.centerAndZoom(new T.LngLat(116.401003, 39.903117), 12);
}).catch()
}
记得在视图层写入div盒子哦,<div id="yzMap"></div>
#yzMap {
width: 100vw;
height: 100%;
position: absolute;
}
还可以使用这样引入,定义T
const T = require("T");
当然你也可以直接在每次新建实例T的时候在前面加上window,让new 指向的是window层的天地图,这样做就不需要封装了。代码如下:
this.map = new window.T.Map('mapDiv', {
projection: 'EPSG:4326'
});
this.map.centerAndZoom(new T.LngLat(116.40769, 39.89945), zoom);
以上就是天地图在Vue中的使用方法,请大佬们多多指教。
最后
以上就是飘逸小伙为你收集整理的Vue项目使用天地图的方法(Vue引入天地图,创建地图实例)的全部内容,希望文章能够帮你解决Vue项目使用天地图的方法(Vue引入天地图,创建地图实例)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复