0
点赞
收藏
分享

微信扫一扫

VTIGERCRM开发高德定位打卡的参考代码

<form id="myForm" action="insert.php" method="POST" name="myForm">
<div class="info">
<center><h4 id='status'></h4></center>
<?php
session_start();
//echo $_REQUEST['P'];
include_once("../../inc/check.php"); include_once("../../inc/conn.php");
//$dingwei="<textarea id='result' name='result'></textarea>";
$LOGIN_USER_ID=$_REQUEST['P'];
include_once( "../../inc/conn.php" );
$LOGIN_USER_IDD=explode("",$LOGIN_USER_ID);<br/>$query = "SELECT * FROMec_user_online_app` where USER_ID='".$LOGIN_USER_IDD[0]."'";
$cursor = exequery( $connection, $query );
if(mysql_num_rows($cursor)!==0)//判断查询结果行数是否不为空
{
//echo "当前页面登陆了用户";
}
else
{
echo "<body bgcolor='#33ccff'><center><p> </p><p> </p><a rel="nofollow" href=/pda/relogin.php?P=$LOGIN_USER_ID><div class=\"weui-btn weui-btn_mini weui-btn_default\"><font color=#00cc00>用户未登陆-返回首页</font></div></a></center>";
exit();
}
?>
<!--<p id='result'></p>-->
<textarea id='result' name='result' style="display:none;"></textarea>
<textarea id='time' name='time' style="display:none;"></textarea>
<textarea id='place' name='place' style="display:none;"></textarea>
<textarea id='location' name='location' style="display:none;"></textarea>
<input type="hidden" id="user_id" name="user_id" value="<?php echo $_REQUEST['P'];?>">
</div>

<div id="box">
    <!--<div id='time'>轻松打卡&nbsp;效率工作</div>-->               
    <button  type="submit" id='signbtn' class="layui-btn layui-btn-normal">考勤签到</button><br>
    <div id="place" type="button" class="layui-btn-radius">非办公地点</div>
    <div id='distance'>系统正在定位中</div>        
</div>

<input type="hidden" id="isonoff" name="isonoff" value="true">
<input type="hidden" id="userid" name="userid" value="0">    

<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
<script src="./layui/layui.js"></script>
<script src="https://cdn.bootcss.com/layer/2.3/layer.js"></script>
<script type="text/javascript">
    window._AMapSecurityConfig = 
    {
        securityJsCode:'你的JSCODE值',
        serviceHost:'http://127.0.0.1:80/_AMapService',  
        // 例如 :serviceHost:'http://1.1.1.1:80/_AMapService',
    }
</script>
<!--
<script type="text/javascript"> 
        window._AMapSecurityConfig = 
        {

        }
</script>
-->
<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.15&key=你的高德地图key值"></script>
<script src="https://webapi.amap.com/maps?v=1.4.15&key=你的高德地图key值&plugin=AMap.CircleEditor"></script>
<script src="https://a.amap.com/jsapi_demos/static/demo-center/js/demoutils.js"></script>
<script type="text/javascript">

    var map = new AMap.Map('container', {
        resizeEnable: true
    });
    AMap.plugin('AMap.Geolocation', function() {
        var geolocation = new AMap.Geolocation({
            enableHighAccuracy: true,//是否使用高精度定位,默认:true
            timeout: 10000,          //超过10秒后停止定位,默认:5s
            buttonPosition:'RB',    //定位按钮的停靠位置
            buttonOffset: new AMap.Pixel(10,20),//定位按钮与设置的停靠位置的偏移量,默认:Pixel(10, 20)
            zoomToAccuracy: true,   //定位成功后是否自动调整地图视野到定位点

        });
        map.addControl(geolocation);
        geolocation.getCurrentPosition(function(status,result){
            if(status=='complete'){
                onComplete(result)
            }else{
                onError(result)
            }
        });
    });
    //解析定位结果
    function onComplete(data) {
        document.getElementById('status').innerHTML='定位成功'
        var str = [];
        str.push('定位结果:' + data.position);
        str.push('定位类别:' + data.location_type);
        if(data.accuracy){
             str.push('精度:' + data.accuracy + ' 米');
        }//如为IP精确定位结果则没有精度信息
        str.push('是否经过偏移:' + (data.isConverted ? '是' : '否'));
        document.getElementById('result').innerHTML = str.join('#');//*******************回显坐标+IP+偏移 str.jion 

        getposition = [data.position.lng,data.position.lat];//获取当前位置的经纬度

        var location = data.formattedAddress;//具体街道位置信息
        console.log(getposition);

        //var shanghaizone = [114.379326,30.873607];//设置的签到点
        var shanghaizone = [<?php            
        include("../../../config.inc.php");
        $connID=mysql_connect($dbconfig['db_server'].$dbconfig['db_port'],$dbconfig['db_username'],$dbconfig['db_password']); mysql_select_db($dbconfig['db_name'], $connID); mysql_query("set names gbk");
        $query=mysql_query("SELECT * FROM `ec_zuibiao`");
        while($myrow=mysql_fetch_array($query))
        {
          $zuobiao=$myrow[zuobiao];    
          echo $zuobiao;  
        }            
        ?>];//设置的签到点
        //计算当前位置与考勤点距离
        var distance = AMap.GeometryUtil.distance(getposition,shanghaizone).toFixed(0);

        console.log(distance);
        document.getElementById('distance').innerHTML = distancestr;
        var setDistance = 1800;//设定的打卡距离

        document.getElementById('location').innerHTML=location;

        var distancestr = '仍距'+distance+'米';
        console.log(distance);
        if (distance <= setDistance) {
            //在范围内
            document.getElementById('distance').innerHTML = '</i><i class="layui-icon layui-icon-face-smile" style="font-size:12px; color:#17bc84;">  你已进入考勤范围  </i>  ';
            document.getElementById("place").innerHTML="办公地点 ";
            $("#place").addClass("isdiy");

        } else {
            //不在范围内
            document.getElementById('distance').innerHTML = '<i class="layui-icon layui-icon-face-cry" style="font-size: 10px; color:red;">  未进入考勤范围 </i><a style="color:#29a6ff" onClick="window.location.reload()">重新定位 </a> ';
            document.getElementById("place").innerHTML="非办公地点 ";
            $("#place").addClass("nodiy");
        }

        $("#signbtn").click(function(){

            if(distance<=setDistance){
                layer.msg("办公地点打卡");
            }else{
                layer.msg("外勤打卡");
            }
    });

        //绘制签到范围
        var circle = new AMap.Circle({
            center: shanghaizone,
            radius: 100, //半径
            borderWeight: 1,
            strokeOpacity: 1,
            strokeOpacity: 0.2,
            fillOpacity: 0.4,
        })

        circle.setMap(map)
        // 缩放地图到合适的视野级别
        map.setFitView([ circle ])
        var circleEditor = new AMap.CircleEditor(map, circle)
    }
    //解析定位错误信息
    function onError(data) {
        document.getElementById('location').innerHTML='定位失败';
        document.getElementById('location').innerHTML = '失败原因排查信息:'+data.message;
    }

</script>
 <script>
    setInterval("document.getElementById('time').innerHTML=new Date().toLocaleString()+' 星期'+'日一二三四五六'.charAt(new Date().getDay());",1000);
    now = new Date(),hour = now.getHours(); 
    if(hour>12){ 
        $("#defshow").html(' <input id="shangxiaban" type="checkbox" name="close" lay-filter="switchTest" lay-skin="switch" lay-text="上班签到|下班签退">');
         $("#isonoff").val(false);
    }

</script>

</form>

举报

相关推荐

0 条评论