zhitong.yu
2024-10-11 4f58a93c95ff123d51adcb8fa2e521333e8ab022
src/main/webapp/HouTai/ChaXunGuiJi/ChaXunGuiJiJs/ChaXunGuiJiJs.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,355 @@
layui.use('laydate', function(){
    var laydate = layui.laydate;
    laydate.render({
        elem: '#test16'
        ,type: 'datetime'
        ,range: languages7
        ,lang:'en'
        ,done: function(value, date){
            $("#FanWei").val(value)
        }
    });
});
var sudu=1000;
var tds = true;
var form = layui.form;
$.get("/hxzkuwb/findmap",function (data){
    var selectData = [
    ];
    for (var i = 0; i < data.length; i++) {
        var option = {
            value: data[i].floor,
            title: data[i].mapname
        };
        selectData.push(option);
    }
    // åŠ¨æ€ç”Ÿæˆä¸‹æ‹‰æ¡†é€‰é¡¹
    var selectElem = document.getElementById('cxList');
    for (var i = 0; i < selectData.length; i++) {
        var optionElem = document.createElement('option');
        optionElem.value = selectData[i].value;
        optionElem.text = selectData[i].title;
        selectElem.appendChild(optionElem);
    }
    // é‡æ–°æ¸²æŸ“下拉框
    form.render('select');
})
var bm;
function init(){
    var nameFormat = "{x}_{y}";
    var ext = ".png";
     bm = new BMapGL.Map("baidumap");    // åˆ›å»ºMap实例
    bm.centerAndZoom(new BMapGL.Point(87.506299, 43.840568), 15);  // åˆå§‹åŒ–地图,设置中心点坐标和地图级别
    bm.enableScrollWheelZoom(true);     //开启鼠标滚轮缩放
    var tileLayer = new BMapGL.TileLayer();
    tileLayer.getTilesUrl = function(tileCoord, zoom) {
        var name = nameFormat
            .replace("{x}", tileCoord.x)
            .replace("{y}", tileCoord.y)
            .replace("{z}", zoom)
        ;
        return '../../Home/tiles/' + zoom + '/' + name + ext;
    }
    bm.addTileLayer(tileLayer);
}
var nub = false;
var dtlist =[];
var bgcolor;
var cx = false;
var datalist;
function baiDuGuiJi() {
    if (nub) {
        layer.msg(languages8, { offset: '100px' });
    } else {
        $(".heimu").show();
        $(".heimu1").show();
        var id = $("#tagid").val();
        var time = $("#FanWei").val();
        if (id == "") {
            layer.msg(languages9, {
                offset: '250px' // å‘右偏移 100px
            });
            $(".heimu").hide();
            $(".heimu1").hide();
            return
        }
        if (time == "") {
            layer.msg(languages10, {
                offset: '250px' // å‘右偏移 100px
            });
            $(".heimu").hide();
            $(".heimu1").hide();
            return;
        }
        cx = true
        Convertor.prototype.WGS2GCJ_lat = function (x, y) {
            var ret1 = -100.0 + 2.0 * x + 3.0 * y + 0.2 * y * y + 0.1 * x * y + 0.2 * Math.sqrt(Math.abs(x));
            ret1 += (20.0 * Math.sin(6.0 * x * this.M_PI) + 20.0 * Math.sin(2.0 * x * this.M_PI)) * 2.0 / 3.0;
            ret1 += (20.0 * Math.sin(y * this.M_PI) + 40.0 * Math.sin(y / 3.0 * this.M_PI)) * 2.0 / 3.0;
            ret1 += (160.0 * Math.sin(y / 12.0 * this.M_PI) + 320 * Math.sin(y * this.M_PI / 30.0)) * 2.0 / 3.0;
            return ret1;
        }
        ;
        Convertor.prototype.WGS2GCJ_lng = function (x, y) {
            var ret2 = 300.0 + x + 2.0 * y + 0.1 * x * x + 0.1 * x * y + 0.1 * Math.sqrt(Math.abs(x));
            ret2 += (20.0 * Math.sin(6.0 * x * this.M_PI) + 20.0 * Math.sin(2.0 * x * this.M_PI)) * 2.0 / 3.0;
            ret2 += (20.0 * Math.sin(x * this.M_PI) + 40.0 * Math.sin(x / 3.0 * this.M_PI)) * 2.0 / 3.0;
            ret2 += (150.0 * Math.sin(x / 12.0 * this.M_PI) + 300.0 * Math.sin(x / 30.0 * this.M_PI)) * 2.0 / 3.0;
            return ret2;
        }
        Convertor.prototype.outofChine = function (p) {
            if (p.lng < 72.004 || p.lng > 137.8347) {
                return true;
            }
            if (p.lat < 0.8293 || p.lat > 55.8271) {
                return true;
            }
            return false;
        }
        Convertor.prototype.WGS2GCJ = function (poi) {
            if (this.outofChine(poi)) {
                return;
            }
            var poi2 = {};
            var dLat = this.WGS2GCJ_lat(poi.lng - 105.0, poi.lat - 35.0);
            var dLon = this.WGS2GCJ_lng(poi.lng - 105.0, poi.lat - 35.0);
            var radLat = poi.lat / 180.0 * this.M_PI;
            var magic = Math.sin(radLat);
            magic = 1 - this.EE * magic * magic;
            var sqrtMagic = Math.sqrt(magic);
            dLat = (dLat * 180.0) / ((this.A * (1 - this.EE)) / (magic * sqrtMagic) * this.M_PI);
            dLon = (dLon * 180.0) / (this.A / sqrtMagic * Math.cos(radLat) * this.M_PI);
            poi2.lat = poi.lat + dLat;
            poi2.lng = poi.lng + dLon;
            return poi2;
        }
        Convertor.prototype.GCJ2BD09 = function (poi) {
            var poi2 = {};
            var x = poi.lng
                , y = poi.lat;
            var z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * this.X_PI);
            var theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * this.X_PI);
            poi2.lng = z * Math.cos(theta) + 0.0065;
            poi2.lat = z * Math.sin(theta) + 0.006;
            return poi2;
        }
        Convertor.prototype.WGS2BD09 = function (poi) {
            //WGS->GCJ
            var poi2 = this.WGS2GCJ(poi);
            if (typeof poi2 === "undefined") {
                return;
            }
            //GCJ->百度坐标系
            return this.GCJ2BD09(poi2);
        }
        function Convertor(ak) {
            this.stepCount = 100;
            this.pointCount = [];
            this.Result = [];
            this.NoisIndex = [];
            this.Time = new Date();
            this.AK = ak;
            this.M_PI = 3.14159265358979324;
            this.A = 6378245.0;
            this.EE = 0.00669342162296594323;
            this.X_PI = this.M_PI * 3000.0 / 180.0;
        }
        var dts = [];
        var id = $("#tagid").val();
        var time = $("#FanWei").val();
        var zuobiaoxi = "";
        //从数据库查询当前选择的什么系坐标
        $.ajax({
            url: "/hxzkuwb/findbaidumapList",
            type: "GET",
            async: false,
            success: function(data) {
                zuobiaoxi = data[0].zhuanhuan
            }
        });
        var data = "tagid=" + id + "&time=" + time
        $.ajax({
            url: "/hxzkuwb/findBaiDuGuiJi",
            data: data,
            async: false,
            success: function (data) {
                datalist = data;
                if (datalist.length == 0){
                    $(".heimu").hide();
                    $(".heimu1").hide();
                    layer.alert(languages11, {
                        offset: '200px',  // è®¾ç½®åž‚直偏移量
                        // æˆ–者
                        // offset: ['100px', '50px']  // è®¾ç½®æ°´å¹³å’Œåž‚直偏移量
                    });
                    return
                }
                var ds = "id=" + data[0].tagid
                $.ajax({
                    url: "/hxzkuwb/findtagIdPerson",
                    data: ds,
                    async: false,
                    success: function (data) {
                        var bumen = data.pdepartment;
                        var dt = "departmentname=" + bumen
                        $.ajax({
                            url: "/hxzkuwb/findBuMenColor",
                            data: dt,
                            async: false,
                            success: function (data) {
                                bgcolor = data.baoliu5
                            }
                        })
                    }
                })
                if (data.length == 0) {
                    layer.alert(languages11, {
                        offset: '200px',  // è®¾ç½®åž‚直偏移量
                        // æˆ–者
                        // offset: ['100px', '50px']  // è®¾ç½®æ°´å¹³å’Œåž‚直偏移量
                    });
                } else {
                    $(".heimu").hide();
                    $(".heimu1").hide();
                    nub = true;
                    // å¤„理同步请求返回的数据
                    for (var i = 0; i < data.length; i++) {
                        var c = new Convertor();
                        if (zuobiaoxi == "百度"){
                            var rr1 = c.WGS2BD09({
                                lng: parseFloat(data[i].gspJingdu),
                                lat: parseFloat(data[i].gpsWeidu)
                            });
                        }else{
                            var rr1 = {
                                lng: parseFloat(data[i].gspJingdu),
                                lat: parseFloat(data[i].gpsWeidu)
                            };
                        }
                        dts.push(rr1)
                        dtlist.push(rr1)
                    }
                    var path = dts;
                // åˆ›å»ºç§»åŠ¨çš„å›¾æ ‡
                    console.log(data)
                    var movingIcon = new BMapGL.Icon('../../Icon/工人.png', new BMapGL.Size(32, 32));
                    var marker = new BMapGL.Marker(path[0], {icon: movingIcon});
                    var label = new BMapGL.Label("", {offset: new BMapGL.Size(0, -50)});
                    label.setStyle({
                        color: "white",
                        fontSize: "12px",
                        borderRadius: "5px",
                        padding: "5px 5px",
                        border: "0",
                        transform: 'translateX(-50%)',
                        backgroundColor: bgcolor,
                    });
                    var label1 = new BMapGL.Label("", {offset: new BMapGL.Size(0, 30)});
                    label1.setStyle({
                        color: "white",
                        fontSize: "12px",
                        borderRadius: "5px",
                        padding: "5px 5px",
                        border: "0",
                        transform: 'translateX(-50%)',
                        backgroundColor: bgcolor,
                    });
                    bm.clearOverlays();
                    marker.setLabel(label);
                    var marker1 = new BMapGL.Marker(path[0], {icon: movingIcon});
                    marker1.setLabel(label1);
                    bm.addOverlay(marker1)
                    bm.addOverlay(marker);
                    bm.centerAndZoom(new BMapGL.Point(path[0].lng, path[0].lat), 15);
// åŠ¨ç”»å‡½æ•°
                    function animateMarker(index) {
                        if (tds == false) {
                            localStorage.setItem("JiXu",index)
                            return;
                        } else {
                            if (index == path.length) {
                                nub = false
                            }
                            $("#data1").text(index + "/" + data.length)
                            $(".data2").text(data[index].name)
                            $(".data3").text(data[index].tagid)
                            $(".data4").text(data[index].gspJingdu)
                            $(".data5").text(data[index].gpsWeidu)
                            $(".data6").text(data[index].gpsHaibaGao)
                            $(".data7").text(data[index].gpsState)
                            $(".data11").text(data[index].gpsPower)
                            $(".data12").text(data[index].addtime)
                            if (index < path.length) {
                                var point = new BMapGL.Point(path[index].lng, path[index].lat);
                                marker.setPosition(point);
                                marker1.setPosition(point);
                                label.setContent(data[index].name + " " + data[index].tagid);
                                label1.setContent(data[index].gspJingdu + " " + data[index].gpsWeidu);
                                // è®¾ç½®å»¶è¿ŸåŽç§»åŠ¨åˆ°ä¸‹ä¸€ä¸ªç‚¹
                                setTimeout(function () {
                                    animateMarker(index + 1);
                                }, sudu); // è¿™é‡Œè®¾ç½®çš„æ˜¯æ¯500毫秒移动一次,你可以根据需要调整
                            }
                            if (index < path.length && index > 0) {
                                var line = new BMapGL.Polyline([path[index - 1], point], {
                                    strokeColor: 'red',
                                    strokeWeight: 2,
                                    strokeOpacity: 1
                                });
                                bm.addOverlay(line);
                            }
                        }
                    }
                    animateMarker(0);
                }
                return dts
            }
        });
    }
}
function baiduBoFang(){
    var bdsd = $("#bofangsudu").val();
    if (bdsd == "1"){
        sudu = 1000
    }
    if (bdsd == "2"){
        sudu = 500
    }
    if (bdsd == "4"){
        sudu = 250
    }
    if (bdsd == "6"){
        sudu = 150
    }
    if (bdsd == "播放速度x8"){
        sudu = 0
    }
}