/**
 * 和手机定位系统相关的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>
 *                  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pos:[104.06401, 30.54958],//经纬度<br>
 *                  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;radius: 300,//范围,单位:米<br>
 *                  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;content: &quot;&lt;div class="marker-scape&quot&gt;&lt;/div&gt;&quot;//显示内容<br>
 *                  })</div>
 *              </li>
 *             <li>appendMarkNode:追加节点<br><div style="color:blue;">gbMapObj.appendMarkNode({
 *                  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pos:[104.06401, 30.54958],//经纬度<br>
 *                  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;content: [&quot;&lt;div class=&quot;marker-route marker-marker-bus-from&quot;&gt;&lt;/div&gt;&quot;],//自定义DOMhtml 字符串数组<br>
 *                  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draggable:true,//是否可拖拽<br>
 *                  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clickCallback:function(){},//点击节点的回调函数<br>
 *                  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dragEndCallback:function(){}//拖拽节点的回调函数<br>
 *                  })</div>
 *             </li>
 *             <li>getAddress:根据经纬度获取坐标信息<br><div style="color:blue;">gbMapObj.getAddress(
 *                  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[104.06401, 30.54958],//坐标<br>
 *                  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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({
 *                   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name:&quot;轨迹名称&quot;,//轨迹的名字<br>
 *                   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pos:[<br>//轨迹集合
 *                          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[104.06401, 30.54958],<br>
 *                          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[104.16401,30.54959]<br>
 *                       &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]<br>
 *                  })</div></li>
 *             <li>getSearchResultBykey:根据keyword获取地理位置搜索结果<br><div style="color:blue;">gbMapObj.getSearchResultBykey(
 *                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;成都&quot;,//搜索关键字<br>
 *                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function(result){}//搜索结果回调函数<br>
 *                  )</div></li>
 *         </ul>
 */
    
Top