uniapp(vue通用)整合腾讯位置服务SDK---多平台小程序通用

代码哈士奇 等级 872 0 0

专属邀请链接 这里进入腾讯位置服务官网: https://lbs.qq.com?lbs_invite=G9MRFLG 项目开始于2021-01-27 晚8

uniapp模板地址 https://ext.dcloud.net.cn/plugin?id=4067 github地址 https://github.com/dmhsq/uniapp-txwzsdk-demo 腾讯位置服务牛逼 腾讯位置服务文档小程序SDK :https://lbs.qq.com/miniProgram/jsSdk/jsSdkGuide/jsSdkOverview

案例一:实现 位置共享 https://blog.csdn.net/qq_42027681/article/details/113428833 案例二:实现 运动轨迹记录 https://blog.csdn.net/qq_42027681/article/details/113429566 在线体验 uniapp(vue通用)整合腾讯位置服务SDK---多平台小程序通用

虽然说官方文档写的是微信小程序,但是只要是Js其它平台也应该通用 试了下字节小程序可以用

在阅读此文章之前 需要了解 map组件的 部分属性

属性 类型 作用
longitude Number 经度
latitude Number 纬度
scale Number 缩放级别
markers Array 标记的点
polyline Array 地图轨迹
@regionchange EventHandle 视野发生变化时触发
@tap EventHandle 点击地图触发的事件

@TOC

注册位置服务账号

只有注册了账号才能使用SDK服务 注册地址 https://lbs.qq.com?lbs_invite=G9MRFLG

uniapp(vue通用)整合腾讯位置服务SDK---多平台小程序通用

注册完毕取控制台新建应用 开启Webservice服务

引入SDK文件

官网首页 https://lbs.qq.com?lbs_invite=G9MRFLG 可以去官网下载 https://lbs.qq.com/miniProgram/jsSdk/jsSdkGuide/jsSdkOverview 下载地址为 https://mapapi.qq.com/web/miniprogram/JSSDK/qqmap-wx-jssdk1.2.zip 根目录下添加 common 文件夹 uniapp(vue通用)整合腾讯位置服务SDK---多平台小程序通用

实例化核心功能类

引入核心类

根据自己文件路径修改路径

var QQMapWX = require('../../common/qqmap-wx-jssdk.js')

uniapp(vue通用)整合腾讯位置服务SDK---多平台小程序通用

实例化

var app = new QQMapWX({
    key: '腾讯位置服务控制台获取'
})

腾讯位置服务控制台获取 key uniapp(vue通用)整合腾讯位置服务SDK---多平台小程序通用

功能接入

官网首页 https://lbs.qq.com?lbs_invite=G9MRFLG 说明 : 详细接入可选参数和返回参数 请移步官网 https://lbs.qq.com/miniProgram/jsSdk/jsSdkGuide/jsSdkOverview

接入地点搜索

app.search({
    //from参数不填默认当前地址//fromPs, 格式为 fromPs:{longitude: num,latitude: num}
    keyword: keys, //关键词
    locationto: youP, //格式为 youP: `latitude,longitude` 字符串 比如: "33.643206,114.851074" 或者对象格式{latitude:xxx,longitude:xxx}
    success: res=>{
        console.log(res)
    }
})

uniapp(vue通用)整合腾讯位置服务SDK---多平台小程序通用

uniapp(vue通用)整合腾讯位置服务SDK---多平台小程序通用 属性 | 类型 | 作用 |
-------- | ----- |-------- longitude | Number | 地点经度 latitude |Number | 地点纬度 title |Str | 地点名称 polygon | Array| 地点形状 cricle |Array | 圆属性 callout | Array | 点击标记的显示属性



关键词输入提醒

app.getSuggestion({
    //from参数不填默认当前地址
    keyword: keys,: //关键词 
    region: city, //可不选,限制搜索城市
    success: res=>{
        console.log(res.data)
    }
})

uniapp(vue通用)整合腾讯位置服务SDK---多平台小程序通用

属性 类型 作用
location.lng Number 地点经度
location.lat Number 地点纬度
title Str 地点名称
id Str 地点id
address Str 详细地址
category Str 分类
province Str
city Str
district Str 区县



逆地址解析(坐标转地址)

demo.reverseGeocoder({
    location: fromPs, //格式为 `latitude,longitude` 字符串 比如: "33.643206,114.851074" 或者对象格式{latitude:xxx,longitude:xxx}
    success: function(res) {
        console.log(res.result)
    }
})

uniapp(vue通用)整合腾讯位置服务SDK---多平台小程序通用 属性 | 类型 | 作用 |
-------- | ----- |-------- location.lng | Number | 地点经度 location.lat |Number | 地点纬度 title |Str | 地点名称 formatted_addresses.rough |Str| 详细位置 address |Str | 详细地址 category | Str | 分类 address_component.nation|Str | 国家地区 address_component.province|Str | 省 address_component.city|Str | 市 address_component.district|Str | 区县 address_component.street|Str | 街道 address_component.street_number|Str | 门牌号 address_reference.town|Str | 乡镇 address_reference.landmark_l2|Str | 村落



