/**
* 和手机定位系统相关的API<br>
* <strong>
* 页面需要导入的文件
* <ul>
* <li>cmp-lbs.js</li>
* </ul>
* </strong>
* @module lbs
* @subtitle 定位
*/
/**
* @class lbs
*/
/**
* 获取当前位置的经纬度,如果是在微协同上使用定位插件,需要开发者自行导入高德地图的js,具体可参考高德地图的jssdk文档
* @namespace cmp
* @method getCurrentPosition
* @param {Object} options 配置参数
* @param {Number} options.mode 定位模式,1:单次定位(定位一次,不一定能定位准确);2:多次定位(定位较准,可以不停修正位置信息,但是发送请求较多)
* @param {Function} options.success 定位成功回调
* @param {Function} [options.error] 定位失败回调
* @example
* ```
* 文件导入路径:
* M3App端
* <script src="http://cmp/v1.0.0/js/cordova/__CMPSHELL_PLATFORM__/cordova.js"></script>
* <script src="http://cmp/v1.0.0/js/cordova/cordova-plugins.js"></script>
* <script src="http://cmp/v/js/cmp.js"></script>
* <script src="http://cmp/v/js/cmp-lbs.js"></script>
* ===========================================================================================
* 微协同端:
* <script src="/seeyon/m3/cmp/js/cmp.js"></script>
* <script src="/seeyon/m3/cmp/js/cmp-lbs.js"></script>
* <script src="高德地图JS"></script><!--微协同必须导入高德地图的js-->
* =========================================================================================
* 调用组件
* <script>
* cmp.lbs.getCurrentPosition({
* mode:2,
* success:function(result){
* //返回的数据格式如下:
* result = {
* success:true,//成功的标识
* coordinate:{
* longitude:104.066663, //经度
* latitude:30.543527 //维度
* }
* }
* },
* error:function(error){
* error = {
* msg:"定位失败提示语" //错误信息
* }
* }
* });
* </script>
* ```
*/
/**
* 表单-地图标注(只支持在cmp里)
* @namespace cmp
* @method markLocation
* @param {Object} options 配置参数
* @param {Function} options.success 定位成功回调
* @param {Function} [options.error] 定位失败回调
* @example
* ```
* 文件导入路径:
* M3App端
* <script src="http://cmp/v1.0.0/js/cordova/__CMPSHELL_PLATFORM__/cordova.js"></script>
* <script src="http://cmp/v1.0.0/js/cordova/cordova-plugins.js"></script>
* <script src="http://cmp/v/js/cmp.js"></script>
* <script src="http://cmp/v/js/cmp-lbs.js"></script>
* ===========================================================================================
* 微协同端:不支持
* =========================================================================================
* 调用组件
* <script>
* cmp.lbs.markLocation({
* success:function(result){
* //返回的数据格式如下:
* result = {
* lbsAddr:"四川省成都市武侯区升华路靠近亚朵酒店(成都高新店)",
* lbsCity:"成都市",
* lbsCountry:"中国",
* lbsProvince:"四川省",
* lbsStreet:"升华路",
* lbsTown:"武侯区",
* lbsLatitude:"30.543527",
* lbsLongitude:"104.066663"
* }
*
* //do something with result
* },
* error:function(error){
* }
* });
* </script>
* ```
*/
/**
* 表单-拍照定位(只支持在cmp里)
* @namespace cmp
* @method takePicture
* @param {Object} options 配置参数
* @param {String} options.userName 用户名
* @param {String} options.uploadPicUrl 图片上传地址
* @param {String} options.serverDateUrl 获取服务器时间的接口,一般是rest接口
* @param {String} options.location
* @param {Function} options.success 定位成功回调
* @param {Function} [options.error] 定位失败回调
* @param {Function} [options.cancel] 定位取消回调
* @example
* ```
* 文件导入路径:
* M3App端
* <script src="http://cmp/v1.0.0/js/cordova/__CMPSHELL_PLATFORM__/cordova.js"></script>
* <script src="http://cmp/v1.0.0/js/cordova/cordova-plugins.js"></script>
* <script src="http://cmp/v/js/cmp.js"></script>
* <script src="http://cmp/v/js/cmp-lbs.js"></script>
* ===========================================================================================
* 微协同端:不支持
* =========================================================================================
* 调用组件
* <script>
* cmp.lbs.takePicture({
* userName:"xxxx",
* uploadPicUrl:"http://10.5.6.240:88/file/upload/",
* serverDateUrl:cmp.seeyonbasepath+"/rest/cmplbs/servertime",
* location:"",
* success:function(result){
* //返回的数据格式如下:
* result = {
* lbsAddr:"四川省成都市武侯区升华路靠近亚朵酒店(成都高新店)",
* lbsCity:"成都市",
* lbsCountry:"中国",
* lbsProvince:"四川省",
* lbsStreet:"升华路",
* lbsTown:"武侯区",
* lbsLatitude:"30.543527",
* lbsLongitude:"104.066663",
* listAttachment:{} //服务器返回的附件数据格式
* }
* //do something with result
* },
* error:function(error){
* },
* cancel:function(result){
* }
* });
* </script>
* ```
*/
/**
* 表单-位置定位,获取当前的经纬度,以及时间、地名信息(只支持在cmp里)
* @namespace cmp
* @method getLocationInfo
* @param {Object} options 配置参数
* @param {Number} options.mode 定位模式,1:单次定位(定位一次,不一定能定位准确);2:多次定位(定位较准,可以不停修正位置信息,但是发送请求较多)
* @param {Function} options.success 定位成功回调
* @param {Function} [options.error] 定位失败回调
* @example
* ```
* 文件导入路径:
* M3App端
* <script src="http://cmp/v1.0.0/js/cordova/__CMPSHELL_PLATFORM__/cordova.js"></script>
* <script src="http://cmp/v1.0.0/js/cordova/cordova-plugins.js"></script>
* <script src="http://cmp/v/js/cmp.js"></script>
* <script src="http://cmp/v/js/cmp-lbs.js"></script>
* ===========================================================================================
* 微协同端:不支持
* =========================================================================================
* 调用组件
* <script>
* cmp.lbs.getLocationInfo({
* mode:2,
* success:function(result){
* //返回的数据格式如下
* result = {
* lbsAddr:"四川省成都市武侯区升华路靠近亚朵酒店(成都高新店)",
* lbsCity:"成都市",
* lbsCountry:"中国",
* lbsProvince:"四川省",
* lbsStreet:"升华路",
* lbsTown:"武侯区",
* lbsLatitude:"30.543527",
* lbsLongitude:"104.066663"
* }
* //do something with result
* },
* error:function(error){
* }
* });
* </script>
* ```
*/
/**
* 表单控件-显示地图信息(只支持在cmp里)<br>
* 一般用于已经存于服务器的【地图控件和表单关联的数据】后,根据服务器存的数据再次查看当时存的地图信息
* @namespace cmp
* @method showLocationInfo
* @param {Object} options 配置参数
* @param {String} options.lbsUrl 获取lbs信息的url地址 http://10.5.6.240:88/seeyon/rest/cmplbs/1814357976477972035
* @param {String} [options.userName] 用户名(可以不传)
* @param {Function} options.success 成功回调
* @param {Function} [options.error] 失败回调
* @example
* ```
* 文件导入路径:
* M3App端
* <script src="http://cmp/v1.0.0/js/cordova/__CMPSHELL_PLATFORM__/cordova.js"></script>
* <script src="http://cmp/v1.0.0/js/cordova/cordova-plugins.js"></script>
* <script src="http://cmp/v/js/cmp.js"></script>
* <script src="http://cmp/v/js/cmp-lbs.js"></script>
* ===========================================================================================
* 微协同端:不支持
* =========================================================================================
* 调用组件
* <script>
* cmp.lbs.showLocationInfo({
* lbsUrl:"http://10.5.6.240:88/seeyon/rest/cmplbs/1814357976477972035",
* userName:"hezi",
* success:function(result){
* //do something with result
* },
* error:function(error){
* }
* });
* 注:lbsUrl :即服务器端储存的lbs表单控件的数据,此数据的获取,需要开发者自行调用表单相关接口获取
* </script>
* ```
*/
/**
* 高德地图组件,地图标注,LBS,轨迹,范围<br>
* @namespace cmp
* @method gdMap
* @param {String} 用于显示地图容器的id
* @param {Object} options 配置参数
* @param {Array} options.center 地图的中心坐标
* @param {Boolean} [options.showCurPos] 是否显示当前位置,默认false
* @param {String} [options.curContent] 当前节点的覆盖层,可以是一个DOM的字符串来替代默认体表,,默认空字符串
* @param {Boolean} [options.autoSearch] 是否开启自动搜索,默认false
* @param {Function} [options.autoSearchCallback] 自动搜索触发的回调函数
* @param {Object} [options.pathOps] 轨迹的配置参数
* @param {String} [options.pathOps.strokeStyle] 轨迹颜色,接受英文、16进制、rgb格式的颜色字符串 默认:red
* @param {Number} [options.pathOps.lineWidth] 轨迹宽度,默认:6
* @param {Boolean} [options.pathOps.dirArrowStyle] 是否显示轨迹箭头样式 默认:true
* @param {Function} options.success 成功回调
* @param {Function} [options.error] 失败回调
* @demo cmp-lbs-gbMap.html
* @return {Object} 返回地图对象 <br>如:var gbMapObj = cmp.lbs.gbMap("id",{"xxx","xxx"});<br>
* 对象提供可调方法<br>
* <ul>
* <li>clearAllNode:移除已经标记的节点(当前位置节点不会被移除)<br><div style="color:blue;">gbMapObj.clearAllNode()</div></li>
* <li>removeCurPos:清除当前位置节点<br><div style="color:blue;">gbMapObj.removeCurPos()</div></li>
* <li>setCurPos:重新设置当前位置节点<br><div style="color:blue;">gbMapObj.setCurPos({pos:[104.06401, 30.54958]})</div></li>
* <li>setScope:设置显示范围的节点<br><div style="color:blue;">gbMapObj.setScope({<br>
* pos:[104.06401, 30.54958],//经纬度<br>
* radius: 300,//范围,单位:米<br>
* content: "<div class="marker-scape"></div>"//显示内容<br>
* })</div>
* </li>
* <li>appendMarkNode:追加节点<br><div style="color:blue;">gbMapObj.appendMarkNode({
* pos:[104.06401, 30.54958],//经纬度<br>
* content: ["<div class="marker-route marker-marker-bus-from"></div>"],//自定义DOMhtml 字符串数组<br>
* draggable:true,//是否可拖拽<br>
* clickCallback:function(){},//点击节点的回调函数<br>
* dragEndCallback:function(){}//拖拽节点的回调函数<br>
* })</div>
* </li>
* <li>getAddress:根据经纬度获取坐标信息<br><div style="color:blue;">gbMapObj.getAddress(
* [104.06401, 30.54958],//坐标<br>
* function(info){}//获取坐标信息的回调函数<br>
* )</div></li>
* <li>getNodeDis:获取两点之间的距离<br><div style="color:blue;">gbMapObj.getNodeDis([104.06401, 30.54958],[104.16401,30.54959])</div></li>
* <li>getDisCurPosToTgt:获取当前点击节点到当前位置的距离<br><div style="color:blue;">gbMapObj.getDisCurPosToTgt([104.06401, 30.54958],[104.16401,30.54959])</div></li>
* <li>setPathData:设置路径<br><div style="color:blue;">gbMapObj.setPathData({
* name:"轨迹名称",//轨迹的名字<br>
* pos:[<br>//轨迹集合
* [104.06401, 30.54958],<br>
* [104.16401,30.54959]<br>
* ]<br>
* })</div></li>
* <li>getSearchResultBykey:根据keyword获取地理位置搜索结果<br><div style="color:blue;">gbMapObj.getSearchResultBykey(
* "成都",//搜索关键字<br>
* function(result){}//搜索结果回调函数<br>
* )</div></li>
* </ul>
*/