# uni-map-common 公共模块

聚合多家地图供应商的云能力的公共模块。

不管高德还是腾讯地图,都有众多服务端API,比如逆地址解析。uni-map-common对这些API进行了统一封装,抹平了差异。

开发者只需使用uni-map-common,就可以更简单的使用地图的云接口。并且方便在不同地图厂商之间切换。

同时本公共模块也是 uniCloud-map 云端一体地图 的基础支撑模块。

注意

uni-map-common公共模块仅能在云函数/云对象内使用。如果您不了解公共模块,请参阅

插件市场地址:https://ext.dcloud.net.cn/plugin?name=uni-map-common

交流群:uni-map交流群

# 公共返回参数

以下所有API均会返回的参数

参数 说明
errCode 为0代表成功,其他均为失败
errMsg 失败后的提示
provider 当前数据是哪家地图供应商返回的
result 插件返回结果(抹平各平台差异后的返回结果)
originalResult 原始返回结果(供应商接口原始返回结果,需new UniMap时,设置needOriginalResult: true)

# 地图key

调用地图API需要先在对应的地图开放平台申请key

# 申请腾讯地图key

申请地址

服务端key

key的配置文件:/uni_modules/uni-config-center/uniCloud/cloudfunctions/common/uni-config-center/uni-map/config.js

申请步骤:点击我的应用,创建新应用,添加key,key的类型选WebServiceAPI,白名单留空

客户端key

key的配置文件:manifest.json

根据不同的客户端类型勾选不同的key类型

客户端类型 申请对应key类型
Web WebServiceAPI
App SDK
微信小程序 微信小程序

# 申请高德地图key

申请地址

服务端key

key的配置文件:/uni_modules/uni-config-center/uniCloud/cloudfunctions/common/uni-config-center/uni-map/config.js

申请步骤:点击我的应用,创建新应用,添加key,key的类型选Web服务,白名单留空

客户端key

key的配置文件:manifest.json

根据不同的客户端类型勾选不同的key类型

客户端类型 申请对应key类型(服务平台)
Web Web端(JS API)
App-iOS iOS
App-Android Android平台
微信小程序 微信小程序

# 客户端

# 初始化实例

在调用API前,需要先初始化实例

// 引入uni-map-common公共模块
const UniMap = require('uni-map-common');
// 初始化实例
let uniMap = new UniMap({
	provider: "qqmap", // 指定使用哪家地图供应商
	key: "xxxxxx",
	needOriginalResult: false, // 是否需要返回原始信息
});

参数

参数 类型 必填 说明 兼容性
provider String 指定使用哪家地图供应商 all
key String 地图供应商对应的key all
needOriginalResult Boolean 是否需要返回原始信息,默认false all

provider可选项

  • qqmap 腾讯地图
  • amap 高德地图

# API

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

功能介绍

主要用于将经纬度坐标识别为详细地址,如:39.908815,116.397507 识别为 北京市东城区西长安街1号

同时还能获取到经纬度所在省、市、区、乡镇、门牌号、行政区划代码,及周边参考位置信息,如道路及交叉口、河流、湖泊、桥等

示例

// 引入uni-map-common公共模块
const UniMap = require('uni-map-common');
// 初始化实例
let uniMap = new UniMap({
	provider: "qqmap", // 指定使用哪家地图供应商
	key: "xxxxxx"
});
// 调用API
let result = await uniMap.location2address({
  location: "39.908815,116.397507"
});
console.log("result", result);

请求参数

参数 类型 必填 说明 兼容性
location String 经纬度(GCJ02坐标系),格式:location=lat<纬度>,lng<经度> all
get_poi Number 是否返回周边地点(POI)列表
0:不返回(默认)
1:返回
all
poi_options Object 周边POI(AOI)列表控制参数,仅当get_poi=1时生效 all
 |-- radius Number 搜索半径,单位:米
radius取值范围
腾讯地图 1-5000(米)
高德地图 0~3000(米),默认是1000(米)
all
 |-- policy Number 控制返回场景
1[默认] 以地标+主要的路+近距离POI为主,着力描述当前位置;
2 到家场景:筛选合适收货的POI,并会细化收货地址,精确到楼栋;
3 出行场景:过滤掉车辆不易到达的POI(如一些景区内POI),
增加道路出入口、交叉口、大区域出入口类POI,排序会根据真实API大用户的用户点击自动优化。
4 社交签到场景,针对用户签到的热门 地点进行优先排序。
5 位置共享场景,用户经常用于发送位置、位置分享等场景的热门地点优先排序
4 注:policy=1/2/3最多返回10条周边POI,policy=4/5最多返回20条,
all
 |-- address_format String 地址格式
long 长地址(默认)
short 短地址
腾讯地图
 |-- page_index Number 第几页 腾讯地图
 |-- page_size Number 每页显示多少个POI 腾讯地图
 |-- poitype String 返回附近POI类型
参数仅支持传入POI TYPECODE,可以传入多个POI TYPECODE,相互之间用“|”分隔。
获取 POI TYPECODE 可以参考 高德地图-POI分类码表
高德地图
 |-- roadlevel Number 道路等级
0:显示所有道路
1:过滤非主干道路,仅输出主干道路数据
高德地图
 |-- homeorcorp Number 是否优化POI返回顺序homeorcorp 参数的设置可以影响召回 POI 内容的排序策略,
目前提供三个可选参数:
0:不对召回的排序策略进行干扰。
1:综合大数据分析将居家相关的 POI 内容优先返回,即优化返回结果中 pois 字段的poi顺序。
2:综合大数据分析将公司相关的 POI 内容优先返回,即优化返回结果中 pois 字段的poi顺序。
高德地图

返回参数

仅列出result内的参数,其他参数见 公共返回参数

参数 类型 说明 兼容性
formatted_addresses String 详细地址 all
country String 国家 all
province String all
city String all
district String all
street String 街道/道路,可能为空字串 all
street_number String 门牌,可能为空字串 all
adcode String 行政区划代码 all
pois Array 周边POI all
 |-- id String id all
 |-- title String 地点名称 all
 |-- address String 地址 all
 |-- location Object 经纬度 all
 |-- distance Number 距离(米) all
 |-- direction String 方位 all
 |-- category String 类别 all