地址解析(地址转坐标)

demo.geocoder({
    address: address,//地址
    success: function(res) {
    console.log(res)
        vm.doOne(res.result)
    }
})
属性 类型 作用
location.lng Number 地点经度
location.lat Number 地点纬度
title Str 地点名称
formatted_addresses.rough Str 详细位置
address Str 详细地址
category Str 分类
address_component.nation Str 国家地区
address_component.province Str
address_component.city Str
address_component.district Str 区县
address_component.street Str 街道
address_component.street_number Str 门牌号
ad_info.adcode Str 地址编号
similarity Str 输入地址与解析结果误差(文本相似度)
deviation Str 误差距离
reliability Str 可信度 越大越可信



路线规划


规划路线
app.direction({
    mode: "" , //driving’(驾车)、‘walking’(步行)、‘bicycling’(骑行)、‘transit’(公交),默认:‘driving’
    //from参数不填默认当前地址
    from: fromPs, //格式为 fromPs:  `latitude,longitude` 字符串 比如: "33.643206,114.851074" 或者对象格式{latitude:xxx,longitude:xxx}
    to: toPs, //格式为 toPs:  `latitude,longitude` 字符串 比如: "33.643206,114.851074" 或者对象格式{latitude:xxx,longitude:xxx}
    success: res=>{
        console.log(res.result.routes)
    }
})

uniapp(vue通用)整合腾讯位置服务SDK---多平台小程序通用 属性 | 类型 | 作用 |
-------- | ----- |-------- mode | Str | 出行方式 distance |Number | 距离 duration |Number| 规划的时间(包括路况) polyline | Array| 地点路径



距离计算

demo.calculateDistance({
    from: fromP, //格式为  `latitude,longitude` 字符串 比如: "33.643206,114.851074" 或者对象格式{latitude:xxx,longitude:xxx}
    to: toP, //格式为 : `latitude,longitude` 字符串 比如: "33.643206,114.851074" 或者对象格式{latitude:xxx,longitude:xxx}
    success:res=>{
        console.log(res.result.elements)
    }
})

uniapp(vue通用)整合腾讯位置服务SDK---多平台小程序通用 属性 | 类型 | 作用 |
-------- | ----- |-------- from | Obj | 出发点 to | Obj | 到达点 distance |Number | 距离



获取城市列表

demo.getCityList({
    success: res => {
        console.log(res.result)
    }
})

uniapp(vue通用)整合腾讯位置服务SDK---多平台小程序通用 uniapp(vue通用)整合腾讯位置服务SDK---多平台小程序通用

属性 类型 作用
0/1/2 数组下标 0省级,1市级,2区县级
属性 类型 作用
id Str 城市编号
name Str 城市简称
fullname Str 城市全称
pinyin Array 城市拼音
location.lng Number 地点经度
location.lat Number 地点纬度
cidx Array 下级行政区在下个数组中的下标

cidx说明 比如 北京 cidx[015] 那么在市级数组 他的子行政区下标为0~15的 uniapp(vue通用)整合腾讯位置服务SDK---多平台小程序通用









  大家好,我是代码哈士奇,是一名软件学院网络工程的学生,因为我是“狗”,狗走千里吃肉。想把大学期间学的东西和大家分享,和大家一起进步。但由于水平有限,博客中难免会有一些错误出现,有纰漏之处恳请各位大佬不吝赐教!博客主页:https://blog.csdn.net/qq_42027681。 腾讯云+社区专栏https://cloud.tencent.com/developer/column/90853

未经本人允许,禁止转载

uniapp(vue通用)整合腾讯位置服务SDK---多平台小程序通用


后续会推出

前端:vue入门 vue开发小程序 等 后端: java入门 springboot入门等 服务器:mysql入门 服务器简单指令 云服务器运行项目 一些插件的使用等

大学之道亦在自身,努力学习,热血青春 如果对编程感兴趣可以加入我们的qq群一起交流:974178910

有问题可以下方留言,看到了会回复哦

收藏
评论区

相关推荐

