关于vue2.x中腾讯地图的引入及一丢丢感想

已经大概有两个月没写日志了,因为试用期呗,就很少写日志了。今天难得空(忙中偷闲),就写一下这两天开发中关于vue2中引用腾讯地图的问题。

先写一下起因吧(不想看可以跳过),就是在某个申请功能上,插入腾讯地图来选点,同时获得经纬度。其实起初并没有要插入地图的想法。因为获取位置嘛,直接使用bom操作就好了

navigator.geolocation.getCurrentPosition

起初是打算直接拿到经纬来调用接口拿到位置,结果后来接口迟迟下不来,遂决定插入第三方组件,在商榷之后一致决定使用腾讯地图(然而说好之后后来还是出现了经纬标准不一致的问题)。

那么接下来我将遇到的问题大致分为以下三点(此处就不再对密钥获取进行赘述,获取详情可以去官网那边看)

一、腾讯地图组件的引用及问题

https://lbs.qq.com/webApi/component/componentGuide/componentMarker

先放上官方网址,用法可以说是相当简单了,用iframe引入就行,没有多余操作。界面也相当简洁明了,这里唯一的问题,就是关于当前经纬获取的问题。我在项目引用时,一直无法直接获取到当前定位。实在没办法,我这里调用原生的方法获取经纬后,以传参的方式定位(参数coord),但这就出现了另一个问题,组件中有一个重定位的功能,重定位之后并不会回到我们传入的经纬,而是当前默认城市的中心。这就很恶心了,我上网查了很久,无法解决,最后痛定思痛觉得使用Javascript API GL构建

二、腾讯地图Javascript API GL构建自定义地图

废话不多说,直接开搞。

首先vue玩家需要在index.html中引入js(key就是密钥)

<script src="https://map.qq.com/api/gljs?v=1.exp&key="></script>

然后就是重点,根据所需定义类

好些人估计直接就是以js的写法直接let xx了,虽然并没有什么问题,但建议还是在data中初始化,然后构建。

大概就是这样写

p.s.这里附上官方给出的所有可使用类https://lbs.qq.com/webApi/javascriptGL/glDoc/glDocIndex

然后根据官网的描述,我们这里可以先试着初始化基础地图

const _this = this;

this.center = new TMap.LatLng(this.latitude, this.longitude);

this.demoMap = new TMap.Map(document.getElementById("demo"), {

        center: _this.center, //设置地图中心点坐标

        zoom: xx, //设置地图缩放级别

        pitch: xx, //设置俯仰角

        rotation: xx, //设置地图旋转角度

      });

这里说明以下,若是开启了代码查验的话,可能会报错,写成window.TMap就行

初始化地图以后,我们可以很简洁的看见地图已经构建在我们的视图页面demo的div里了(麻烦页面自己写谢谢),可以看到,腾讯地图的页面还是非常好看简介的(就是有点卡)

这里再举个例吧,服务类库的初始化

      this.suggest = new TMap.service.Suggestion({

        // 新建一个关键字输入提示类

        pageSize: xx, // 返回结果每页条目数

        region: "xx, // 限制城市范围

        regionFix: true, // 搜索无结果时是否固定在当前城市

      });

           调用

          this.suggest

          .getSuggestions({

            keyword: ‘’,

            location: ‘’,

          })

这样应该就很明确了,我们通过构建类,来调取类的方法,从而实现地图的各个功能。并且地图的ui是可以自己来写的,这样比起组件的调用来说,要更加的便捷。

三、腾讯地图api的一些要点问题  写后感?

感觉写的有点简单了,不过其实是真的很简单。。大概当时写的时候觉得问题很大,但搞定以后再想觉得那是真的easy,大概人都是这样吧。这里本来想写一下当时写的时候出现的诸多问题,但过了两三天,再回想又觉得那只是我对基础只是的不牢靠,所以左思右想决定放弃。

其实就还是那个多查多看,查百度查论坛,看文档看帖子,多看就送会有的。就是这样~

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容