roads Array 道路信息列表 高德地图
 |-- id String 道路id 高德地图
 |-- title String 道路名称 高德地图
 |-- distance String 道路到请求坐标的距离(米) 高德地图
 |-- direction Object 方位 高德地图
 |-- location Object 坐标点 高德地图
  |-- lat Number 纬度 高德地图
  |-- lng Number 经度 高德地图
roadinters Array 道路交叉口列表 高德地图
 |-- distance String 交叉路口到请求坐标的距离(米) 高德地图
 |-- direction String 方位(输入点相对路口的方位) 高德地图
 |-- first_id String 第一条道路id 高德地图
 |-- first_name String 第一条道路名称 高德地图
 |-- second_id String 第二条道路id 高德地图
 |-- second_name String 第二条道路名称 高德地图
 |-- location Object 路口经纬度 高德地图
  |-- lat Number 纬度 高德地图
  |-- lng Number 经度 高德地图

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

功能介绍

用于将文字地址转换成对应的经纬度坐标,同时识别文字地址中的行政区域

示例

// 引入uni-map-common公共模块
const UniMap = require('uni-map-common');
// 初始化实例
let uniMap = new UniMap({
	provider: "qqmap", // 指定使用哪家地图供应商
	key: "xxxxxx"
});
// 调用API
let result = await uniMap.address2location({
  address: "北京市海淀区彩和坊路海淀西大街74号"
});
console.log("result", result);

请求参数

参数 类型 必填 说明 兼容性
address String 地址(注:地址中请包含城市名称,以及需要对地址进行URL编码,否则会影响解析效果) all
city String 指定查询的城市(不传则在全国范围内查询) all

返回参数

仅列出result内的参数,其他参数见 公共返回参数

参数 类型 说明 兼容性
location Object 经纬度 all
 |-- lat Number 纬度 all
 |-- lng Number 经度 all
adcode String 行政区划代码 all
province String all
city String all
district String 区,可能为空字串 all
street String 街道/道路,可能为空字串 all
street_number String 门牌,可能为空字串 all

# 坐标转换

功能介绍

实现从其它地图供应商坐标系或标准GPS坐标系,批量转换到指定地图供应商的坐标系。

示例

// 引入uni-map-common公共模块
const UniMap = require('uni-map-common');
// 初始化实例
let uniMap = new UniMap({
	provider: "qqmap", // 指定使用哪家地图供应商
	key: "xxxxxx"
});
// 调用API
let result = await uniMap.translate({
	locations: [
		{ lat: 39.908815, lng: 116.397507 },
		{ lat: 39.908815, lng: 116.397107 }
	],
	type: 3
});
console.log("result", result);

请求参数

参数 类型 必填 说明 兼容性
locations Array 预转换的坐标,支持批量转换 all
 |-- lat Number 纬度 all
 |-- lng Number 经度 all
type Number 输入的locations的坐标类型,
可选值:
1:GPS
2:sogou
3:baidu
4:mapbar
6:sogou
腾讯地图:全部支持; 高德地图:1、3、4

返回参数

仅列出result内的参数,其他参数见 公共返回参数

参数 类型 说明 兼容性
locations Array 坐标转换结果,转换后的坐标顺序与输入顺序一致 all
 |-- lat Number 纬度 all
 |-- lng Number 经度 all

# IP定位

功能介绍

通过终端设备IP地址获取其当前所在地理位置,常用于显示当前所在城市。

示例

// 引入uni-map-common公共模块
const UniMap = require('uni-map-common');
// 初始化实例
let uniMap = new UniMap({
	provider: "qqmap", // 指定使用哪家地图供应商
	key: "xxxxxx"
});
// 调用API
let result = await uniMap.ip2location({
  ip: "111.206.145.41"
});
console.log("result", result);

请求参数

参数 类型 必填 说明 兼容性
ip String IP地址 all

返回参数

仅列出result内的参数,其他参数见 公共返回参数

参数 类型 说明 兼容性
location Object 坐标 腾讯地图
 |-- lat Number 纬度 腾讯地图
 |-- lng Number 经度 腾讯地图
nation String 国家 腾讯地图
nation_code String 国家代码(ISO3166标准3位数字码) 腾讯地图
adcode Number 行政区划代码 all
province String all
city String 市,可能为空 all
district String 区,可能为空 腾讯地图
rectangle String 所在城市矩形区域范围 高德地图

# 关键词输入提示

功能介绍

用于获取输入关键字的补完与提示,帮助用户快速输入。需配合前端程序实现Autocomplete(自动完成)的效果。

示例

// 引入uni-map-common公共模块
const UniMap = require('uni-map-common');
// 初始化实例
let uniMap = new UniMap({
	provider: "qqmap", // 指定使用哪家地图供应商
	key: "xxxxxx"
});
// 调用API
let result = await uniMap.inputtips({
	keyword: "人民医院",
	city: "北京市"
});
console.log("result", result);

请求参数

参数 类型 必填 说明 兼容性
keyword String 用户输入的关键词(希望获取后续提示的关键词) all
city String 限制城市范围 all
citylimit Boolean false:当前城市无结果时,自动扩大范围到全国匹配(默认)
true:固定在当前城市
all
location Object 定位坐标,传入后,若用户搜索关键词为类别词(如酒店、餐馆时),
与此坐标距离近的地点将靠前显示
all
 |-- lat Number 纬度 all
 |-- lng Number 经度 all
get_subpois Number 是否返回子地点,如大厦停车场、出入口等取值
0:不返回(默认)
1:返回
腾讯地图
policy Number 检索策略 腾讯地图
filter String 筛选条件 腾讯地图
address_format String 可选值:short 返回“不带行政区划的”短地址 腾讯地图
page_index Number 页码,从1开始,最大页码需通过count进行计算,必须与page_size同时使用 腾讯地图
page_size Number 每页条数,取值范围1-20,必须与page_index 同时使用 腾讯地图
datatype Number 返回的数据类型,多种数据类型用“|”分隔
可选值:
all:返回所有数据类型
poi:返回POI数据类型
bus:返回公交站点数据类型
busline:返回公交线路数据类型
高德地图

返回参数