基于Vue实现一个有点意思的拼拼乐小游戏
笔者去年曾写过一个类似的拼拼乐小游戏,技术栈采用自己的Xuery框架和原生javascript实现的,脚手架采用gulp来实现,为了满足对vue的需求,笔者再次使用vue生态将其重构,脚手架采用比较火的vuecli。 前言 为了加深大家对vue的了解和vue项目实战,笔者采用vue生态来重构此项目,方便大家学习和探索。技术栈如下: vuecli4
Vue和微信小程序的区别
_写了vue项目和小程序,发现二者有许多相同之处,在此想总结一下二者的共同点和区别。_一、生命周期先贴两张图: vue生命周期 小程序生命周期相比之下,小程序的钩子函数要简单得多。vue的钩子函数在跳转新页面时,钩子函数都会触发,但是小程序的钩子函数,页面不同的跳转方式,触发的钩子并不一样。 onLoad
uni-app入门教程(8)在uni-app中使用Vue
前言本文主要的主要内容是在uniapp中Vue的用法,具体如下:Vue支持响应式数据操作,可以实现数据和事件的绑定,同时支持this传递;uniapp在Vue实例生命周期的基础上增加了应用生命周期和页面生命周期;实现全局变量的3种方式,即公用模块、挂载Vue.prototype和globalData;Class和Style的动态绑定,包括对象
webpack5手撸vue2脚手架
webpack5手撸vue相信工作个12年的小伙伴们在面试的时候多多少少怕被问到关于webpack方面的知识,本菜鸟最近闲来无事,就尝试了手撸了下vue2的脚手架,第一次发帖实在是没有经验,望海涵。 language JavaScript "name": "vuecliversion2", "version": "1.0.0", "desc
Vite使Vue CLI过时了吗?
![](https://oscimg.oschina.net/oscnet/b9aed6aa-9d14-4fd3-82b8-e1724221ee71.jpg) **文末福利资源更新** Vue生态系统中有一个名为Vite的新构建工具,它的开发服务器比Vue CLI快10-100倍。 这是否意味着Vue CLI已经过时了?在本文中,我将比较这两种构
10分钟阅读一篇关于Vue
![file](https://oscimg.oschina.net/oscnet/up-4f8ccb1755bb73c4ffe6a7ba91253ddc.jpg "file") Vue-cli Vue脚手架的基本用法,vue脚手架用于快速生成vue项目基础架构: 地址: https://cli.vuejs.org/zh/ 使用方式,安装3.x版本
CodeMirror 在线代码编辑器
像百度编辑器插件部分、菜鸟教程示例等高德地图都在使用,这里也记录一下: CodeMirror是一个用于编辑器文本框textarea代码高亮javascript插件......vue 中使用 参见:https://www.npmjs.com/package/vue-codemirrorhttps://blog.csdn.net/oumaharuki/
React面试必问Fiber和Hooks,一次搞定
国内的前端领域,Vue 和 React 是最火的两个框架,要说岗位数量,Vue可能会更多一点。 但如果把公司范围缩小到大厂,或者把范围扩展到全球,那React无疑独占鳌头。 ![](https://oscimg.oschina.net/oscnet/ba57134c-6a7d-47d8-a317-7ad3976a1a77.jpg "2019年
Vue CLI 3搭建vue+vuex 最全分析
一、介绍 ==== Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统。有三个组件: **CLI**:`@vue/cli` 全局安装的 npm 包,提供了终端里的vue命令(如:vue create 、vue serve 、vue ui 等命令) **CLI 服务**:`@vue/cli-service`是一个开发环境依赖。构建于 [we
Vue keep
![](https://oscimg.oschina.net/oscnet/aa325a6987c8d4a548052ff083ea779a6f5.jpg) 作者:悠扬小Q https://segmentfault.com/a/1190000010546663 关注Vue中文社区,每日精选好文 在搭建
Vue 仿钉钉流程图(流程节点绘制 vue+Ant【如果用其他UI库需要替换几个组件】 附 demo)
Vue 仿钉钉流程图(流程节点绘制 vue+Ant Design of Vue) ======================================== #### 仿钉钉流程图 Api包括:一维数组传参,获取单节点数据,返回所有节点组成的一位数组 生成每个节点的父节点Id集合 很多公司后台管理系统都需要画流程图,功能大同小异,所以,仿照钉钉管理
Vue 全家桶
vue全家桶。 使用过vue的程序员一般这样评价它,“vue.js兼具angular.js和react.js的优点”。Vue.js 是一个JavaScript MVVM(Model-View-ViewModel)库,用于渐近式构建用户界面。它以数据驱动和组件化思想构建,采用自底向上增量开发的设计思想。相比Angular.js,Vue.js API更加简洁;
Vue 开发必须知道的 36 个技巧
![](https://oscimg.oschina.net/oscnet/b77f0c050deecad634f32cd1bb74d303512.jpg) 作者: 火狼 https://segmentfault.com/a/1190000020620972 关注Vue中文社区,每日精选好文 前言 ==
uniapp引入vue
首先目录结构是这样的 ![目录](https://oscimg.oschina.net/oscnet/up-c38df71b7be4ebcdafdc248216aa3f69e64.png "目录") > lib文件夹里面存放四个js文件,ch(存放中文语言)、en(存放英文语言)、index(设置语言)、vue-i18n(vue-i18n插件);同时在m
vue 中的input输入框type=number时一个缺陷
本来是在vue里发现获取不到 input\[ type="number"\]的值,就是输入两个小数点的数值,比如1.1.1,以为是vue的错误,然而不是,vue只做了数字处理 不明白为什么获取不到值还让输入两个小数点呢,这就尴尬了。 //vue里对输入的值做的处理function toNumber (val) { var n = pa