mtlMap

mtlMap 封装了高德地图的 SDK。高德地图 SDK 是为移动端应用提供的一套简单易用的LBS定位服务接口,专注于为广大开发者提供最好的综合定位服务,通过使用高德地图SDK,开发者可以轻松为应用程序实现智能、精准、高效的定位功能。

使用插件前,请先注册高德开放平台账号。

申请 API Key

用户在使用本原生插件之前需要获取高德地图API Key,Key 申请的具体流程请参照 申请Key

配置 config 文件

申请到 高德地图 API Key 后,需要配置在 config.xml 文件内。

IOS配置如下:

  • 名称:aMapLBS
  • 参数:apiKey
  • 配置示例:
  <feature name="mtlMap">
    <param name="ios_api_key" value="dd5343be258aa304698e42cd0fc761cd" />
  </feature>
  • 字段描述:
  • ios_api_key:在高德地图开放平台申请的 iOS 版 ak

安卓配置如下:

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

获取当前坐标

getLocation(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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

打开地图查看指定坐标位置

openLocation({params}, callback(ret))

params

latitude:

  • 类型:数字类型
  • 描述:(必填)高德地图"GCJ02"坐标系纬度信息

longitude:

  • 类型:数字类型
  • 描述:(必填)高德地图"GCJ02"坐标系经度信息

searchRaidus:

  • 类型:数字类型
  • 描述:(可选)查询半径(单位:米)

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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

在地图中展示目标点以及跳转第三方地图进行导航

markAndNavigationDestination({params}, callback(ret))

params

address:

  • 类型:string
  • 描述:(可选)目标地区地址

subAddress:

  • 类型:string
  • 描述:(可选)目标地区详细地址

latitude:

  • 类型:数字类型
  • 描述:(可选)高德地图"GCJ02"坐标系纬度信息

longitude:

  • 类型:数字类型
  • 描述:(可选)高德地图"GCJ02"坐标系经度信息

infomation:

  • 类型:JSON对象
  • 描述:(可选)客户信息

userInfo:

  • 类型:数字类型
  • 描述:(可选)用户信息
  • 内部字段:
{
    header:'', //string类型;(可选)目标头像(如果为空则根据名称自动生成)
    userId:'', //string类型;(可选)目标userId
    userName:''//string类型;(可选)	目标名称
}

navigation:

  • 类型:布尔类型
  • 描述:(选填)是否需要导航

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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

打开第三方地图导航

openMapToNavi({params})

params

type:

  • 类型:string
  • 描述:(必选)导航类型
  • 可选值:GAODE:高德地图; BAIDU:百度地图; TENCENT:腾讯地图

latitude:

  • 类型:数字类型
  • 描述:(必选)目的地纬度,高德地图"GCJ02"坐标系

longitude:

  • 类型:数字类型
  • 描述:(必选)目的地精度,高德地图"GCJ02"坐标系

示例代码

var mtlMap = api.require('mtlMap');
mtlMap.openMapToNavi(function(ret) {
    if (ret.status) {
        api.alert({
            msg: JSON.stringify(ret)
        })
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

continuousLocationStart

开启持续定位

continuousLocationStart(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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

获取持续定位信息

continuousLocationGet(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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

关闭持续定位

continuousLocationStop(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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及更高版本

是否仍需要帮助? 请保持联络!
最后更新于 2024/12/2