仅列出result内的参数,其他参数见 公共返回参数

参数 类型 说明 兼容性
data Array 提示词数组,每项为一个POI对象 all
 |-- id String 若数据为POI类型,则返回POI ID;若数据为bus类型,则返回bus id;若数据为busline类型,则返回busline id。 all
 |-- title String 地点名称 all
 |-- address String 地址 all
 |-- category String 分类 腾讯地图
 |-- type String POI类型,值说明:0:普通POI / 1:公交车站 / 2:地铁站 / 3:公交线路 / 4:行政区划 腾讯地图
 |-- location String 经纬度 all
  |-- lat Number 纬度 all
  |-- lng Number 经度 all
 |-- adcode Number 行政区划代码 all
 |-- province String 腾讯地图
 |-- city String 腾讯地图
 |-- district String 腾讯地图:区/县,当type(POI类型)为3(公交线路)时,district由city补全
高德地图为:省+市+区(直辖市为“市+区”)
all
 |-- children Array 子地点,当get_subpois=1时返回 腾讯地图
  |-- parent_id String 主地点ID,对应data中的地点ID 腾讯地图
  |-- id String 地点唯一标识 腾讯地图
  |-- title String 地点名称 腾讯地图
  |-- address String 地址 腾讯地图
  |-- category String POI(地点)分类 腾讯地图
  |-- location String 地址 腾讯地图
   |-- lat Number 纬度 腾讯地图
   |-- lng Number 经度 腾讯地图
  |-- adcode String 行政区划代码 腾讯地图
  |-- city String 地址 腾讯地图
  |-- address String 地点所在城市名称 腾讯地图

功能介绍

用于搜索周边地点,如,搜索颐和园附近半径500米内的酒店(一个圆形范围)

示例

// 引入uni-map-common公共模块
const UniMap = require('uni-map-common');
// 初始化实例
let uniMap = new UniMap({
	provider: "qqmap", // 指定使用哪家地图供应商
	key: "xxxxxx"
});
// 调用API
let result = await uniMap.search({
	keyword: "酒店",
	location: {
		lat: 39.908815,
		lng: 116.397507
	},
	radius: 1000,
	auto_extend: 1,
	get_subpois: 0,
	orderby: "weight",
	page_index: 1,
	page_size: 20,
	city: "北京市",
});
console.log("result", result);

请求参数

参数 类型 必填 说明 兼容性
keyword String 搜索关键字,长度最大80个字节 all
location Object 搜索中心点的经纬度 all
 |-- lat Number 纬度 all
 |-- lng Number 经度 all
radius Number 搜索半径,单位:米,取值范围:
腾讯地图:10到1000
高德地图:取值范围:0-50000
all
auto_extend Number 当前范围无结果时,是否自动扩大范围
0:不扩大
1:自动扩大范围(默认)
all
get_subpois Number 是否返回子地点,如大厦停车场、出入口等取值
0:不返回(默认)
1:返回
all
orderby String 排序,支持按距离由近到远排序,取值:
distance:按距离排序
weight:综合排序
说明:
1. 周边搜索默认排序会综合考虑距离、权重等多方面因素
2. 设置按距离排序后则仅考虑距离远近,一些低权重的地点可能因距离近排在前面,导致体验下降
all
page_index Number 页码,从1开始,最大页码需通过count进行计算,必须与page_size同时使用 all
page_size Number 每页条数,取值范围1-20,必须与page_index 同时使用 all
filter String 筛选条件 腾讯地图
types String 指定地点类型 高德地图
city String 搜索的城市 高德地图

返回参数

仅列出result内的参数,其他参数见 公共返回参数

参数 类型 说明 兼容性
data Array 搜索结果POI(地点)数组,每项为一个POI(地点)对象 all
 |-- id String POI(地点)唯一标识 all
 |-- title String 地点名称 all
 |-- tel String 电话 all
 |-- address String 地址 all
 |-- category String 分类 all
 |-- type String POI类型,值说明:0:普通POI / 1:公交车站 / 2:地铁站 / 3:公交线路 / 4:行政区划 腾讯地图
 |-- location String 经纬度 all
  |-- lat Number 纬度 all
  |-- lng Number 经度 all
 |-- distance Number 距离,单位: 米,根据传入的定位点计算返回 all
 |-- adcode Number 行政区划代码 all
 |-- province String 腾讯地图
 |-- city String 腾讯地图
 |-- district String 区/县 腾讯地图
 |-- children Array 子地点,当get_subpois=1时返回 all
  |-- parent_id String 主地点ID,对应data中的地点ID all
  |-- id String 地点唯一标识 all
  |-- title String 地点名称 all
  |-- tel String 电话 all
  |-- category String POI(地点)分类 all
  |-- address String 地址 all
  |-- location Object 经纬度 all
   |-- lat Number 纬度 all
   |-- lng Number 经度 all
  |-- type String POI类型,值说明:0:普通POI / 1:公交车站 / 2:地铁站 / 3:公交线路 / 4:行政区划 腾讯地图
  |-- adcode String 行政区划代码 腾讯地图
  |-- province String 腾讯地图
  |-- city String 腾讯地图
  |-- district String 区/县 腾讯地图

# 行政区域查询

功能介绍

用于查询四级行政区划列表:省、市、区、街道

示例

// 引入uni-map-common公共模块
const UniMap = require('uni-map-common');
// 初始化实例
let uniMap = new UniMap({
	provider: "qqmap", // 指定使用哪家地图供应商
	key: "xxxxxx"
});
// 调用API
let result = await uniMap.districtSearch({
	adcode: "110101"
});
console.log("result", result);

请求参数

参数 类型 必填 说明 兼容性
adcode String 父级行政区划adcode all
get_polygon Number 返回行政区划轮廓点串(经纬度点串),取值:
0 默认,不返回轮廓
1 包含海域,3公里抽稀粒度
2 纯陆地行政区划,可通过max_offset设置返回轮廓的抽稀级别
注:乡镇/街道(四级)不支持返回轮廓
腾讯地图:0、1、2 高德地图:0、2
max_offset Number 轮廓点串的抽稀精度(仅对get_polygon=2时支持),
单位米,可选值:
100 :100米(当缺省id返回省级区划时,将按500米返回,其它级别正常生效)
500 :500米
1000:1000米
3000:3000米
腾讯地图
page_index Number 页码,从1开始,最大页码需通过count进行计算,必须与page_size同时使用 高德地图
page_size Number 每页条数,取值范围1-20,必须与page_index 同时使用 高德地图
filter String 按照指定行政区划进行过滤,填入后则只返回该省/直辖市信息
需填入adcode,为了保证数据的正确,强烈建议填入此参数
高德地图
subdistrict Number 可选值:
1:返回下一级行政区;
2:返回下两级行政区;
3:返回下三级行政区;
高德地图

