H5Callmap

功能描述

  1. 该模块支持判断手机是否安装了指定地图软件;
  2. 该模块适用于项目中根据目标经纬度唤起手机中安装的三方地图并标记位置,从而达到导航等地图功能的目地,目前支持 iosamap(高德地图导航)、baidumap(百度地图导航)、comgooglemap(google地图导航)。

效果图

依赖的模块

方法

判断当前系统为 iOS(异步)

callMap.hasIos();                             
                                                   //必返     |           |  Boolean    |  true(是)/false(否)

判断当前设备是否安装地图 APP(同步)

callMap.fnAppInstalled('iosamap', function(ret){   //必填     |           |  String     |  iosamap(高德地图)、baidumap(百度地图)、comgooglemap(google地图)
   // ret.installed                                //必返     |           |  Boolean    |  true(已安装)、false(未安装)
})

打开某一个地图,并标记目标地点(异步)

callMap.fnOpenMap({
    type: 'iosamap',                              //必填     |           |  String     |  地图类型。iosamap(高德地图)、baidumap(百度地图)、comgooglemap(google地图)
    end: {
        lat: 39.8411062307,                       //必填     |           |  String     |  目标经度
        lon: 116.7566751225                       //必填     |           |  String     |  目标纬度
    }
})

对象转 get 参数格式(异步)

fnConvertParam({                                  //必填     |           |  Object     |  需要格式化的参数
    key1: '1',
    key2: '2'
    …
})
                                                  //必返     |           |  String      |  get 参数格式字符串(首字符带 ? 号 )

快速使用

js 调用

function fnOpenMap(){
    var _arr = [{
        type: 'iosamap',
        name: '高德地图'
    }, {
        type: 'baidumap',
        name: '百度地图'
    }, {
        type: 'comgooglemap',
        name: 'google地图'
    }],
    _param = {
        cancelTitle: '取消',
        buttons: []
    }
    _fnAppInstalled(0, function(){
        api.actionSheet(_param, function(ret, err) {
            var _temp = _arr[ret.buttonIndex-1];
            if( _temp ){
                callMap.fnOpenMap({
                    type: _temp.type,
                    end: {
                        lat: 39.8411062307,
                        lon: 116.7566751225
                    }
                })
            }
        });
    })


    function _fnAppInstalled(_num, _cb) {
        if (_num < _arr.length) {
            callMap.fnAppInstalled(_arr[_num].type, function(ret){
                var _name = _arr[_num]['name'];
                if (ret.installed) {

                } else {
                    _name = _name + ' (未安装)';
                }
                _param.buttons.push(_name);
                _fnAppInstalled(++_num, _cb);
            })
        } else {
            _cb && _cb();
        }
    }
}

特别说明