WebServiceAPI Key配置

1、WebServiceAPI Key配置中的域名白名单如何使用?

域名白名单适用于浏览器端JSONP方式调用WebserviceAPI服务:
    1. 仅白名单中的域名才可使用此key调用WebService服务
    2. 留空侧不限制调用来源
    3. 每行填写一个域名,填写的域名及其子域名都会同时得到授权,如:qq.com,则qq.com下的子域名map.qq.com也可以使用此key

    非授权域名使用您的key调用WebServiceAPI时会被拒绝,同时会返回本次请求来源域名,以便您更正配置:

2、WebServiceAPI Key配置中的授权IP如何使用?

用于限制此key的调用来源IP,以防key被盗用,优点:配置简单,无需开发,但IP地址有变化时,必须同时修改配置。

配置填写方法:
        进入Key管理界面,找到要设置的Key进入设置界面,启用产品勾选WebServiceAPI后,会出现相应安全设置,点击“授权IP”进行设置
        a. 每行填写一条,留空则不限制。
        b. 支持填写单一授权IP,例:202.106.0.99
        c. 支持授权IP段,起始IP-结束IP。例(IPv4):202.106.0.20-202.106.0.26

配置示例

如何准确得知我的IP地址:
        首先您可询问您的网络供应商获悉,另外您可以通过IP定位接口,在接口返回结果中会包含您的服务器IP

非授权IP使用您的key调用WebServiceAPI时会被拒绝,同时会返回本次请求来源IP,以便更正配置:

3、WebServiceAPI Key配置中签名校验如何使用?

与授权IP方式比较,使用SN校验稍有开发量,但不必担心服务器换IP的问题。

选中SN校验后,会生成SecretKey (SK),用于请求地图WebServiceAPI时计算签名,将签名做为参数(sig)附带到请求中,腾讯服务器会在收到请求后,使用相同的方式生成签名,并与请求中附带的签名进行比对,当一致时即为校验通过,反之则拒绝。

SecretKey (SK) 要注意保密,如有泄漏应尽快重新重成。
   


WebServiceAPI(GET方法)签名计算

通用概念:
1. 请求路径:调用接口时的路径,如:/ws/geocoder/v1,末尾是否带 / 均可,不做要求,但需要保持一致,比如调用路径用了/ws/geocoder/v1,签名计算的时候也要用/ws/geocoder/v1
2. SecretKey (SK):在腾讯位置服务控制台 > Key配置中,勾选WebServiceAPI的 SN校验时自动生成的随机字串,用于计算签名(sig)
3. sig:签名计算结果


通过以下示例讲解(本例为调用逆地址解析请求的url):
https://apis.map.qq.com/ws/geocoder/v1?location=28.7033487,115.8660847&key=5Q5BZ-5EVWJ-SN5F3-K6QBZ-B3FAO-*****

GET请求分为:域名,请求路径和参数三个部分,用于签名计算的有:
请求路径:/ws/geocoder/v1
请求参数:location=28.7033487,115.8660847&key=5Q5BZ-5EVWJ-SN5F3-K6QBZ-B3FAO-*****


1. 首先对参数进行排序:按参数名升序(本例结果为key在前,location在后):

key=5Q5BZ-5EVWJ-SN5F3-K6QBZ-B3FAO-RVBWM&location=28.7033487,115.8660847


2. 签名计算(sig):
请求路径+”?”+请求参数+SK进行拼接,并计算拼接后字符串md5值,即为签名(sig):
要求:请求参数必须是未进行任何编码(如urlencode)的原始数据

md5("/ws/geocoder/v1?key=5Q5BZ-5EVWJ-SN5F3-*****&location=28.7033487,115.8660847SWvT26ypwq5Nwb5RvS8cLi6NSoH8HlJX")

本例计算得到结果为:90da272bfa19122547298e2b0bcc0e50


3. 生成最终请求:将计算得到的签名sig,放到请求中(参数名即为:sig):