返回参数

仅列出result内的参数,其他参数见 公共返回参数

参数 类型 说明 兼容性
data Array 结果数组 all
 |-- adcode String 行政区划唯一标识 all
 |-- name String 简称,如“内蒙古” 注意:高德地图name = fullname all
 |-- fullname String 全称,如“内蒙古自治区” all
 |-- location String 经纬度 all
  |-- lat Number 纬度 all
  |-- lng Number 经度 all
 |-- pinyin Array 行政区划拼音,每一下标为一个字的全拼,如:[“nei”,“meng”,“gu”] 腾讯地图
 |-- cidx Array 子级行政区划在下级数组中的下标位置 腾讯地图
 |-- polygon Array 该行政区划的轮廓经纬度点串(当使用get_polygon=1或2时返回),数组每一项为一个多边形,一个行政区划可以由多块多边形组成
注意:部分城市存在飞地,当两个polygon重叠时,重叠区域隶属其他城市,不重叠时代表此城市的飞地
腾讯地图
 |-- level Array 行政区划级别 高德地图
 |-- children Array 下级行政区列表,需传subdistrict参数才会有此值 高德地图

# 路线规划

# 驾车(driving)

功能介绍

用于计算从起点到终点驾车的路线以及结合实时路况、少收费、不走高速等多种偏好,精准预估到达时间。

示例

// 引入uni-map-common公共模块
const UniMap = require('uni-map-common');
// 初始化实例
let uniMap = new UniMap({
	provider: "qqmap", // 指定使用哪家地图供应商
	key: "xxxxxx"
});
// 调用API
let result = await uniMap.route({
	mode: "driving",
	from: "40.034852,116.319820",
	to: "39.771075,116.351395"
});
console.log("result", result);

请求参数

参数 类型 必填 说明 兼容性
mode String 交通方式 固定为:driving all
from String 起点位置坐标,格式:lat,lng all
to String 终点位置坐标,格式:lat,lng all
from_poi String 起点POI ID,传入后,优先级高于from(坐标) all
to_poi String 终点POI ID,传入后,优先级高于to(坐标) all
policy String 算路策略 详情 all
waypoints String 格式:lat1,lng1;lat2,lng2; all
avoid_polygons String 避让区域 all
road_type Number [from辅助参数] 起点道路类型详情 all
plate_number String 车牌号,填入后,路线引擎会根据车牌对限行区域进行避让,不填则不不考虑限行问题 all
cartype Number 车辆类型(影响限行规则),
取值:
0:[默认]普通汽车
1:新能源
2:插电式混动汽车
腾讯地图:0、1; 高德地图:全部支持
heading Number [from辅助参数]在起点位置时的车头方向,数值型,取值范围0至360(0度代表正北,顺时针一周360度) 腾讯地图
speed Number [from辅助参数]速度,单位:米/秒,默认3。 当速度低于1.39米/秒时,heading将被忽略 腾讯地图
accuracy Number [from辅助参数]定位精度,单位:米,取>0数值,默认5。 当定位精度>30米时heading参数将被忽略 腾讯地图
from_track Number [from辅助参数]起点轨迹 腾讯地图
get_mp Number 是否返回多方案
0:[默认]仅返回一条路线方案
1:返回多方案(最多可返回三条方案供用户备选)
腾讯地图
no_step Number 不返回路线引导信息,可使回包数据量更小,
取值:
0:[默认]返回路线引导信息
1:不返回
腾讯地图
avoidroad String 避让道路名,只支持一条避让道路 高德地图
ferry Number 是否使用轮渡
0:使用渡轮
1:不使用渡轮
高德地图
# 【驾车】方式policy值范围

0:速度优先(只返回一条路线),此路线不一定距离最短

1:费用优先(只返回一条路线),不走收费路段,且耗时最少的路线

2:距离优先(只返回一条路线),仅走距离最短的路线,但是可能存在穿越小路/小区的情况

3:速度优先(只返回一条路线),不走快速路,例如京通快速路

32:高德地图APP默认策略

33:躲避拥堵

34:高速优先

35:不走高速

36:少收费

37:大路优先

38:速度最快

39:躲避拥堵+高速优先

40:躲避拥堵+不走高速

41:躲避拥堵+少收费

42:少收费+不走高速

43:躲避拥堵+少收费+不走高速

44:躲避拥堵+大路优先

45:躲避拥堵+速度最快

101:该策略会通过终点坐标查找所在地点(如小区/大厦等),并使用地点出入口做为目的地,使路径更为合理

注意:高德地图支持除101外的所有策略,腾讯地图只支持 0、34、35、36、37、101

# 【驾车】road_type值范围

0:[默认]不考虑起点道路类型

1:在桥上

2:在桥下

3:在主路

4:在辅路

5:腾讯地图:在对面 高德地图:隧道

6:桥下主路

7:腾讯地图:桥下辅路 高德地图:环岛

9:腾讯地图:不支持 高德地图:停车场内部

返回参数

仅列出result内的参数,其他参数见 公共返回参数

驾车(driving)返回参数

参数 类型 说明 兼容性
routes Array 路线方案 all
 |-- mode String 方案交通方式 all
 |-- tags Array 方案标签 腾讯地图
 |-- distance Number 方案总距离,单位:米 all
 |-- traffic_light_count Number 方案途经红绿灯个数 腾讯地图
 |-- restriction_status Object 限行状态码:
