privacyCompliance showMap showPosition switchMapType timeRoadCondition is3DMap setMapView setViewField setViewLimit drawSignInMap drawPlaneInMap drawCircleInMap searchLocation addressResolution reAddressResolution queryDistrict planCarRoute planWalkRoute planBikeRoute planBusRoute onOutLineMap offOutLineMap getOutLineMapData dlOffLineCityMap stopOffLineCityMap clearOffLineCityMap isOffLineCityUp showOutLineMap carMoveAnimation convertLoglat convertPoint setMapUIControls changeMapUIPosition
TencentMap 封装了腾讯地图原生SDK ,使用本插件可以轻松访问腾讯地图服务和数据,本插件提供地图显示、实时路况、离线地图、地址解析等功能接口。本插件中方法基于同一个Activity,如发现某些功能未实现,请尝试关闭其他功能再试。
注意事项:
使用本插件前需要先获取AppKey
得到AppKey之后,需要配置 config.xml 文件,配置方法如下:
<meta-data name="TencentMapSDK" value="您申请的Key"/>
申请同意隐私政策 申请同意隐私政策
注意:使用本插件必须首先实现本方法,同意隐私政策后才能正常使用地图功能。
privacyCompliance({param})
agreeprivacy:
var TencentMap = api.require('TencentMap');
var param = {
"agreeprivacy":true
}
TencentMap.privacyCompliance(param);
Android系统,iOS系统
可提供的1.0.0及更高版本
显示地图
注意:本插件中的地图页面由Android Activity渲染,直接使用安卓设备的关闭手势即可关闭地图页面。
showMap()
var TencentMap = api.require('TencentMap');
TencentMap.showMap();
Android系统,iOS系统
可提供的1.0.0及更高版本
获取定位信息并在地图上展示
注意1:此方法需要在showMap()之前调用;定位或取消定位,根据所传参数不同,都由本接口实现。
注意2:触发该方法后会在地图上显示定位,但不返回具体的信息字段,如需详细的定位信息字段请使用TencentLocation插件。
showPosition({params},callback(ret))
status:
ret:
{
"status":false //布尔类型;定位失败返回该字段
"msg":"" //字符串类型;取值范围:
//"定位失败,请检查网络"(由于网络原因引起的定位失败会返回该字段)
//"定位失败,请检查是否打开定位权限"(由于定位权限原因引起的定位失败会返回该字段)
}
var TencentMap = api.require('TencentMap');
var param = {
"status":true //开启定位
"status":false //关闭定位
}
TencentMap.showPosition(param,function(ret){
alert(JSON.stringify(ret));
});
Android系统,iOS系统
可提供的1.0.0及更高版本
切换地图类型
注意:此方法需要在showMap()之前调用
switchMapType({params})
type:
var TencentMap = api.require('TencentMap');
var param = {
"type":"dark"
}
TencentMap.switchMapType(param);
Android系统,iOS系统
可提供的1.0.0及更高版本
实时路况
注意:此方法需要在showMap()之前调用;开启和关闭实时路况,通过所传参数不同,都由本接口实现。
timeRoadCondition({params})
roadCondition:
var TencentMap = api.require('TencentMap');
TencentMap.timeRoadCondition({
"roadCondition":true //开启实时路况
"roadCondition":false //关闭实时路况
});
Android系统,iOS系统
可提供的1.0.0及更高版本
显示3D立体建筑物效果
注意:此方法需要在showMap()之前调用;开启或关闭3D建筑物效果,通过所传参数不同,都由本接口实现。
is3DMap({params})
is3D:
var TencentMap = api.require('TencentMap');
TencentMap.is3DMap({
"is3D":true //开启3D建筑物效果
"is3D":false //关闭3D建筑物效果
});
Android系统,iOS系统
可提供的1.0.0及更高版本
设置地图视野
说明:以第三人称视角俯视观察建筑物
注意:此方法需要在showMap()之前调用;设置或取消地图视野,根据所传参数不同,都由本接口实现。
setMapView({param})
status:
longitude:
latitude:
zoom:
skew:
rotate:
isAnimation:
var TencentMap = api.require('TencentMap');
var param = {
"status":true,//设置地图视野
"status":false,//关闭地图视野
"longitude":116.337000,
"latitude":39.977290,
"zoom":19,
"skew":45,
"rotate":45,
"isAnimation":true
}
TencentMap.setMapView(param);
Android系统,iOS系统
可提供的1.0.0及更高版本
设置视野范围
说明:允许将地图设置到合适的视野,并把一系列点、地图覆盖物都在一屏内展示出来。
注意:此方法需要在showMap()之前调用;设置或取消地图视野范围,根据所传参数不同,都由本接口实现。
setViewField({param})
status:
pointArray:
类型:数字类型数组
描述:视野范围坐标点的经度纬度集合
说明:
该数组需要传递【偶数】个数元素
每两个元素是一个坐标点的坐标。例如所传数组为:
"pointArray":[
40.042893,
116.269673,
40.038951,
116.275241,
40.039970,
116.275250
]
那么说明,视野范围坐标点一(40.042893,116.269673)、坐标点二(40.038951,116.275241),以此类推。
每一个范围点的纬度必须在前,经度必须在后
centerLat:
centerLog:
padding:
var TencentMap = api.require('TencentMap');
var param = {
"status":true, //设置视野范围
"status":false, //取消视野范围设置
"pointArray":[
40.042893,
116.269673,
40.038951,
116.275241,
40.039970,
116.275250
],
"centerLat":40.040429,
"centerLog":116.273525,
"padding":50
}
TencentMap.setViewField(param);
Android系统,iOS系统
可提供的1.0.0及更高版本
限制显示区域
说明:只能在一定区域内缩放、移动地图视野。
注意:此方法需要在showMap()之前调用;设置或取消区域显示限制,根据所传参数不同,都由本接口实现。
setViewLimit({params})
status:
aLat:
aLog:
bLat:
bLog:
var TencentMap = api.require('TencentMap');
var param = {
"status":true, //开启视野限制
"status":false, //取消视野限制
"aLat":40.042893,
"aLog":116.269673,
"bLat":40.038951,
"bLog":116.275241
}
TencentMap.setViewLimit(param);
Android系统,iOS系统
可提供的1.0.0及更高版本
绘制标记点
说明:在地图上标记一个经纬度坐标的覆盖物。
注意:此方法需要在showMap()之前调用;绘制或取消绘制标记点,根据所传参数不同,都由本接口实现。
signInMap({param},callback(ret))
status:
longitude:
latitude:
isAllowClick:
类型:布尔类型
描述:(选填项)标记点是否允许被点击,允许后点击会返回该点经纬度、海拔
取值范围:
默认值:false
isAllowDrag:
flat:
clockwise:
rotation:
ret:
{
"status":true //布尔类型;当开启点击或拖拽后,返回以下字段
"latitude":40.011313 //纬度
"longitude":116.391907 //经度
"altitude":0 //海拔
}
var TencentMap = api.require('TencentMap');
var param = {
"status":true,
"longitude":116.391907,
"latitude":40.011313,
"isAllowClick":true,
"isAllowDrag":true,
"flat":true,
"clockwise":false,
"rotation":30
}
TencentMap.signInMap(param,function(ret){
console.log(JSON.stringify(ret));
});
Android系统,iOS系统
可提供的1.0.0及更高版本
绘制遮挡面
注意:此方法需要在showMap()之前调用;绘制或取消绘制遮挡面,根据所传参数不同,都由本接口实现。
drawPlaneInMap({param})
status:
drawPlaneArr:
类型:字符串类型
描述:经纬度坐标点
说明:例如,所传字符串为:
{"drawPlaneArr":"39.984864,116.305756,39.983618,116.305848,39.982347,116.305966,39.982412,116.308111,39.984122,116.308224,39.984955,116.308099,39.984864,116.305756"}
由此说明,坐标点一:(39.984864,116.305756)、坐标点二:(39.983618,116.305848),以此类推
坐标点经纬度顺序不能颠倒
坐标点经纬度一一对应
var TencentMap = api.require('TencentMap');
var param = {
"status":true, //绘制遮挡面
"status":false //取消绘制遮挡面
"drawPlaneArr":""
}
TencentMap.drawPlaneInMap(param)
Android系统,iOS系统
可提供的1.0.0及更高版本
绘制标记圆
注意:此方法需要在showMap()之前调用;绘制或取消绘制标记圆,根据所传参数不同,都由本接口实现。
drawCircleInMap({param})
status:
longitude:
latitude:
cirRadius:
var TencentMap = api.require('TencentMap');
var param = {
"status":true, //绘制圆
"status":false, //取消绘制
"longitude":116.307771,
"latitude":39.984059,
"cirRadius":1000
}
TencentMap.drawCircleInMap(param);
Android系统,iOS系统
可提供的1.0.0及更高版本
搜索地点并在地图中显示
注意:此方法需要在showMap()之前调用;开始或取消搜索,根据所传参数不同,都由本接口实现。
searchLocation({params},callback(ret))
status:
locationName:
locationCity:
autoExtend:
类型:布尔类型
描述:(选填项)如果在当前所设置区域内未找到地点,是否扩大区域
取值范围
默认值:false
ret:
{
"status":"" //布尔类型;true||false
"code":"" //数字类型;错误码(地址查询错误时返回此字段)
"msg":"" //字符串类型;错误信息(地址查询错误时返回此字段)
"result0":{ //地址查找成功时返回此字段
"address":"北京市海淀区北清路68号" //地址
"title":"用友产业园" //建筑名称
"tel":"010-62436688" //联系电话
"longitude":116.238672 //经度
"latitude":40.069065 //纬度
}
"result1":{
...
},
}
var TencentMap = api.require('TencentMap');
var param = {
"status":true,
"locationName":"用友产业园",
"locationCity":"北京",
"autoExtend":false
}
TencentMap.searchLocation(param,function(ret){
console.log(JSON.stringify(ret));
});
Android系统,iOS系统
可提供的1.0.0及更高版本
地址解析
说明:由地址描述到所述位置坐标的转换、并在地图上标注功能。
注意:此方法需要在showMap()之前调用;地址解析或取消解析,根据所传参数不同,都由本接口实现。
addressResolution({params},callback(ret))
status:
address:
region:
ret:
{
"status":true //布尔类型;true||false
"code":"" //数字类型;错误码(地址解析错误时返回此字段)
"msg":"" //字符串类型;错误信息(地址解析错误时返回此字段)
"province":"北京市" //省
"city":"北京市" //市
"district":"海淀区" //区
"street":"海淀西大街" //街道
"street_number":"74" //街道代码
"latitude":39.982915 //纬度
"longitude":116.307015 //经度
}
var TencentMap = api.require('TencentMap');
var param = {
"status":true, //地址解析
"status":false, //取消
"address":"北京市海淀区彩和坊路海淀西大街74号",
"region":"北京"
}
TencentMap.addressResolution(param,function(ret){
console.log(JSON.stringify(ret));
});
Android系统,iOS系统
可提供的1.0.0及更高版本
逆地址解析
说明:由坐标到坐标所在位置的文字描述转换功能
注意:此方法需要在showMap()之前调用;开启或取消逆解析,根据所传参数不同,都由本接口实现。
reAddressResolution({param},callback(ret))
status:
longitude:
latitude:
category:
ret:
{
"status":"" //布尔类型;true||false
"code":"" //数字类型;错误码(地址解析错误时返回此字段)
"msg":"" //字符串类型;错误信息(地址解析错误时返回此字段)
"result0":"" //解析结果
"result1":""
...
}
var TencentMap = api.require('TencentMap');
var param = {
"status":true, //开启地址逆解析
"status":false, //取消地址逆解析
"latitude":39.984154,
"longitude":116.307490,
"category":"面包"
}
TencentMap.reAddressResolution(param,function(ret){
console.log(JSON.stringify(ret));
});
Android系统,iOS系统
可提供的1.0.0及更高版本
行政区查询
注意:行政区划的数据并不会经常更新,用户可以降低查询频率
stopFootOrRidePosition()
ret:
{
"status":"" //布尔类型;true||false
"msg":"" //字符串类型;查询错误信息(查询失败返回此字段)
"result0":{
"fullname":"北京市" //全称
"name":"北京" //名称
"latitude":39.90469 //纬度
"longitude":116.40717 //经度
}
"result1":{
"fullname":"天津市"
"name":"天津"
"latitude":39.0851
"longitude":117.19937
}
...
}
var TencentMap = api.require('TencentMap');
module.queryDistrict(function(ret){
console.log(JSON.stringify(ret));
})
Android系统,iOS系统
可提供的1.0.0及更高版本
汽车路线规划
注意:此方法需要在showMap()之前调用;开始或取消路线规划,根据所传参数不同,都由本接口实现。
planCarRoute({params},callback(ret))
status:
fromLat:
fromLog:
toLat:
toLog:
roadType:
carPolicy:
preference:
heading:
speed:
accuracy:
ret:
{
"status":"" //布尔类型;true||false
"msg":"" //字符串类型;导航失败原因(路线规划失败时返回此字段)
"code":"" //数字类型;错误码(路线规划失败时返回此字段)
"distance":500609 //数字类型;导航距离
"duration":638 //数字类型;所需时间
"journeyThrough":[ //数组类型;导航过程坐标点经纬度
{"lat":26.646451,"log":117.098207}
{"lat":26.645536422729492,"log":117.09788513183594}
{"lat":26.644926071166992,"log":117.09784698486328}
...
]
}
var TencentMap = api.require('TencentMap');
var param = {
"status":true, //开启路线规划
"status":false //关闭路线规划
"fromLat":26.66493,
"fromLog":117.09568,
"toLat":26.8857,
"toLog":120.00514,
"roadType":"roadType",
"carPolicy":"pickup",
"heading":90,
"speed":10,
"preference":"avoidHighWay",
"accuracy":30,
}
TencentMap.planCarRoute(param,function(ret){
console.log(JSON.stringify(ret));
})
Android系统,iOS系统
可提供的1.0.0及更高版本
步行路线规划
注意:此方法需要在showMap()之前调用;开始或取消路线规划,根据所传参数不同,都由本接口实现。
planWalkRoute({params},callback(ret))
status:
fromLat:
fromLog:
toLat:
toLog:
ret:
{
"status":"" //布尔类型;true||false
"code":"" //数字类型;错误码(路线规划失败时会返回该字段)
"msg":"" //字符串类型;描述信息(路线规划失败时会返回该字段)
"result":[
{
"distance":302 //行进距离
"description":"行进302米,直行" //信息描述
"direction":"西" //行进方向
}
...
]
}
var TencentMap = api.require('TencentMap');
var param = {
"status":true, //开启路线规划
"status":false //关闭路线规划
"fromLat":40.15008,
"fromLog":116.2956047,
"toLat":40.06877,
"toLog":116.2386506,
}
TencentMap.planWalkRoute(param,function(ret){
console.log(JSON.stringify(ret));
})
Android系统,iOS系统
可提供的1.0.0及更高版本
骑行路线规划
注意:此方法需要在showMap()之前调用;开始或取消路线规划,根据所传参数不同,都由本接口实现。
planWalkRoute({params},callback(ret))
status:
fromLat:
fromLog:
toLat:
toLog:
ret:
{
"status":"" //布尔类型;true||false
"code":"" //数字类型;错误码(路线规划失败时会返回该字段)
"msg":"" //字符串类型;描述信息(路线规划失败时会返回该字段)
"result":[
{
"distance":16 //距离
"description":"从起点朝西,行进16米,偏左转" //描述信息
"direction":"西" //行进方向
}
...
]
}
var TencentMap = api.require('TencentMap');
var param = {
"status":true, //开启路线规划
"status":false //关闭路线规划
"fromLat":40.15008,
"fromLog":116.2956047,
"toLat":40.06877,
"toLog":116.2386506,
}
TencentMap.planBikeRoute(param,function(ret){
console.log(JSON.stringify(ret));
})
Android系统,iOS系统
可提供的1.0.0及更高版本
公交地铁路线规划
注意:此方法需要在showMap()之前调用;开始或取消路线规划,根据所传参数不同,都由本接口实现。
planBusRoute({params},callback(ret))
status:
fromLat:
fromLog:
toLat:
toLog:
isSubway:
ret:
{
"status":"" //布尔类型;true||false
"code":"" //数字类型;错误码(路线规划失败时会返回该字段)
"msg":"" //字符串类型;描述信息(路线规划失败时会返回该字段)
"line":[ //数组类型;路线规划详情
{
"vehicle":"SUBWAY" //出行类型;
//取值范围:"SUBWAY":地铁;"BUS":公交
"title":"地铁昌平线" //线路名称
"station_count":3 //经停站数量
"geton":"沙河" //起点站
"getoff":"生命科学园" //终点站
}
...
]
}
var TencentMap = api.require('TencentMap');
var param = {
"status":true, //开启路线规划
"status":false //关闭路线规划
"fromLat":40.15008,
"fromLog":116.2956047,
"toLat":40.06877,
"toLog":116.2386506,
"isSubway":false
}
TencentMap.planBusRoute(param,function(ret){
console.log(JSON.stringify(ret));
})
Android系统,iOS系统
可提供的1.0.0及更高版本
打开离线地图功能开关
注意:使用离线地图相关功能必须先实现此方法
onOutLineMap(callback(ret))
ret:
{
"status":true //布尔类型;开启成功
}
var TencentMap = api.require('TencentMap');
module.onOutLineMap(param,function(ret){
alert(JSON.stringify(ret));
})
Android系统,iOS系统
可提供的1.0.0及更高版本
关闭离线地图功能开关
offOutLineMap(callback(ret))
ret:
{
"status":true //布尔类型;关闭成功
}
var TencentMap = api.require('TencentMap');
module.offOutLineMap(param,function(ret){
alert(JSON.stringify(ret));
})
Android系统,iOS系统
可提供的1.0.0及更高版本
获取可使用的离线地图数据资源列表
建议在使用离线地图功能前实现该方法。该方法的返回字段是作为离线地图中的下载、查询功能的必须参数。
getOutLineMapData(cakkback(ret))
ret:
{
"status":false //未打开离线地图开关时返回此字段
"msg":"请检查是否打开离线地图开关" //未打开离线地图开关时返回此字段
"0":{
"name":"全国概略图" //数据名称
"size":7483562 //数据大小
"isUpgrade":true //是否需要更新;true代表数据需要更新;false代表数据已是最新
"percentage":0 //数据百分比[0-100]
}
"1":{"name":"北京市","size":195609312,"isUpgrade":true,"percentage":0}
"2":{"name":"上海市","size":192156603,"isUpgrade":true,"percentage":0}
"3":{"name":"天津市","size":99778048,"isUpgrade":true,"percentage":0}
"4":{"name":"重庆市","size":182727505,"isUpgrade":true,"percentage":0}
"32":{"name":"香港特别行政区","size":38859740,"isUpgrade":true,"percentage":0}
"33":{"name":"澳门特别行政区","size":6860485,"isUpgrade":true,"percentage":0}
"34":{"name":"台湾省","size":43917885,"isUpgrade":true,"percentage":0}
}
var TencentMap = api.require('TencentMap');
TencentMap.getOutLineMapData(function(ret){
console.log(JSON.stringify(ret));
});
Android系统,iOS系统
可提供的1.0.0及更高版本
获取某个城市的离线控制器、下载城市的离线地图
dlOffLineCityMap({param},callback(ret))
cityCode:
ret:
{
"status":"" //字符串类型;下载状态
//取值范围:
READY(准备开始)
START(开始下载)
DOWNLOADING(正在下载)
COMPLETED(下载完成)
CANCEL(取消下载)
"process":"" //数字类型;下载进度
}
var TencentMap = api.require('TencentMap');
var param = {
"cityCode":3
}
TencentMap.dlOffLineCityMap(param,function(ret){
console.log(JSON.stringify(ret));
});
Android系统,iOS系统
可提供的1.0.0及更高版本
取消下载
stopOffLineCityMap(callback(ret))
ret:
{
"status":true
"msg":"已停止下载"
}
var TencentMap = api.require('TencentMap');
TencentMap.stopOffLineCityMap(function(ret){
alert(JSON.stringify(ret));
});
Android系统,iOS系统
可提供的1.0.0及更高版本
清除离线地图数据下载缓存
clearOffLineCityMap(callback(ret))
ret:
{
"status":"" //布尔值;true||false
}
var TencentMap = api.require('TencentMap');
TencentMap.clearOffLineCityMap(function(ret){
alert(JSON.stringify(ret));
});
Android系统,iOS系统
可提供的1.0.0及更高版本
检查城市离线地图数据是否需要更新
isOffLineCityUp({param},callback(ret))
cityCode:
ret:
{
"name":"" //字符串类型;城市名称
"status":"" //布尔类型;true||false
"msg":"" //"离线地图数据需要更新"
//"离线地图数据已是最新"
}
var TencentMap = api.require('TencentMap');
var param = {
"cityCode":1
}
TencentMap.isOffLineCityUp(param,function(ret){
alert(JSON.stringify(ret));
})
Android系统,iOS系统
可提供的1.0.0及更高版本
打开离线地图
注意:调用该方法前,首先需要调用onOutLineMap()、dlOffLineCityMap()方法;并且,showOutLineMap参数值所对应的城市地图数据需确保已经下载完毕;为确保离线地图打开成功,建议参数值与dlOffLineCityMap()参数值相同
showOutLineMap({param},callback(ret))
cityCode:
{
"status":false //布尔类型;未打开离线地图开关时返回此字段
"msg":"" //字符串类型;取值范围:
//"请检查是否打开离线地图开关"(未打开离线地图开关时返回此字段)
//"cityCode错误或不支持离线地图"(传入了不存在的cityCode或不支持离线地图城市返回此字段)
}
##示例代码
var TencentMap = api.require('TencentMap');
var param = {
"cityCode":3
}
TencentMap.showOutLineMap(param,function(ret){
alert(JSON.stringify(ret));
});
Android系统,iOS系统
可提供的1.0.0及更高版本
路线动态移动
注意:展示如何在地图上实现轨迹点的平滑移动效果;目前该方法不支持自定义样式
注意:此方法需要在showMap()之前调用;动态移动或取消移动,根据所传参数不同,都由本接口实现。
carMoveAnimation({params},callback(ret))
status:
alignmentArr:
var TencentMap = api.require('TencentMap');
var param = {
"status":true //开启
"status":false //关闭
"alignmentArr":"39.98409,116.30804,39.98409,116.3081,39.98409,116.3081,39.98397,116.30809,39.9823,116.30809,39.9811,116.30817,39.9811,116.30817,39.97918,116.308266,39.97918,116.308266,39.9791,116.30827,39.9791,116.30827,39.979008,116.3083,39.978756,116.3084,39.978386,116.3086,39.977867,116.30884,39.977547,116.308914"
}
TencentMap.carMoveAnimation(param);
Android系统,iOS系统
可提供的1.0.0及更高版本
经纬度转换为像素点
convertLoglat({params},callback(ret))
longitude:
latitude:
ret:
{
"x":803 //数字类型;横坐标像素
"y":627 //数字类型;竖坐标像素
}
var TencentMap = api.require('TencentMap');
var param = {
"latitude":39.977290,
"longitude":116.337000
}
TencentMap.convertLoglat(param,function(ret){
alert(JSON.stringify(ret));
});
Android系统,iOS系统
可提供的1.0.0及更高版本
像素点转换成经纬度
convertPoint({params},callback(ret))
x:
y:
ret:
{
"latitude":39.977290 //纬度
"longitude":116.337000 //经度
}
var TencentMap = api.require('TencentMap');
var param = {
"x":803,
"y":627
}
TencentMap.convertPoint(param,function(ret){
alert(JSON.stringify(ret));
});
Android系统,iOS系统
可提供的1.0.0及更高版本
设置UI控件
注意:此方法需要在showMap()之前调用;设置或取消设置,根据所传参数不同,都由本接口实现。
setMapUIControls({params})
status:
logoSize:
isCompassShow:
isScaleShow
isfadeInOrOut
var TencentMap = api.require('TencentMap');
var param = {
"status":true, //开启设置UI控件
"status":false, //关闭设置UI控件
"logoSize":0.7,
"isCompassShow":true,
"isScaleShow":true,
"isfadeInOrOut":true
}
TencentMap.setMapUIControls(param)
Android系统,iOS系统
可提供的1.0.0及更高版本
调整UI位置
changeMapUIPosition({param})
status:
logoPosition:
scalePosition:
compassTop:
compassLeft:
var TencentMap = api.require('TencentMap');
var param = {
"status":true, //修改UI控件位置
"status":false, //取消修改UI控件位置
"logoPosition":3,
"scalePosition":0,
"compassTop":50,
"compassLeft":100
}
TencentMap.changeMapUIPosition(param);
Android系统,iOS系统
可提供的1.0.0及更高版本