https://apis.map.qq.com/ws/geocoder/v1?key=5Q5BZ-5EVWJ-SN5F3-K6QBZ-B3FAO-*****&location=28.7033487,115.8660847&sig=90da272bfa19122547298e2b0bcc0e50

注意:计算 sig 要使用原始参数值,不要进行任何编码,但最终发送时的参数,是需要时行url编码的

4、WebServiceAPI和地点云API 的 POST接口(application/json)如何计算签名?

通用概念:
1. 请求路径:调用接口时的路径,如:/place_cloud/data/create,末尾是否带 / 均可,不做要求
2. SecretKey (SK):在腾讯位置服务控制台 > Key配置中,勾选WebServiceAPI的 SN校验时自动生成的随机字串,用于计算签名(sig)
3. sig:签名计算结果

下文以地点云API的 [创建地点数据接口] 为例计算签名:

1.参数排序:按JSON对象中的一级属性名字符升序排序,本例结果为:data,key,table_id
  再将每个一级属性的 Value 转成最短JSON string形式:

data [{"ud_id":"156985","title":"海淀区苏州街营业部","location":{"lat":39.983988,"lng":116.307709},"x":{"price":"no price"}}] 对象的最小JSON字符串形式
(去掉空格、tab)
key 5Q5BZ-5EVWJ-SN5F3-K6QBZ-***** 字符串,保持原状
table_id 5d405395d230bf1d9416be10 字符串,保持原状

2. 拼接成Querystring型的字符串:

data=[{"ud_id":"156985","title":"海淀区苏州街营业部","location":{"lat":39.983988,"lng":116.307709},"x":{"price":15.5}}]&key=5Q5BZ-5EVWJ-SN5F3-K6QBZ-*****&table_id=5d405395d230bf1d9416be10

3. 签名计算(sig):
请求路径+”?”+请求参数+SK进行拼接,并计算拼接后字符串md5值,即为签名(sig):
要求:请求参数必须是未进行任何编码(如urlencode)的原始数据

md5('/place_cloud/data/create?data=[{"ud_id":"156985","title":"海淀区苏州街营业部","location":{"lat":39.983988,"lng":116.307709},"x":{"price":15.5}}]&key=5Q5BZ-5EVWJ-SN5F3-K6QBZ-*****&table_id=5d405395d230bf1d9416be10KIpUE64TiqLuF2vBJCLOvkFVy0we0Ypp')
本例计算得到结果为:782f2ca97e6592741049823787203e9c

4. 发送请求: 发送的data里的JSON并不需要是最小形式,可以使用空格。

返回结果:

WebServiceAPI 常见报错

1、调用接口提示‘请求来源未被授权’怎么办?

Key设置授权域名/授权IP是防止其他人盗用您的Key,如果您设置了授权域名/授权IP,那么您的Key只可以在您设置的授权域名/授权IP下访问,如果出现未授权的情况,您需要排查一下授权域名/授权IP设置是否正确。

2、调用接口提示‘此功能未被授权’怎么办?

您可以在控制台申请配额页面选择接口位置,直接复制您要申请权限的接口进行提交开通权限。

3、此key未开启webservice功能?

请在key设置页面勾选webservice选项启用授权。

4、服务端会返回HTTP 503状态?

请求量超出限制,开发时请注意提前做好容错处理。

5、如何解决接口访问超时的问题?

  • 1)先确认是链接超时还是响应超时?
  • 2)响应超时时,可能是网络问题,需要您提供完整请求串和请求发生的时间点给我们。
  • 3)链接超时时,多数情况下是您网络环境存在问题,请排查您的网络环境。
  • 4)排查确认是访问我们的一个接口超时还是所有接口都超时,如果所有的接口都出现超时,极大可能是网络问题,需要提供完整请求和请求发生的时间点给我们;如果是一个接口超时,排除网络因素,可以在“控制台-我的工单”反馈给我们,提交问题的时候需要提供 完整请求串和请求发生的时间点。

地点搜索

1、接口返回的数据,为何10页以后全部相同?