0 途经没有限行城市,或路线方案未涉及限行区域
1 途经包含有限行的城市
3 [设置车牌] 已避让限行
4 [设置车牌] 无法避开限行区域(本方案包含限行路段)
腾讯地图:0、1、3、4 高德地图:0、1
 |-- polyline Array 方案路线坐标点串 腾讯地图
 |-- taxi_cost Number 预估打车费用,单位:元 all
 |-- steps Array 路线步骤 all
  |-- instruction String 阶段路线描述 all
  |-- road_name String 阶段路线路名 all
  |-- dir_desc String 阶段路线方向 all
  |-- distance Number 阶段路线距离,单位:米 all
  |-- act_desc String 阶段路线末尾动作:如:左转调头 all
  |-- accessorial_desc String 末尾辅助动作:如:到达终点 all
  |-- polyline String 分路段坐标点串,格式:lat1,lng1;lat2,lng2 all
  |-- polyline_idx Array 阶段路线坐标点串在方案路线坐标点串的位置 腾讯地图
  |-- cost Object 设置后可返回方案所需时间及费用成本 高德地图
   |-- duration String 线路耗时,分段step中的耗时 高德地图
   |-- tolls String 此路线道路收费,单位:元,包括分段信息 高德地图
   |-- toll_distance String 收费路段里程,单位:米,包括分段信息 高德地图
   |-- toll_road String 主要收费道路 高德地图
   |-- traffic_lights String 方案中红绿灯个数,单位:个 高德地图
  |-- speed Array 路况信息,只有设置get_speed=1才会返回 高德地图
   |-- distance String 距离,单位:米 高德地图
   |-- level String 路况类型:0:畅通 1:缓行 2:拥堵 3:无路况 4:严重拥堵 高德地图
   |-- polyline String 分路段坐标点串,格式:lat1,lng1;lat2,lng2 高德地图
 |-- speed Array 路况信息,只有设置get_speed=1才会返回 腾讯地图
  |-- distance String 距离,单位:米 腾讯地图
  |-- level String 路况类型:0:畅通 1:缓行 2:拥堵 3:无路况 4:严重拥堵 腾讯地图
  |-- polyline String 分路段坐标点串,格式:lat1,lng1;lat2,lng2 腾讯地图
  |-- polyline_idx String 阶段路线坐标点串,在路线坐标点串的位置 腾讯地图
 |-- waypoints Array 途经点,顺序与输入waypoints一致 (输入waypoints时才会有此结点返回) 腾讯地图
  |-- title String 途经点路名 腾讯地图
  |-- location Object 途经点坐标: 腾讯地图
   |-- lat Number 纬度 腾讯地图
   |-- lng Number 经度 腾讯地图
  |-- duration Number 预估到达耗时,单位:分钟 腾讯地图
  |-- distance Number 起点到该途经点的距离,单位:米 腾讯地图
  |-- polyline String 分路段坐标点串,格式:lat1,lng1;lat2,lng2 腾讯地图
  |-- polyline_idx Number 该途经点在polyline中的索引位置(数组下标位置) 腾讯地图
 |-- cities Object 途径城市信息 all
  |-- adcode String 途径区域编码 all
  |-- citycode String 途径城市编码 高德地图
  |-- city String 途径城市名称 高德地图
  |-- district String 途径区县信息 高德地图
   |-- name String 途径区县名称 高德地图
   |-- adcode String 途径区县adcode 高德地图

# 步行(walking)

功能介绍

用于计算从起点到终点基于步行路线规划。

示例

// 引入uni-map-common公共模块
const UniMap = require('uni-map-common');
// 初始化实例
let uniMap = new UniMap({
	provider: "qqmap", // 指定使用哪家地图供应商
	key: "xxxxxx"
});
// 调用API
let result = await uniMap.route({
	mode: "walking",
	from: "40.034852,116.319820",
	to: "39.771075,116.351395"
});
console.log("result", result);

请求参数

参数 类型 必填 说明 兼容性
mode String 交通方式 固定为:walking all
from String 起点位置坐标,格式:lat,lng all
to String 终点位置坐标,格式:lat,lng all
to_poi String 终点POI ID,传入后,优先级高于to(坐标) 腾讯地图
alternative_route Number 1:多备选路线中第一条路线
2:多备选路线中前两条路线
3:多备选路线中三条路线
不传则默认返回一条路线方案
高德地图

返回参数

仅列出result内的参数,其他参数见 公共返回参数

步行(walking)返回参数

参数 类型 说明 兼容性
routes Array 路线方案 all
 |-- mode String 方案交通方式 all
 |-- distance Number 方案总距离,单位:米 all
 |-- duration Number 方案估算时间,单位:分钟 all
 |-- direction String 方案整体方向 腾讯地图
 |-- polyline Array 方案路线坐标点串 腾讯地图
 |-- steps Array 路线步骤 all
  |-- instruction String 阶段路线描述 all
  |-- road_name String 阶段路线路名 all
  |-- dir_desc String 阶段路线方向 all
  |-- distance Number 阶段路线距离,单位:米 all
  |-- act_desc String 阶段路线末尾动作:如:左转调头 all
  |-- polyline String 分路段坐标点串,格式:lat1,lng1;lat2,lng2 all
  |-- type Number 阶段路线的步行设施类型(type),包含:
0普通道路,1过街天桥,2地下通道,3人行横道
腾讯地图
  |-- polyline_idx Array 阶段路线坐标点串在方案路线坐标点串的位置 腾讯地图
  |-- taxi_cost Number 预估打车费用,单位:元(此字段不一定会返回) 高德地图
  |-- duration Number 线路耗时,分段step中的耗时,单位:分钟 高德地图

# 骑行(bicycling)

功能介绍

用于计算从起点到终点基于自行车的骑行路线规划

示例

// 引入uni-map-common公共模块
const UniMap = require('uni-map-common');
// 初始化实例
let uniMap = new UniMap({
	provider: "qqmap", // 指定使用哪家地图供应商
	key: "xxxxxx"
});
// 调用API
let result = await uniMap.route({
	mode: "bicycling",
	from: "40.034852,116.319820",
	to: "39.771075,116.351395"
});
console.log("result", result);

请求参数

参数 类型 必填 说明 兼容性
mode String 交通方式 固定为:walking all
from String 起点位置坐标,格式:lat,lng all
to String 终点位置坐标,格式:lat,lng all
to_poi String 终点POI ID,传入后,优先级高于to(坐标) 腾讯地图
alternative_route Number 1:多备选路线中第一条路线
2:多备选路线中前两条路线
3:多备选路线中三条路线
不传则默认返回一条路线方案
高德地图

