mtlMap 封装了高德地图的 SDK。高德地图 SDK 是为移动端应用提供的一套简单易用的LBS定位服务接口,专注于为广大开发者提供最好的综合定位服务,通过使用高德地图SDK,开发者可以轻松为应用程序实现智能、精准、高效的定位功能。
使用插件前,请先注册高德开放平台账号。
申请 API Key
用户在使用本原生插件之前需要获取高德地图API Key,Key 申请的具体流程请参照 申请Key。
配置 config 文件
申请到 高德地图 API Key 后,需要配置在 config.xml 文件内。
IOS配置如下:
<feature name="mtlMap">
<param name="ios_api_key" value="dd5343be258aa304698e42cd0fc761cd" />
</feature>
安卓配置如下:
Android 需要将以下代码拷贝到config.xml中,其中的value值替换成你的appKey即可
<meta-data name="com.amap.api.v2.apikey" value="your app key"/>
注意:
在 iOS 平台上,若要支持后台定位需配置 config.xml 文件的 location 字段。
iOS 端 SDK 更新为高德最新版本SDK,最新版本的SDK包含 IDFA 相关功能。所以 iOS 端提交 AppStore 时必须认真阅读 提交AppStore必读,以及如何解决因获取 IDFA 被 AppStore 拒绝的问题?
在 iOS 端,打开高德、百度、腾讯、 苹果地图导航的相关接口,需配置 config.xml 文件 配置可被检测的URL Scheme
百度地图:baidumap
高德地图:iosamap
腾讯地图:qqmap
注意:应工信部要求,App 安装到设备上首次调用本原生插件前必须先弹出隐私协议,详情参考SDK合规使用方案。之后需先调用 var mtlMap = api.require('mtlMap'); mtlMap.updateLocationPrivacy(); mtlMap.updateSearchPrivacy(); mtlMap.updateMapViewPrivacy(); 否则地图和定位及搜索接口都无效。
获取当前坐标
getLocation(callback(ret))
ret:
{
status:true, //布尔类型;操作成功状态值
latitude:'', //string;定位纬度信息
longitude:'', //string;定位经度信息
address:'', //string;定位地址信息,可能为空
codeType:'', //string;定位坐标系,高德地图国内定位返回"GCJ02"坐标系经纬度,国外返回"WGS84"坐标系坐标。iOS不支持
message:'' //string 错误信息,status为false时返回
}
var mtlMap = api.require('mtlMap');
mtlMap.getLocation(function(ret) {
if (ret.status) {
api.alert({
msg: JSON.stringify(ret)
})
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
打开地图查看指定坐标位置
openLocation({params}, callback(ret))
latitude:
longitude:
searchRaidus:
ret:
{
status:true,//布尔类型;操作成功状态值
latitude:'',//string;定位纬度信息
longitude:'',//string;定位经度信息
address:'',//string;定位地址信息,可能为空
codeType:'',//string;定位坐标系,高德地图国内定位返回"GCJ02"坐标系经纬度,国外返回"WGS84"坐标系坐标
message:''//string 错误信息,status为false时返回
}
var mtlMap = api.require('mtlMap');
mtlMap.openLocation(function(ret) {
if (ret.status) {
api.alert({
msg: JSON.stringify(ret)
})
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
在地图中展示目标点以及跳转第三方地图进行导航
markAndNavigationDestination({params}, callback(ret))
address:
subAddress:
latitude:
longitude:
infomation:
userInfo:
{
header:'', //string类型;(可选)目标头像(如果为空则根据名称自动生成)
userId:'', //string类型;(可选)目标userId
userName:''//string类型;(可选) 目标名称
}
navigation:
ret:
{
status:true,//布尔类型;操作成功状态值
message:''//字符串类型;操作失败时返回错误信息
}
var mtlMap = api.require('mtlMap');
mtlMap.markAndNavigationDestination({
address:'北京市海淀区颐和园路5号',
subAddress:'北京大学',
latitude:39.992806,
longitude:116.310905,
userInfo:{
header:'https://iconfont.alicdn.com/t/74604bac-ec13-488a-9e27-daa17be39db8.png',
userId:'10001',
userName:'王先生'
},
infomation:'重要合作伙伴',
navigation:true
},function(ret){
api.alert({
msg: JSON.stringify(ret)
})
});
iOS系统,Android系统
可提供的1.0.0及更高版本
打开第三方地图导航
openMapToNavi({params})
type:
latitude:
longitude:
var mtlMap = api.require('mtlMap');
mtlMap.openMapToNavi(function(ret) {
if (ret.status) {
api.alert({
msg: JSON.stringify(ret)
})
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
开启持续定位
continuousLocationStart(callback(ret))
ret:
{
status:true,//布尔类型;操作成功状态值
message:''//字符串类型;操作失败时返回错误信息
}
var mtlMap = api.require('mtlMap');
mtlMap.continuousLocationStart(function(ret) {
if (ret.status) {
api.alert({
msg: JSON.stringify(ret)
})
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
获取持续定位信息
continuousLocationGet(callback(ret))
ret:
{
latitude:'', //string;定位纬度
longitude:'', //string;定位经度
address:'', //string;定位地址描述信息
accuracy:'', //string;定位精度
city:'', //string;城市名称
cityCode:'', //string;城市编码
speed:'', //string;速度
province:'', //string;省信息
time:'', //string;定位时间
}
var mtlMap = api.require('mtlMap');
mtlMap.continuousLocationGet(function(ret) {
if (ret) {
api.alert({
msg: JSON.stringify(ret)
})
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
关闭持续定位
continuousLocationStop(callback(ret))
ret:
{
status:true,//布尔类型;操作成功状态值
message:''//字符串类型;操作失败时返回错误信息
}
var mtlMap = api.require('mtlMap');
mtlMap.continuousLocationStop(function(ret) {
if (ret.status) {
api.alert({
msg: JSON.stringify(ret)
})
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本