APICloud,内置API及url调用百度地图导航

内置API及url调用百度地图APP导航


方法中的两个参数,为自己当前位置的经纬度

function arouseMap(lon,lat){
    var location = $api.getStorage('location');
    if(location){
      var mylon = location.lon;
      var mylat = location.lat;
    }else {
      api.toast( {
		  msg: '请允许程序获取当前位置',
		  duration: 2000,
		  location: 'middle'
	  } );
      return false;
    }
    var uri="";
    uri +='androidamap://navi?';
    uri +='sourceApplication='+api.appName;
    uri +='&lat='+lat+'&lon='+lon;
    uri +='&dev=1';
    uri +='&style=2';
    api.openApp({
        // androidPkg: 'com.autonavi.minimap',
        androidPkg: 'android.intent.action.VIEW',
        appParam:{
          lat:lat,
          lon:lon,
          dev:'0',
          style:'2',
          sourceApplication:api.appName
        },
        iosUrl:'iosamap://navi',
        uri: uri
    }, function(ret, err) {
        if (ret) {

        } else {
            console.log(JSON.stringify(err));
            api.toast( {
			  msg: '未安装百度地图',
			  duration: 2000,
			  location: 'middle'
		  } );
        }
    });
}

下面这个方法,用来获取当前设备的坐标,可以看到我这里判断了一下IOS系统需要先初始化一下,才可以调用方法。

    function baiduMap(){
      var bMap = api.require('bMap');
        bMap.getLocation({
        accuracy: '100m',
        autoStop: true,
        filter: 1
        }, function(ret, err) {
        if (ret.status) {
          var lon = ret.lon;
          var lat = ret.lat;
          arouseMap(lon,lat);
        } else {
            console.log("百度地图错误"+err.code);
        }
        });
    }

如果是IOS系统的话应该先初始化一下模块,于是我把上面的方法改了一下,判断一下手机系统,但是不知道为什么我这边ios初始化返回的是false,

    function baiduMap(){
      var systemType = api.systemType;
      if (systemType == 'ios'){
        var map = api.require('bMap');
        map.initMapSDK(function(ret) {
            if (ret.status) {
              var bMap = api.require('bMap');
              bMap.getLocation({
              accuracy: '100m',
              autoStop: true,
              filter: 1
              }, function(ret, err) {
              if (ret.status) {
                var lon = ret.lon;
                var lat = ret.lat;
                arouseMap(lon,lat);
              }else{
                  console.log("百度地图错误"+err.code);
              }
              });
            }
        });
      }else{
        var bMap = api.require('bMap');
        bMap.getLocation({
        accuracy: '100m',
        autoStop: true,
        filter: 1
        }, function(ret, err) {
        if (ret.status) {
          var lon = ret.lon;
          var lat = ret.lat;
          arouseMap(lon,lat);
        } else {
            console.log("百度地图错误"+err.code);
        }
        });
      }
    }

API详细文档地址

https://docs.apicloud.com/Client-API/api

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值