返回参数

仅列出result内的参数,其他参数见 公共返回参数

骑行(bicycling)返回参数

参数 类型 说明 兼容性
routes Array 路线方案 all
 |-- mode String 方案交通方式 all
 |-- distance Number 方案总距离,单位:米 all
 |-- duration Number 方案估算时间,单位:分钟 all
 |-- direction String 方案整体方向 腾讯地图
 |-- polyline Array 方案路线坐标点串 腾讯地图
 |-- steps Array 路线步骤 all
  |-- instruction String 阶段路线描述 all
  |-- road_name String 阶段路线路名 all
  |-- dir_desc String 阶段路线方向 all
  |-- distance Number 阶段路线距离,单位:米 all
  |-- act_desc String 阶段路线末尾动作:如:左转调头 all
  |-- polyline String 分路段坐标点串,格式:lat1,lng1;lat2,lng2 all
  |-- polyline_idx Array 阶段路线坐标点串在方案路线坐标点串的位置 腾讯地图
  |-- duration String 线路耗时,分段step中的耗时 高德地图

# 电动车(ebicycling)

功能介绍

用于计算从起点到终点基于电动自行车的骑行路线规划

示例

// 引入uni-map-common公共模块
const UniMap = require('uni-map-common');
// 初始化实例
let uniMap = new UniMap({
	provider: "qqmap", // 指定使用哪家地图供应商
	key: "xxxxxx"
});
// 调用API
let result = await uniMap.route({
	mode: "ebicycling",
	from: "40.034852,116.319820",
	to: "39.771075,116.351395"
});
console.log("result", result);

请求参数

参数 类型 必填 说明 兼容性
mode String 交通方式 固定为:ebicycling all
from String 起点位置坐标,格式:lat,lng all
to String 终点位置坐标,格式:lat,lng all
to_poi String 终点POI ID,传入后,优先级高于to(坐标) 腾讯地图
alternative_route Number 1:多备选路线中第一条路线
2:多备选路线中前两条路线
3:多备选路线中三条路线
不传则默认返回一条路线方案
高德地图

返回参数

仅列出result内的参数,其他参数见 公共返回参数

电动车(ebicycling)返回参数

参数 类型 说明 兼容性
routes Array 路线方案 all
 |-- mode String 方案交通方式 all
 |-- distance Number 方案总距离,单位:米 all
 |-- duration Number 方案估算时间,单位:分钟 all
 |-- direction String 方案整体方向 腾讯地图
 |-- polyline Array 方案路线坐标点串 腾讯地图
 |-- steps Array 路线步骤 all
  |-- instruction String 阶段路线描述 all
  |-- road_name String 阶段路线路名 all
  |-- dir_desc String 阶段路线方向 all
  |-- distance Number 阶段路线距离,单位:米 all
  |-- act_desc String 阶段路线末尾动作:如:左转调头 all
  |-- polyline String 分路段坐标点串,格式:lat1,lng1;lat2,lng2 all
  |-- polyline_idx Array 阶段路线坐标点串在方案路线坐标点串的位置 腾讯地图
  |-- duration Number 线路耗时,分段step中的耗时 高德地图

# 公交(transit)

功能介绍

基于公共汽车、地铁、火车等公共交通工具,计算起到终点的路线换乘方案,同时提供少换乘、少步行等偏好设置,支持一次返回多条方案以供用户选择。

示例

// 引入uni-map-common公共模块
const UniMap = require('uni-map-common');
// 初始化实例
let uniMap = new UniMap({
	provider: "qqmap", // 指定使用哪家地图供应商
	key: "xxxxxx"
});
// 调用API
let result = await uniMap.route({
	mode: "transit",
	from: "40.034852,116.319820",
	to: "29.771075,116.351395",
	city1: "010",
	city2: "0792"
});
console.log("result", result);

请求参数

参数 类型 必填 说明 兼容性
mode String 交通方式 固定为:transit all
from String 起点位置坐标,格式:lat,lng all
to String 终点位置坐标,格式:lat,lng all
from_poi String 起点POI ID,传入后,优先级高于from(坐标) all
to_poi String 终点POI ID,传入后,优先级高于to(坐标) all
policy String 算路策略 详情 all
departure_time Number 出发时间,用于过滤掉非运营时段的线路,格式为Unix时间戳,默认使用当前时间 腾讯地图
ad1 String 仅支持adcode 高德地图
ad2 String 仅支持adcode 高德地图
city1 String 起点所在城市(仅支持citycode,相同时代表同城,不同时代表跨城) 高德地图
city2 String 目的地所在城市(仅支持citycode,相同时代表同城,不同时代表跨城) 高德地图
alternative_route Number 返回方案条数 最大3条,mode为公交时,最大10条 高德地图
multiexport Number 地铁出入口数量
0:只返回一个地铁出入口
1:返回全部地铁出入口
高德地图
max_trans Number 最大换乘次数 高德地图
nightflag Number 考虑夜班车
0:不考虑夜班车
1:考虑夜班车
高德地图
date String 请求日期 例如:2013-10-28 高德地图
time String 请求时间 例如:9-54 高德地图
# 【公交】方式policy值范围

0:默认模式

1:最经济模式,票价最低

2:最少换乘模式,换乘次数少

3:最少步行模式,尽可能减少步行距离

4:最舒适模式,尽可能乘坐空调车

5:不乘地铁模式,不乘坐地铁路线

6:地铁图模式,起终点都是地铁站(地铁图模式下originpoi及destinationpoi为必填项)

7:地铁优先模式,步行距离不超过4KM

8:时间短模式,方案花费总时间最少

注意:高德地图支持所有策略,腾讯地图只支持 0、2、3、5、6、7

返回参数

仅列出result内的参数,其他参数见 公共返回参数

公交(transit)返回参数

参数 类型 说明 兼容性
routes Array 路线方案 all
 |-- mode String 方案交通方式 all
 |-- distance Number 方案总距离,单位:米 all
 |-- duration Number 方案估算时间,单位:分钟 all
 |-- bounds Number 整体路线的外接矩形范围,可在地图显示时使用
