腾讯位置服务对接使用完全指南:从密钥申请到多端接入实战
1. 腾讯位置服务概述
腾讯位置服务(Tencent Location Service)是腾讯云旗下提供的一站式位置能力开放平台,为开发者提供地图展示、定位、搜索、路线规划、地理编码等丰富的LBS能力。平台日均全球定位请求超过1800亿次,覆盖用户超过10亿,全球覆盖200多个国家和地区。无论是Web应用、移动App还是微信小程序,都可以通过腾讯位置服务快速集成地图相关功能。
腾讯位置服务的核心能力矩阵涵盖定位、地图展示、地点搜索(POI)、地址解析、路线规划、行政区划、坐标转换、位置大数据等多个维度。开发者可以根据业务场景灵活选择所需能力,按需接入。
需要先登录腾讯云控制台,点击:腾讯云控制台,还没有账号,点击:注册后再关联,已有账号点击:登录后再关联
2. 账号注册与开发者认证
使用腾讯位置服务的第一步是注册开发者账号并完成认证。
2.1 注册账号
访问腾讯位置服务官网(https://lbs.qq.com),单击页面右上角的"注册"按钮。平台支持QQ账号、微信账号和手机号三种注册方式,任选一种即可完成注册。在新用户注册页面,需要输入真实姓名、手机号及有效邮箱地址,以便后续快速开通服务。
2.2 开发者认证
注册完成后,登录控制台并完善开发者信息。腾讯位置服务分为个人开发者和企业开发者两种身份:
- 个人开发者:适合个人学习和小型项目,默认API配额为日调用量10,000次,并发限制5次/秒。
- 企业开发者:通过企业认证后可获得更高的免费服务调用配额,商业项目建议提前完成企业认证。企业认证后还可以在控制台的配额管理中申请更高的调用额度。
3. 创建应用与申请Key
Key(密钥)是调用腾讯位置服务所有API的身份标识,是接入过程中最核心的配置项。一个Key可以通用地图SDK、JavaScript API、WebService API等所有产品,并可以针对不同产品独立启用或关闭。
3.1 创建应用
登录腾讯位置服务控制台后,在左侧导航栏单击"应用管理" → "我的应用"。在我的应用页面,单击右上角的"创建应用"按钮。自定义填写应用信息:
- 应用名称:可自定义,名称可包含汉字、数字、字母,不超过15个字
- 应用类型:在下拉框中选择对应的应用类型
3.2 添加Key
应用创建成功后,在已创建的应用右侧单击"添加Key"。填写Key名称和描述后,需要根据使用场景勾选对应的产品权限:
- Web端使用:JavaScript API GL不需要勾选任何产品,直接创建Key即可使用
- 服务端调用:必须勾选"WebService API"功能
- 微信小程序:勾选"微信小程序"并填写授权AppID,同时勾选"WebService API"
- 移动端SDK:勾选对应的地图SDK功能,并可选择性输入授权包名
如果某个Key只用于特定产品,建议在Key配置界面将其它产品关闭,以降低安全风险。
3.3 Key的安全配置
腾讯位置服务提供了多种Key安全策略,防止Key被盗用:
- 域名白名单:仅白名单中的域名才可使用该Key调用WebService服务,留空则不限制。每行填写一个域名,填写的域名及其子域名都会同时得到授权。在微信小程序环境下,如果填写了域名白名单,需要把servicewechat.com域名添加进去。
- 授权IP:可限制仅特定IP来源的请求可使用该Key。
- 签名校验(SN校验):选中SN校验后会生成SecretKey(SK),用于请求WebService API时计算签名。签名作为参数(sig)附带到请求中,腾讯服务器会验证签名一致性。
重要安全提示:请尽量避免在网页端直接调用WebService API,因为Key作为请求参数容易被抓取,被盗用的风险较高。
4. Web端接入:JavaScript API GL
腾讯位置服务JavaScript API GL是基于WebGL技术打造的3D版地图API,提供丰富的功能接口,包括点、线、面绘制,自定义图层、个性化样式及绘图、测距工具等。
4.1 引入API库
通过script标签加载JavaScript API GL:
<script charset="utf-8" src="https://map.qq.com/api/gljs?v=1.exp&key=YOUR_KEY"></script>参数说明:
- key:在控制台创建的应用Key
- v:版本号,目前支持1.exp(Javascript API GL v1最新版)
- libraries(可选):加载附加库,多个库名称用逗号分隔。支持visualization(可视化组件)、tools(应用工具)、geometry(几何计算库)、model(模型库)
4.2 显示基础地图
以下代码演示了如何在地图上显示一个基础地图:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>腾讯地图 Hello World</title>
<style type="text/css">
#container {
width: 100%;
height: 600px;
}
</style>
<script src="https://map.qq.com/api/gljs?v=1.exp&key=YOUR_KEY"></script>
<script>
function initMap() {
var center = new TMap.LatLng(39.984120, 116.307484);
var map = new TMap.Map(document.getElementById('container'), {
center: center,
zoom: 15,
pitch: 0,
rotation: 0
});
}
</script>
</head>
<body onload="initMap()">
<div id="container"></div>
</body>
</html>代码说明:
- 在body中预先准备地图容器div,并通过CSS定义显示大小
- 通过TMap.Map构造函数创建地图实例,传入容器元素和配置参数
- 配置参数包括center(中心点坐标)、zoom(缩放级别)、pitch(俯仰角)、rotation(旋转角度)等
4.3 加载可视化附加库
如需使用热力图、散点图等数据可视化能力,需要加载visualization附加库:
<script src="https://map.qq.com/api/gljs?v=1.exp&key=YOUR_KEY&libraries=visualization"></script>可视化API是基于JavaScript API GL的附加库形式加载的,所提供的可视化效果以图层的方式叠加在地图之上。数据可视化API提供了热力图、散点图、轨迹图、弧线图、区域图等多种可视化样式。
5. 服务端接入:WebService API
腾讯地图WebService API是基于HTTPS/HTTP协议的数据接口,开发者可以使用任何客户端、服务器和开发语言,按需构建HTTPS请求并获取结果数据。
5.1 启用WebService API
在控制台Key管理界面,进入Key的设置页面,勾选"WebService API"复选框即可启用。如果未启用时请求服务,会返回错误信息:
{
"status": 199,
"message": "此key未开启webservice功能"
}5.2 地理编码API
地理编码是将地址转换为经纬度坐标的过程。请求示例:
https://apis.map.qq.com/ws/geocoder/v1/?address=北京市海淀区中关村大街1号&key=YOUR_KEY返回结果包含地址对应的经纬度坐标、行政区划等信息。
5.3 逆地理编码API
逆地理编码是将经纬度坐标转换为地址描述的过程。请求示例:
https://apis.map.qq.com/ws/geocoder/v1/?location=39.984120,116.307484&key=YOUR_KEY返回结果包括坐标位置的门址描述文字、行政区划和附近POI等信息。
5.4 地点搜索API
支持关键词搜索、周边搜索、分类筛选等多种搜索方式。周边搜索示例:
https://apis.map.qq.com/ws/place/v1/search?boundary=nearby(39.984120,116.307484,1000)&keyword=酒店&key=YOUR_KEY该请求搜索坐标位置周边1000米范围内的"酒店"。
5.5 路线规划API
提供驾车、公交、步行、骑行等多种交通方式的路线计算能力。驾车路线规划示例:
https://apis.map.qq.com/ws/direction/v1/driving?from=39.984120,116.307484&to=40.040523,116.273654&key=YOUR_KEY驾车路线规划支持结合实时路况、少收费、不走高速等多种偏好,精准预估到达时间(ETA)。
5.6 使用签名校验(SN校验)
为提高API调用的安全性,可以启用签名校验。启用后,请求时需要将计算得到的签名作为sig参数附带到请求中:
https://apis.map.qq.com/ws/geocoder/v1/?address=北京市海淀区中关村大街1号&key=YOUR_KEY&sig=计算得到的签名腾讯服务器会在收到请求后使用相同的方式生成签名,并与请求中附带的签名进行比对,一致时校验通过。
6. 微信小程序接入
腾讯位置服务为微信小程序提供了多种接入方式,包括地图组件、JavaScript SDK和插件。
6.1 配置合法域名
在微信公众平台 → 开发 → 开发设置 → 服务器域名中,添加request合法域名:
https://apis.map.qq.com6.2 微信小程序JavaScript SDK
腾讯位置服务微信小程序JavaScript SDK是专为小程序开发者提供的LBS数据服务工具包,可以在小程序中调用POI检索、关键词输入提示、地址解析、逆地址解析、行政区划和距离计算等数据服务。
步骤一:下载SDK
从腾讯位置服务官网下载微信小程序JavaScript SDK(qqmap-wx-jssdk.js),放入项目目录,例如/utils/qqmap-wx-jssdk.js。
步骤二:初始化SDK
// 引入SDK核心类
var QQMapWX = require('../../utils/qqmap-wx-jssdk.js');
var qqmapsdk;
Page({
onLoad: function() {
// 实例化API核心类
qqmapsdk = new QQMapWX({
key: 'YOUR_KEY'
});
}
});步骤三:调用API接口
// 关键词搜索示例
qqmapsdk.search({
keyword: '酒店',
success: function(res) {
console.log(res);
},
fail: function(res) {
console.log(res);
},
complete: function(res) {
console.log(res);
}
});微信小程序JavaScript SDK通过对WebService API接口进行封装而形成,因此调用限制与直接调用WebService API等同。
6.3 微信小程序插件
腾讯位置服务提供了多种小程序插件,包括地图选点插件、路线规划插件、城市选择器插件等。
添加插件:在微信公众平台中,进入"设置" → "第三方服务" → "插件管理",点击"添加插件",搜索对应的腾讯位置服务插件并申请。
各插件提供的接口服务路径:
- 地点搜索:/ws/place/v1/search
- 关键词输入提示:/ws/place/v1/suggestion
- 逆地址解析(位置描述):/ws/geocoder/v1
- 路线规划(驾车):/ws/direction/v1/driving
- 路线规划(公交):/ws/direction/v1/transit
- 路线规划(步行):/ws/direction/v1/walking
- 行政区划:/ws/district/v1/list
- IP定位:/ws/location/v1/ip
7. 移动端SDK接入
腾讯位置服务为Android和iOS平台提供了原生的地图SDK和定位SDK。
7.1 iOS地图SDK
在AppDelegate中配置Key:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[QMapServices sharedServices].APIKey = @"您的key";
return YES;
}7.2 Android地图SDK
地图SDK提供了定位点控件,帮助开发者方便地实现地图上的定位点绘制需求。在使用定位点展示功能前,必须配置LocationSource为地图设置定位源。
7.3 定位SDK
腾讯定位SDK为移动应用提供轻量级定位服务接口,不依赖地图显示,方便开发者在无地图界面的场景中集成定位功能。支持单次定位、连续定位和逆地理编码(坐标转地址描述)。
8. 腾讯位置服务MCP Server接入
腾讯位置服务MCP Server是基于MCP(Model Context Protocol)协议构建的AI能力接入方式,使得大模型可以直接调用地图能力。MCP Server依赖WebService API构建,因此需要先创建Key并开启WebService API功能。
8.1 配置MCP Server
MCP Server基于SSE(Server-Sent Events)方式,不必部署本地服务,简单配置即可使用。服务地址格式为:
https://mcp.map.qq.com/sse?key=<您的Key>将API_KEY环境变量配置为在腾讯位置服务创建的API Key。
8.2 MCP Server的优势
- 使用更简单:基于MCP(SSE)方式,不必部署本地服务,简单配置即可
- 升级更方便:云端化服务,持续迭代改进,用户无须任何额外操作
- 大模型更易理解:对原始的JSON结果进行了语义化转换,更易于大模型理解
通过MCP Server,AI大模型可以直接调用腾讯位置服务的WebService API能力,实现自然语言驱动的行程规划、位置查询等智能应用。
9. 配额管理与调用限制
了解配额限制对于合理规划业务至关重要。
9.1 默认配额
个人开发者默认额度:
- 日调用量:10,000次/Key
- 并发限制:5次/秒/接口/Key
企业开发者可以获得更高的免费服务调用配额。
9.2 配额监控
每次请求WebService API接口,在返回结果的同时,响应头(Response Headers)中会包含当前时刻的配额使用情况:
- current_qps:当前每秒并发量
- limit_qps:每秒并发配额
- current_pv:今日调用量
- limit_pv:日请求量配额
9.3 配额提升
企业认证后,可在控制台 → 配额管理中申请更高的调用额度。若当前配额仍不够用,可在控制台 → 配额管理中根据业务需求购买调用量和并发量。
10. 常见问题与解答
问题1:调用API时返回"此key未开启webservice功能"怎么办?
答:需要在腾讯位置服务控制台 → 应用管理 → 我的应用 → 找到对应的Key → 点击设置 → 勾选"WebService API"复选框并保存。
问题2:微信小程序中调用API失败,可能是什么原因?
答:常见原因包括:①未在微信公众平台配置request合法域名(需添加https://apis.map.qq.com);②Key未勾选"微信小程序"和"WebService API"权限;③域名白名单未添加servicewechat.com。
问题3:提示"此Key每秒请求量已达到上限"如何处理?
答:说明当前Key的并发请求量超过了配额限制(默认5次/秒)。解决方案:①优化代码减少并发请求;②企业认证后申请更高的并发配额;③购买更高的调用量配额。
问题4:如何防止API Key被盗用?
答:①配置域名白名单,仅允许授权域名调用;②配置授权IP限制;③启用签名校验(SN校验);④避免在网页端直接暴露Key;⑤按需关闭不使用的产品权限。
问题5:个人开发者和企业开发者有什么区别?
答:个人开发者默认日调用量10,000次,并发5次/秒。企业开发者通过企业认证后可获得更高的免费服务调用配额,并可在控制台申请更高的调用额度。商业项目建议完成企业认证。
问题6:腾讯位置服务MCP Server是什么?如何使用?
答:MCP Server是基于MCP协议让AI大模型直接调用地图能力的接入方式。使用步骤:①创建Key并开启WebService API;②配置MCP Server服务地址为https://mcp.map.qq.com/sse?key=<您的Key>;③在支持MCP的AI工具中启用该服务即可。MCP Server无需部署本地服务,云端化持续迭代。