webservice接口,最大返回数据量为200条,超过200条的数据会和最后一页数据保持一致。

2、http://apis.map.qq.com/ws/place/v1/search?boundary=nearby’这种调用方式,是否可以同时返回相邻两个城市的数据?

不可以,检索结果会以中心点位置限定城市。

关键词输入提示

1、关键词提示接口返回数据默认不按照距离远近排序吗?

模糊搜索时,比如搜索类似酒店、餐馆这种,返回的结果会参考距离,但是不会严格按照距离

2、在搜索时,输入“南方”,自动在下拉列表中提示 “南方报社”,是如何实现的?

该功能是依赖于我们API中的“关键词输入提示”功能,依据腾讯位置服务的的数据库,用于获取输入关键词的补完与提示,帮助用户快速输入。本接口为纯HTTP数据接口,需配合前端程序实现Autocomplete(自动完成)的效果。

3、输入提示和POI搜索的区别?

关键词输入提示(suggestion):输入过程即搜即得,帮助用户少输入一些文字,提高效率,会严格匹配用户输入内容,能识别汉语拼音全拼。

4、输入提示和POI搜索的区别?

关键词输入提示(suggestion):输入过程即搜即得,帮助用户少输入一些文字,提高效率,会严格匹配用户输入内容,能识别汉语拼音全拼。

地点搜索:一般用于用户明确搜索条件时使用,后台会进行大量复杂的计算,如分词,意图识别、连锁品牌识别等智能策略,最大限度返回给用户希望的结果。

逆地址解析

1、city_code这个字段固定几位?

固定9位。

2、哪个api服务可通过经纬度获得所在省份国家信息?

参考逆地址解析服务:https://lbs.qq.com/service/webService/webServiceGuide/webServiceGcoder

3、逆地址解析poi_options怎么传多个参数?

poi_options=address_format=short;radius=5000;page_size=20;page_index=1;policy=2 传入多个条件示例

4、为什么地址解析出来的坐标使用逆地址解析返回地址不同?

逆地址解析的功能是对输入坐标进行地址描述,并非将请求地址解析的地址进行还原,因两个接口解析策略不同,所以解析不同为正常现象。

5、腾讯位置服务可以判断并显示我在 “××博物馆”,“××海洋馆”,“××风景区”内吗?

可以支持。请参阅逆地址解析(位置描述)技术文档:https://lbs.qq.com/webservice_v1/guide-gcoder.html

地址解析

1、地址解析接口在本地main方法里可以正常调用,但是在服务器上显示查询无结果?

需要自查一下检索服务端编码是否正确,腾讯位置服务webservice服务统一采用utf-8编码,传入时需要注意。

2、地址解析结果和坐标拾取器显示结果为什么不一样?

坐标拾取器和PC地图的搜索 用的是"地点搜索"服务,与地址解析策略不一样,其结果虽较为精准,但结果会有多项返回,需要由用户进行二次判断(可参考一般地图、搜索类交互效果)。 而地址解析,主要用于行地址到坐标的转换,其返回结果具有唯一性,但因为很多情况下要兼容地址本身不规范的问题(如错别字,省市区与门牌、地点不匹配、各类干扰词等情况),会有精度损失和估算的成分(所以地址解析结果中提供了reliability和level两个代表解析结果可信度与精度的参数,用于判断结果是否可被采用),地址解析服务一般应用于物流收货地址到配送站(范围)转换的场景,或可以容忍一定精度损失及误差的场景。 可根据实际的应用需要选择使用哪个服务。

路线规划

1、驾车线路规划API 中, 哪个字段能返回拥堵情况?

目前暂不支持返回拥堵情况。

2、网约车场景pickup和trip参数区分?

pickup场景,路线规划会考虑终点的位置,推荐适合上车的路线;trip场景,多方案中,有用户常走路线,还为网约车定制了一条价格最低的路线;

pickup是网约车的接驾场景,在接驾时用;trip是送驾场景,在送驾的时候用。接乘客的时候用接驾,送乘客的时候用送驾,不同的场景,分别用,并不是一次调用。