通过矩形西南+东北两个端点坐标定义而面
示例:“39.901405,116.334023,39.940289,116.451720”
腾讯地图
 |-- transit_fee Number 各换乘方案总花费,单位:元 高德地图
 |-- steps Array 一条完整公交路线可能会包含多种公共交通工具,
各交通工具的换乘由步行路线串联起来,
形成这样的结构(即 steps数组的结构):
[步行 , 公交 , 步行 , 公交 , 步行(到终点)]
all
  |-- mode String 本段交通方式,取值:
walking:步行
transit:公共交通工具
不同的方式,返回不同的数据结构,须根据该参数值来判断以哪种结构进行解析,各类具体定义见下文
all
  |-- 其它字段 -- 随mode不同有不同字段返回,见下文 all

公交方式包含步行+公共交通混合

以下是交通方式 - 步行 - 响应结果

参数 类型 说明 兼容性
mode String 交通方式,固定值:walking all
distance Number 本段step距离,单位:米 all
duration Number 估算时间,单位:分钟 all
direction String 方案整体方向描述,如:“南” 腾讯地图
polyline Array 路线坐标点串,可用于在地图中绘制路线 腾讯地图
steps Array 分路段导航信息 all
 |-- instruction String 阶段路线描述 all
 |-- road_name String 阶段路线路名 all
 |-- dir_desc String 阶段路线方向 all
 |-- distance Number 阶段路线距离,单位:米 all
 |-- act_desc String 阶段路线末尾动作:如:左转调头 all
 |-- polyline_idx Array 阶段路线坐标点串在方案路线坐标点串的位置 腾讯地图

响应结果 - 交通方式 - 公共交通(transit) 本段为公共交通方式的对象结构,对应steps[]数组下的子对象(“mode”:“transit”)

  1. 交通工具 - 公共汽车(“vehicle”:“BUS”): 本段为公共交通的子对象,vehicle属性值为"BUS"
参数 类型 说明 兼容性
mode String 交通方式,固定值:transit all
lines Array lines线路信息 all
 |-- vehicle String 交通工具:公交车(BUS) all
 |-- id String 线路唯一标识 all
 |-- title String 线路名称 all
 |-- station_count Number 经停站数 all
 |-- distance Number 路线距离,单位:米 all
 |-- duration Number 路线估算时间,单位:分钟 all
 |-- polyline Array 线路坐标点串,可用于在地图中绘制路线 all
 |-- start_time String 首班车时间 all
 |-- end_time String 末班车时间 all
 |-- geton Object 上车站 all
  |-- id String 站点唯一标识 all
  |-- title String 终点站名 all
  |-- location Object 站点经纬度坐标 all
   |-- lat Number 纬度 all
   |-- lng Number 经度 all
 |-- getoff Object 下车站 all
  |-- id String 站点唯一标识 all
  |-- title String 终点站名 all
  |-- location Object 站点经纬度坐标 all
   |-- lat Number 纬度 all
   |-- lng Number 经度 all
 |-- stations Array 经停站列表 all
  |-- id String 站点唯一标识 all
  |-- title String 终点站名 all
  |-- location Object 站点经纬度坐标 all
   |-- lat Number 纬度 all
   |-- lng Number 经度 all
 |-- running_status Number 线路运营状态,取值范围:
300:正常
301:可能错过末班车
302:首班车还未发出
303:停运
腾讯地图
 |-- price Number 预估费用,单位:分,返回-1时为缺少票价信息 腾讯地图
 |-- destination Object 公交终点站(用于指示方向) 腾讯地图
  |-- id String 站点唯一标识 腾讯地图
  |-- title String 终点站名 腾讯地图
 |-- type String 公交类型 高德地图
  1. 交通工具 - 地铁(“vehicle”:“SUBWAY”): 本段为公共交通的子对象,vehicle属性值为"SUBWAY"
参数 类型 说明 兼容性
mode String 交通方式,固定值:transit all
lines Array lines线路信息 all
 |-- vehicle String 交通工具:地铁(SUBWAY) all
 |-- id String 线路唯一标识 all
 |-- title String 线路名称 all
 |-- station_count Number 经停站数 all
 |-- running_status Number 线路运营状态,取值范围:
300:正常
301:可能错过末班车
302:首班车还未发出
303:停运
腾讯地图
 |-- price Number 预估费用,单位:分,返回-1时为缺少票价信息 腾讯地图
 |-- distance Number 路线距离,单位:米 all
 |-- duration Number 路线估算时间,单位:分钟 all
 |-- polyline Array 线路坐标点串,可用于在地图中绘制路线 all
 |-- destination Object 公交终点站(用于指示方向) 腾讯地图
  |-- id String 站点唯一标识 腾讯地图
  |-- title String 终点站名 腾讯地图
 |-- start_time String 首班车时间 腾讯地图
 |-- end_time String 末班车时间 腾讯地图
 |-- geton Object 上车站 all
  |-- id String 站点唯一标识 all
  |-- title String 终点站名 all
  |-- location Object 站点经纬度坐标 all
   |-- lat Number 纬度 all
   |-- lng Number 经度 all
  |-- exit Object 出入口 腾讯地图
   |-- id String 唯一标识 腾讯地图
   |-- title String 出入口名称 腾讯地图
 |-- getoff Object 下车站 all
  |-- id String 站点唯一标识 all
  |-- title String 终点站名 all
  |-- location Object 站点经纬度坐标 all
   |-- lat Number 纬度 all
   |-- lng Number 经度 all
  |-- exit Object 站点经纬度坐标 腾讯地图
   |-- id String 唯一标识 腾讯地图
   |-- title String 出入口名称 腾讯地图
 |-- stations Array 经停站列表 all
  |-- id String 站点唯一标识 all
  |-- title String 终点站名 all
  |-- location Object 站点经纬度坐标 all
   |-- lat Number 纬度 all
   |-- lng Number 经度 all
  1. 交通工具 - 火车(“vehicle”:“RAIL”): 本段为公共交通的子对象,vehicle属性值为"RAIL"
