300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > angular6中使用腾讯地图(webServiceAPI)完成搜索(自动补全)拾取坐标的功能

angular6中使用腾讯地图(webServiceAPI)完成搜索(自动补全)拾取坐标的功能

时间:2019-08-17 22:05:54

相关推荐

angular6中使用腾讯地图(webServiceAPI)完成搜索(自动补全)拾取坐标的功能

angular6中使用腾讯地图完成搜索(自动补全)拾取坐标的功能

功能:

1.根据 ip 定位,以此为中心显示地图

2.搜索功能,带自动补全功能,点击搜索之后,在地图上标记搜索结果

3.点击地图,获取经纬度

以前没用过地图,所以查了很多资料,还是走了很多弯路才成功,废话不多说,上干货吧!

1. 注册

1.1 进入腾讯位置服务–注册,成功后登录

1.2 登录成功后,进入 控制台–应用管理–我的应用–创建应用,创建成功后,添加 key,处于功能所需,启用产品就选择 webServiceAPI,然后出现三个选项,这个选择授权IP(这个就踩了个最大的坑,之后详说),添加成功后,就会生成 key

2.在angular6中导入

2.1 在 index.html 中

<script charset="utf-8" src="/api/gljs?v=1.exp&key=LG4BZ-NM26U-QROVN-46VWV-6OGYH-*****"></script>

注意上面的版本使用 1.exp,而不是 2.exp,原因官网上也有写:代表Javascript API GL v1最新版,我们会保证1.x大版本的接口兼容;当时我直接在网上复制的别人的 2.exp,然后一直引入失败

2.2 在要组件的 html 文件中准备容器

<div></div>

2.3 在 ts 文件中初始化地图

//注意:先要声明对象,后面才能使用它declare var TMap: any;declare var $: any;

ngOnInit() {//1. 先根据 ip 定位,获取到经纬度,然后将此位置设置为地图中心let url = https://apis./ws/location/v1/ip let data = key=LG4BZ-NM26U-QROVN-46VWV-6OGYH-*****&output=jsonp//2.最开始直接使用的 angular6 自带的 get 方法来请求,但还是报错,跨域了,然后随大流用的ajax, 使用 dataType=jsonp 解决了,注意参数中的 output=jsonp ,这也是跟着修改的,原本默认值是json$.ajax({type: "get",async: false,url: url,data:data,dataType: "jsonp",success: (res)=>{if(res.status === 0){//请求成功,调用初始化方法this.initMap(res.result.location.lat,res.result.location.lng)}}, error: function(){// console.log(失败);},complete:(result)=>{// console.log(result);}});}

下面是初始化地图的方法:先根据经纬度设置地图中心,然后将地图显示出来,接着对中心进行标记

//地图初始化方法initMap(lat,lng) {//定义地图中心点坐标var center = new TMap.LatLng(lat, lng)//定义map变量,调用 TMap.Map() 构造函数创建地图this.map = new TMap.Map

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。