3、路线规划接口返回参数duration和duration_1m区别?

duration_1m代表精确到1分钟的方案估算时间,建议使用duration。

4、路线规划中获取到的距离是否会变动?

路线规划接口会按照路况返回规划结果,所以会有一定的浮动,一般浮动在1~2km。

5、路线规划结果中的道路节点,是如何选取的?

会根据路线的情况每隔一段距离取一个点,由于路况的不同,取点的范围也是不同的。

6、返回的路线规划方案不合理怎么办?

如果您使用我们的路线规划服务,发现返回的方案不合理,如包含禁行路段、特别拥堵、绕路等情况,请您前往问题反馈进行反馈,我们将尽快为您解决。

7、路径规划中获取到的距离是否会变动?

如果路线有变,距离就会变,如有道路禁行、躲避拥堵等情况都会导致路线变化。

批量距离计算

1、多目的地最优路径接口如何申请?

您需要先成为企业开发者并申请key,按配额申请模板 编辑邮件发送至:mapapi@vip.qq.com;mapbd@tencent.com,邮件中的申请接口填写“多目的地最优路径”,您的申请我们会在3个工作日内审批完成,我们会为您提供每秒5次、每天1万次的配额。

行政区划

1、如何根据城市编码获取城市名称?

行政区划服务list接口,可以获取到全部省、市、区级三级行政区划数据。

2、如何根据城市名称获取城市编码?

可调用行政区划服务接口(http://lbs.qq.com/webservice_v1/guide-region.html)获取城市编码。

3、WebService是否有相关的api能获取行政区划轮廓轮廓信息?

目前没有。

4、WebService有接口能访问全部的adcode吗?以及他们的从属关系?

可使用行政区划接口list接口。参考链接: https://lbs.qq.com/service/webService/webServiceGuide/webServiceDistrict

5、如何根据城市名称获取城市编码?如何根据城市编码获取城市名称?

(1) 可调用行政区划服务接口获取城市编码。

(2) 行政区划服务list接口,可以获取到全部省、市、区级三级行政区划数据。

IP定位

1、IP定位接口返回的经纬度准吗,用经纬度反查定位地址,可以精确到区吗?

IP定位接口,目前已经支持IPv6进行定位,但目前IPv6网络成熟度还不够,会存在误差或定位失败的情况,属于正常现象,请理解。IP定位可以精确到区级。

2、ip定位获取省市区,部分只获取到中国是怎么回事?

有一些ip可能是省级覆盖,有一些可能是全国范围覆盖,不一定都能定位到某一个区县。

静态图API

1、大字体地图(scale=2)在什么场景下使用?

当应用需要适配手机或平板的普通屏幕和高分辨率屏幕时,普通屏幕使用scale=1的结果,高分辨率屏幕使用scale=2的结果,注意他们最终显示的尺寸大小是一样的,大字体地图的宽高会被压缩成指定的尺寸显示。

2、center和zoom设置后,如果markers不在可显示范围内怎么办?

可以使用隐式定位,即不设置center和zoom参数。注意,即使只提供了其中一项(另一项通过隐式定位计算得出),markers位置超出范围也将不显示。

其他

1、腾讯位置服务的API是否支持HTTPS协议?

目前腾讯位置服务API已全面支持HTTPS协议,使用时只需修改协议头为https://即可。

2、正确的请求串在IE、火狐、谷歌等服务器之中为何返回为空?

如果您的请求串在chrome之中能够得到符合预期的返回,但是在IE、服务器之中得到返回的内容为空,很有可能是您的请求串没有urlencode而导致IE、服务器不识别,故建议您将请求串进行urlencode之后再进行尝试。

3、腾讯地图WebService API 支持 XML 吗?

目前仅支持JSON/JSONP方式返回,暂不支持XML。

4、如何获取道路限速值?

目前腾讯位置服务暂无可获取道路限速值接口。

5、如何获取实时路况信息?

暂时不支持获取,不过已经在规划中了,敬请期待。