参数 类型 说明 兼容性
mode String 交通方式,固定值:transit all
lines Array lines线路信息 all
 |-- vehicle String 交通工具:地铁(RAIL) all
 |-- title String 车次名称 all
 |-- station_count Number 经停站数 腾讯地图
 |-- running_status Number 线路运营状态,取值范围:
300:正常
301:可能错过末班车
302:首班车还未发出
303:停运
腾讯地图
 |-- price Number 预估费用,单位:分,返回-1时为缺少票价信息 腾讯地图
 |-- distance Number 路线距离,单位:米 all
 |-- duration Number 路线估算时间,单位:分钟 all
 |-- departure_time String 发车时间 腾讯地图
 |-- arrival_time String 到达时间 腾讯地图
 |-- days_count Number 耗时天数,1为当天到达,2为隔天到达,以此类推 腾讯地图
 |-- polyline Array 线路坐标点串,可用于在地图中绘制路线 腾讯地图
 |-- destination Object 公交终点站(用于指示方向) 腾讯地图
  |-- id String 站点唯一标识 腾讯地图
  |-- title String 终点站名 腾讯地图
 |-- geton Object 上车站 all
  |-- id String 站点唯一标识 all
  |-- title String 终点站名 all
  |-- location Object 站点经纬度坐标 all
   |-- lat Number 纬度 all
   |-- lng Number 经度 腾讯地图
  |-- adcode String 上车站点所在城市的adcode 高德地图
  |-- time String 上车点发车时间 高德地图
  |-- start Number 是否始发站,1表示为始发站,0表示非始发站 高德地图
 |-- getoff Object 下车站 all
  |-- id String 站点唯一标识 all
  |-- title String 终点站名 all
  |-- location Object 站点经纬度坐标 all
   |-- lat Number 纬度 all
   |-- lng Number 经度 all
  |-- adcode String 上车站点所在城市的adcode 高德地图
  |-- time String 上车点发车时间 高德地图
  |-- end Number 是否为终点站,1表示为终点站,0表示非终点站 高德地图
 |-- stations Array 经停站列表 腾讯地图
  |-- id String 站点唯一标识 腾讯地图
  |-- title String 终点站名 腾讯地图
  |-- location Object 站点经纬度坐标 腾讯地图
   |-- lat Number 纬度 腾讯地图
   |-- lng Number 经度 腾讯地图
 |-- spaces Object 仓位及价格信息 高德地图
  |-- code String 仓位编码 高德地图
  |-- cost String 仓位费用 高德地图
  1. 交通工具 - 出租车(“vehicle”:“TAXI”): 本段为公共交通的子对象,vehicle属性值为"TAXI"(仅高德地图支持"TAXI")
参数 类型 说明 兼容性
mode String 交通方式,固定值:transit 高德地图
lines Array lines线路信息 高德地图
 |-- vehicle String 交通工具:地铁(TAXI) 高德地图
 |-- price String 预估费用,单位:元,返回-1时为缺少票价信息 高德地图
 |-- drivetime Number 打车预计花费时间,单位:分 高德地图
 |-- distance Number 打车距离,单位:米 高德地图
 |-- polyline String 线路点集合 高德地图
 |-- startpoint String 打车起点经纬度 高德地图
 |-- startname String 打车起点名称 高德地图
 |-- endpoint String 打车终点经纬度 高德地图
 |-- endname String 打车终点名称 高德地图

# 全局错误码

错误模块 错误码 说明
uni-map-common 110 请求来源未被授权
uni-map-common 111 签名验证失败
uni-map-common 112 IP未被授权
uni-map-common 113 此功能未被授权
uni-map-common 120 此key每秒请求量已达到上限
uni-map-common 121 此key每日调用量已达到上限
uni-map-common 122 ip访问超限
uni-map-common 123 账号访问限制(如余额不足)
uni-map-common 160 sig参数不支持此请求类型
uni-map-common 161 sig参数不支持和非object的POST JSON一起使用
uni-map-common 190 无效的KEY
uni-map-common 199 此key未开启webservice功能
uni-map-common 301 缺少必要字段key
uni-map-common 311 key格式错误
uni-map-common 300 缺少必要字段
uni-map-common 306 缺少参数
uni-map-common 311 服务不支持https请求
uni-map-common 320 参数数据类型错误
uni-map-common 330 参数长度错误
uni-map-common 351 存在不共存的参数
uni-map-common 324 get和post中的同一参数值不相同
uni-map-common 326 起终点距离过近
uni-map-common 327 附近无公交站
uni-map-common 328 无可达公交路线
uni-map-common 329 无可达火车路线
uni-map-common 331 查询条件过长
uni-map-common 332 途径点个数超过限制
uni-map-common 333 存在无法吸附的坐标点
uni-map-common 335 不支持该城市的公交查询
uni-map-common 341 缺少keyword(关键词)
uni-map-common 344 附近无火车站(公交)
uni-map-common 347 查询无结果
uni-map-common 348 参数错误
uni-map-common 364 是否扩大搜索参数只能为0或1
uni-map-common 365 纬度不能超过±90
uni-map-common 366 经度不能超过±180
uni-map-common 373 起终点距离超长
uni-map-common 374 起终点坐标错误
uni-map-common 375 局域网IP无法定位
uni-map-common 377 提供的起终点无法规划出导航线路
uni-map-common 378 提供的起终点无法规划出步行线路
uni-map-common 379 提供的起终点无法规划出公交线路
uni-map-common 380 坐标类型必须在有坐标的情况下使用
uni-map-common 382 IP无法定位
uni-map-common 384 提供的起终点无法规划出骑行线路
uni-map-common 387 没有对应的POI
uni-map-common 393 没有符合条件的数据
uni-map-common 394 错误的查询条件
uni-map-common 395 传入参数不合法
uni-map-common 396 最多支持200个坐标点,且起终点数目乘积最多为625(距离矩阵)
uni-map-common 397 一对多最多支持200个坐标点,多对多最多支持25个坐标点且起终点数目乘积最多为625(距离矩阵)
uni-map-common 500 服务响应失败

# 常见问题

# 使用uni-map-common后,我还需要购买5万元的地图商业授权费用吗?

答:使用地图服务需要商业授权,可联系DCloud申请折扣优惠。详情参考 商业授权相关说明