zhitong.yu
2024-04-16 14c0c94b8a9f0e7b4767e808a5c600b93542d883
通用版本V1.3
已添加18个文件
1486 ■■■■■ 文件已修改
src/main/java/com/hxzk/mapper/DaoHangUserDao.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/hxzk/pojo/MenuTest.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/hxzk/pojo/MenuTest1.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/hxzk/pojo/TbDaohangUser.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/hxzk/service/DaoHangUserService.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/hxzk/service/impl/DaoHangUserServiceImpl.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/Home/Home12.jsp 970 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/Home/Home3.jsp 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/Home/HomeImg/GengDuo1.png 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/Home/HomeImg/image/GengDuo.png 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/Home/HomeImg/loding.gif 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/Home/HomeImg/tobottom.png 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/HouTai/ChaXunGuiJi/ChaXunGuiJi1.jsp 324 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/Icon/3D地图.png 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/Icon/GIS地图.png 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/Icon/平面地图.png 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/Icon/查看更多.png 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/Icon/隐藏看板.png 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/hxzk/mapper/DaoHangUserDao.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
package com.hxzk.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hxzk.pojo.TbDaohang;
import com.hxzk.pojo.TbDaohangUser;
public interface DaoHangUserDao extends BaseMapper<TbDaohangUser> {
}
src/main/java/com/hxzk/pojo/MenuTest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.hxzk.pojo;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
@Getter
@Setter
public class MenuTest {
    private String title;
    private String id;
    private String filed;
    private String checked;
    private List<MenuTest1>children;
}
src/main/java/com/hxzk/pojo/MenuTest1.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
package com.hxzk.pojo;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class MenuTest1 {
    private String title;
    private String id;
    private String filed;
    private String checked;
}
src/main/java/com/hxzk/pojo/TbDaohangUser.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
package com.hxzk.pojo;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
@TableName("tb_daohang_user")
@AllArgsConstructor
@NoArgsConstructor
@Data
@Setter
@Getter
public class TbDaohangUser {
  private long id;
  private String parent;
  private String parents;
  private String name;
  private String src;
  private String username;
  private String level;
  private String ishow;
  private String icon;
}
src/main/java/com/hxzk/service/DaoHangUserService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
package com.hxzk.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hxzk.pojo.TbDaohangUser;
public interface DaoHangUserService extends IService<TbDaohangUser> {
    void addDaoHangUser(TbDaohangUser daohangUser);
    void deleteDaoHangUser(TbDaohangUser daohangUser);
}
src/main/java/com/hxzk/service/impl/DaoHangUserServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
package com.hxzk.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hxzk.mapper.DaoHangUserDao;
import com.hxzk.pojo.TbDaohangUser;
import com.hxzk.service.DaoHangUserService;
import org.springframework.stereotype.Service;
@Service
public class DaoHangUserServiceImpl extends ServiceImpl<DaoHangUserDao,TbDaohangUser> implements DaoHangUserService {
    @Override
    public void addDaoHangUser(TbDaohangUser daohangUser) {
        baseMapper.insert(daohangUser);
    }
    @Override
    public void deleteDaoHangUser(TbDaohangUser daohangUser) {
        QueryWrapper queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("username",daohangUser.getUsername());
        baseMapper.delete(queryWrapper);
    }
}
src/main/webapp/Home/Home12.jsp
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,970 @@
<%--
  Created by IntelliJ IDEA.
  User: Dell
  Date: 2023/12/20
  Time: 9:48
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
    <script src="https://developer.fengmap.com/fmAPI/demos/libs/js/fengmap.map.min.js"></script>
    <script src="https://developer.fengmap.com/fmAPI/demos/libs/js/jquery-3.6.1.min.js"></script>
    <script src="https://developer.fengmap.com/fmAPI/demos/libs/layui/layui.js"></script>
    <script src="../JS/FengMapUi.js"></script>
    <script src="https://developer.fengmap.com/fmAPI/demos/libs/js/imageBase64.js"></script>
    <link rel="stylesheet" href="https://developer.fengmap.com/fmAPI/demos/libs/layui/css/layui.css">
    <link rel="stylesheet" href="https://developer.fengmap.com/fmAPI/demos/libs/css/font/iconfont.css">
    <link rel="stylesheet" href="https://developer.fengmap.com/fmAPI/demos/libs/css/index.css">
    <link rel="stylesheet" href="https://developer.fengmap.com/fmAPI/demos/Search/mapReconnaissance/css/index.css">
    <link rel="stylesheet" href="https://developer.fengmap.com/fmAPI/demos/Marker/FMDomMarker/css/index.css">
    <script src="https://developer.fengmap.com/fmAPI/demos/Marker/FMDomMarker/js/index.js"></script>
    <script src="https://developer.fengmap.com/fmAPI/demos/libs/js/fengmap.plugin.draw.min.js"></script>
    <script src="https://developer.fengmap.com/fmAPI/demos/libs/js/fengmap.analyser.min.js"></script>
    <style>
        .box {
        }
    </style>
</head>
<body>
<%--<div class="layui-container">--%>
<%--    <button class="layui-btn tileLayer-selector fm-btn">--%>
<%--        åˆ‡æ¢ç“¦ç‰‡åº•图--%>
<%--        <i class="layui-icon layui-icon-down layui-font-12"></i>--%>
<%--    </button>--%>
<%--    <button type="button" id="init" class="layui-btn" onclick="initFilterLayer()">设置滤镜</button>--%>
<%--</div>--%>
<div id="fengmap"></div>
</body>
<%--<script>--%>
<%--    var map;--%>
<%--    var tileLayer;--%>
<%--    var flag;--%>
<%--    var objType = {--%>
<%--        'tilelayer': fengmap.FMTileProvider.AMAP_VECTOR, //百度矢量图替换BAIDU_VECTOR--%>
<%--        'tilelayerAMAP': fengmap.FMTileProvider.AMAP_SATELLITE, //百度卫星图替换BAIDU_SATELLITE--%>
<%--    }--%>
<%--    var options = {--%>
<%--        container: document.getElementById("fengmap"),--%>
<%--        appName: 'map1',--%>
<%--        key: '09facc4ee52d1844bc1e561dad5abf59',--%>
<%--        mapID: '1732234539564851202',--%>
<%--        themeID: '1717913720470753281',--%>
<%--        mapURL: '../fengmap/data/',--%>
<%--        themeURL: '../fengmap/data/theme/',--%>
<%--        minTiltAngle: 0,--%>
<%--        mapZoom: 16,--%>
<%--        backgroundColor:'#001133',--%>
<%--    }--%>
<%--    /* åˆå§‹åŒ–地图 */--%>
<%--    function InitMap(options) {--%>
<%--        const promise = new Promise((resolve, reject) => {--%>
<%--            if (map != null) {--%>
<%--                map.dispose();--%>
<%--                map = null;--%>
<%--            }--%>
<%--            map = new fengmap.FMMap(options);--%>
<%--            map.on('loaded', function () {--%>
<%--                SetTileLayerMode('tilelayer')--%>
<%--                resolve('地图初始化完成!');--%>
<%--            });--%>
<%--        });--%>
<%--        return promise;--%>
<%--    };--%>
<%--    // è®¾ç½®åº•图--%>
<%--    function SetTileLayerMode(type) {--%>
<%--        if (tileLayer != null) {--%>
<%--            tileLayer.remove(map);--%>
<%--            tileLayer = null;--%>
<%--        }--%>
<%--        tileLayer = new fengmap.FMTileLayer({--%>
<%--            mode: objType[type],--%>
<%--            offset: 1.0,--%>
<%--            replaceColor: "#FCF9F2", //大比例尺下,不显示瓦片底图时,显示的背景颜色--%>
<%--            replaceOpacity: 0.9, //大比例尺下,不显示瓦片底图时,显示的背景颜色透明度--%>
<%--            filter: fengmap.FMTileFilter.NONE, //滤镜枚举,默认为fengmap.FMTileFilter.NONE,FMTileFilter类中预置了6种滤镜;也可以自定义滤
镜(如果值为fengmap.FMTileFilter.CUSTOM,需要配置filterCustomization,自定义参数设置参考文档)--%>
<%--        })--%>
<%--        tileLayer.addTo(map);--%>
<%--        setFilterDisabled();--%>
<%--    }--%>
<%--    // æ˜¾ç¤º/隐藏--%>
<%--    function toggleTileLayerVisibility() {--%>
<%--        if (!tileLayer) return--%>
<%--        tileLayer.visible = !tileLayer.visible;--%>
<%--        setFilterDisabled(true);--%>
<%--    }--%>
<%--    // åˆ é™¤--%>
<%--    function removeTileLayer() {--%>
<%--        if (!tileLayer) return--%>
<%--        tileLayer.remove(map);--%>
<%--        tileLayer = null;--%>
<%--        setFilterDisabled(false, true);--%>
<%--    }--%>
<%--    function setFilterDisabled(isToggle, isDelete) {--%>
<%--        if (isToggle) {--%>
<%--            let btn = document.getElementById('init');--%>
<%--            if (!btn) return--%>
<%--            if (btn.classList.value.indexOf('layui-btn-disabled') > -1) {--%>
<%--                btn.removeAttribute('disabled');--%>
<%--                btn.classList.remove('layui-btn-disabled');--%>
<%--            }--%>
<%--            else {--%>
<%--                btn.setAttribute('disabled', true);--%>
<%--                btn.classList.add('layui-btn-disabled');--%>
<%--            }--%>
<%--        }--%>
<%--        else {--%>
<%--            let btn = document.getElementById('init');--%>
<%--            if (btn) {--%>
<%--                if (isDelete) {--%>
<%--                    btn.setAttribute('disabled', true);--%>
<%--                    btn.classList.add('layui-btn-disabled');--%>
<%--                }--%>
<%--                else {--%>
<%--                    btn.classList.remove('layui-btn-disabled');--%>
<%--                    btn.removeAttribute('disabled');--%>
<%--                }--%>
<%--            }--%>
<%--        }--%>
<%--        updateUI();--%>
<%--    }--%>
<%--    //滤镜--%>
<%--    function FilterHandleClick(id, value) {--%>
<%--        if (!tileLayer) return--%>
<%--        tileLayer.setFilter(id, value);--%>
<%--    }--%>
<%--    //初始化滤镜--%>
<%--    function initFilterLayer() {--%>
<%--        // ä¿®æ”¹è®¾ç½®é¢æ¿å±•示状态--%>
<%--        updateUI(true);--%>
<%--    }--%>
<%--    UI.Init().then(() => {--%>
<%--        UI.Loading();--%>
<%--        return InitMap(options);--%>
<%--    }).then(() => {--%>
<%--        UI.Completed();--%>
<%--    });;--%>
<%--</script>--%>
<script>
    function attributeCount(obj) {
        var count = 0;
        for (var i in obj) {
            if (obj.hasOwnProperty(i)) {  // å»ºè®®åŠ ä¸Šåˆ¤æ–­,如果没有扩展对象属性可以不加
                count++;
            }
        }
        return count;
    }
    function getRealPositionsanwei() {
        var realposition = [];
        $.ajax({
            async: false,
            type: 'POST',
            url: "/hxzkuwb/getRealPositionsan2.do",
            dataType: 'json',
            success: function (data) {
                for (var i = 0; i < data.length; i++) {
                    //playMark[id,name,power,life,x,y,time]
                    realposition.push([data[i].tagid, data[i].name, data[i].power, data[i].life,data[i].baoliu2,data[i].baoliu3,data[i].time,
                        data[i].fence == 1 || data[i].sos == 1, data[i].sousuo, data[i].shipin, data[i].inkaoqing, data
                            [i].jiao, data[i].baoliu24, data[i].baoliu23, data[i].sex, data[i].minzu, data[i].phone, data[i].power, data
                            [i].bumen, data[i].baoliu19,data[i].image,data[i].bumencolor,data[i].baoliu35])
                }
            },
        });
        return realposition
    };
    function FindShowJiZhan() {
        var realposition = [];
        $.ajax({
            async: false,
            type: 'Get',
            url: "/hxzkuwb/FindSanWeiJiZhan",
            dataType: 'json',
            success: function (data) {
                realposition = data;
            },
        });
        return realposition
    };
    function FindShowWangGuan() {
        var realposition = [];
        $.ajax({
            async: false,
            type: 'Get',
            url: "/hxzkuwb/FindGateWayList",
            dataType: 'json',
            success: function (data) {
                realposition = data;
            },
        });
        return realposition
    };
    function FindShowJianZhu(){
        var realposition = [];
        $.ajax({
            async: false,
            type: 'Get',
            url: "/hxzkuwb/FindShowJianZhuShan",
            dataType: 'json',
            success: function (data) {
                realposition = data;
            },
        });
        return realposition
    }
    function getAnchorInfo2() {
        var online_anchorList = [];
        var offline_anchorList = [];
        $.ajax({
            async: false,
            type: 'POST',
            url: "/hxzkuwb/getAnchorInfo_all.do",
            dataType: 'json',
            success: function (data) {
                for (var i = 0; i < data.length; i++) {
                    tmplist = [data[i].anchorid, data[i].posx, data[i].posy, data[i].posz, data[i].GreateTime];
                    if (data[i].anchormode == "1") {
                        online_anchorList.push(tmplist);
                    } else if (data[i].anchormode == "0") {
                        offline_anchorList.push(tmplist);
                    }
                }
            }
        });
        return [online_anchorList, offline_anchorList]
    };
    var JianZhuName = "";
    var sousuopd = false;
    var biaoqians = new Object();
    var biaoqianids = new Object();
    var biaoqianidc = new Object();
    var jizhanbc = new Object();
    var jizhanbclabel = new Object();
    var wangguanbc = new Object();
    var wangguanbclabel = new Object();
    var onlineanchor = new Object();
    var onlineanchor1 = new Object();
    var offlineanchor = new Object();
    var oo = 0;
    var bm_offView = 0;//是否离线不显示图标
    var bm_kaoqing = 0;//是否出考勤区域消失
    var customSwitch1 = false;
    var customSwitch2 = false;
    var customSwitch3 = true;
    var customSwitch4 = false;
    var customSwitch5 = false;
    var anchors = getAnchorInfo2();
    var onlineAnchorList = anchors[0];
    var offlineAnchorList = anchors[1];
    var anckicon_on = '/Home/HomeImg/基站在线.png';
    var anckicon_off = '/Home/HomeImg/基站离线.png';
    var map;
    var circle;
    var mapid = 1732234539564851202 ;
    var themeid = 1717913720470753281;
    var type = 15;
    var markerpd = false;
    var scale;
    var sosalist = [];
    //坐标转换数据
    var origon = [{ x: 0, y: 0 },{ x: 0, y: 0 },{ x: 0, y: 0 }];
    var target = [{ x: 0, y: 0 },{ x: 0, y: 0 },{ x: 0, y: 0 }];
    var coordsTransformer = new fengmap.FMCoordsTransformer({ origon: origon, target: target });
    function checkedfor() {
        var personlist;
        if (type == 0) {
            personlist = getRealPositionsanwei();
        } else {
            personlist = getRealPositionsanwei();
        }map.getLevel();
        if (personlist.length != 0) {
            if (markerpd) {
                for (var i = 0; i < personlist.length; i++) {
                    if (biaoqianids[personlist[i][0]] != null) {
                        biaoqianids[personlist[i][0]].text = "";
                        if (customSwitch1) {
                            biaoqianids[personlist[i][0]].text = " " + personlist[i][1] + "  " + personlist[i][0] + "  " + personlist[i][2] +
                                "% ";
                            biaoqianids[personlist[i][0]].update();
                        } else {
                            if (customSwitch3) {
                                biaoqianids[personlist[i][0]].text = " " + personlist[i][1] + " ";
                            }
                            if (customSwitch4) {
                                biaoqianids[personlist[i][0]].text += " " + personlist[i][0] + " ";
                            }
                            if (customSwitch5) {
                                biaoqianids[personlist[i][0]].text += " " + personlist[i][2] + "% ";
                            }
                            biaoqianids[personlist[i][0]].update();
                        }
                        if (biaoqianids[personlist[i][0]].text == "" || biaoqianids[personlist[i][0]].text == null) {
                            biaoqianids[personlist[i][0]].visible = false;
                        } else {
                            if (((bm_offView == '1' && personlist[i][3] == '1') || (bm_offView == '0')) && ((bm_kaoqing == '1' && personlist
                                [i][10] == '1') || (bm_kaoqing == '0'))) {
                                biaoqianids[personlist[i][0]].visible = true;
                            }
                        }
                    } else {
                        if (personlist[i][3] == "1") {
                            var markertext;
                            var xy;
                            if (type == 0) {
                                xy = coordsTransformer.transform({ x: personlist[i][4], y: personlist[i][5] });
                            } else {
                                xy = fengmap.FMCalculator.latlngToMapCoordinate({x: personlist[i][4],y: personlist[i][5]})
                            }
                            if (customSwitch1) {
                                markertext = " " + personlist[i][1] + "  " + personlist[i][0] + "  " + personlist[i][2] + "% ";
                            } else {
                                if (customSwitch3) {
                                    markertext = " " + personlist[i][1] + " ";
                                }
                                if (customSwitch4) {
                                    markertext += " " + personlist[i][0] + " ";
                                }
                                if (customSwitch5) {
                                    markertext += " " + personlist[i][2] + "% ";
                                }
                            }
                            if (markertext != "" && markertext != null) {
                                var lmarker = new fengmap.FMTextMarker({
                                    text: " " + personlist[i][1] + " ",
                                    height: +personlist[i][12] + 9,
                                    x: xy.x,
                                    y: xy.y,
                                    textAlign: fengmap.FMTextAlign.Center,
                                    fontsize: 18,
                                    fillColor: '#ffffff',
                                    strokeColor: '#ffffff',
                                    plateColor: '60,141,196',
                                    plateStrokeColor: '60,141,196',
                                    strokeWidth: 0,
                                })
                                var level = map.getLevel();
                                var floor = map.getFloor(level);
                                lmarker.addTo(floor);
                                biaoqianids[personlist[i][0]] = lmarker;
                            }
                        }
                    }
                }
            } else {
                for (var i = 0; i < personlist.length; i++) {
                    if (biaoqianids[personlist[i][0]] != null) {
                        biaoqianids[personlist[i][0]].remove();
                        delete biaoqianids[personlist[i][0]];
                    }
                    if (biaoqians[personlist[i][0]] != null) {
                        var windowHtml;
                        var xy;
                        if (type == 0) {
                            xy = coordsTransformer.transform({ x: personlist[i][4], y: personlist[i][5] });
                        } else {
                            xy = fengmap.FMCalculator.latlngToMapCoordinate({x: personlist[i][4],y: personlist[i][5]})
                        }
                        // if (customSwitch1) {
                        //     windowHtml = '<div class="fm-control-popmarker2" style="height: 94px;top: -100px;">';
                        //     windowHtml += `<span class="fm-control-popmarker-bot2"></span>`;
                        //     windowHtml += `<span class="fm-control-popmarker-top2"></span>`;
                        //     windowHtml += `<div id="info">`;
                        //     windowHtml += `<div class="content"><a> å§“名:` + personlist[i][0] + `</a><br>
                        //                          <a> ç¼–号:`+ personlist[i][0] +
                        `</a><br>
                        //                          <a> ç”µé‡:`+ personlist[i][2] + `</a>
                        //                          </div>`;
                        //     windowHtml += `</div>`;
                        //     windowHtml += `</div>`;
                        // } else {
                        //     if (customSwitch3) {
                        //         if (customSwitch4) {
                        //             if (customSwitch5) {
                        //                 windowHtml = '<div class="fm-control-popmarker2" style="height: 94px;top: -100px;">';
                        //                 windowHtml += `<span class="fm-control-popmarker-bot2"></span>`;
                        //                 windowHtml += `<span class="fm-control-popmarker-top2"></span>`;
                        //                 windowHtml += `<div id="info">`;
                        //                 windowHtml += `<div class="content"><a> å§“名:` + personlist[i][0] + `</a><br>
                        //                          <a> ç¼–号:`+ personlist[i][0] +
                        `</a><br>
                        //                          <a> ç”µé‡:`+ personlist[i][2] + `</a>
                        //                          </div>`;
                        //                 windowHtml += `</div>`;
                        //                 windowHtml += `</div>`;
                        //             } else {
                        //                 windowHtml = '<div class="fm-control-popmarker2" style="height: 72px;top: -78px;">';
                        //                 windowHtml += `<span class="fm-control-popmarker-bot2"></span>`;
                        //                 windowHtml += `<span class="fm-control-popmarker-top2"></span>`;
                        //                 windowHtml += `<div id="info">`;
                        //                 windowHtml += `<div class="content"><a> å§“名:` + personlist[i][0] + `</a><br>
                        //                          <a> ç¼–号:`+ personlist[i][0] +
                        `</a><br>
                        //                          </div>`;
                        //                 windowHtml += `</div>`;
                        //                 windowHtml += `</div>`;
                        //             }
                        //         } else {
                        //             if (customSwitch5) {
                        //                 windowHtml = '<div class="fm-control-popmarker2" style="height: 72px;top: -78px;">';
                        //                 windowHtml += `<span class="fm-control-popmarker-bot2"></span>`;
                        //                 windowHtml += `<span class="fm-control-popmarker-top2"></span>`;
                        //                 windowHtml += `<div id="info">`;
                        //                 windowHtml += `<div class="content"><a> å§“名:` + personlist[i][1] + `</a><br>
                        //                          <a> ç”µé‡:`+ personlist[i][2] + `</a>
                        //                          </div>`;
                        //                 windowHtml += `</div>`;
                        //                 windowHtml += `</div>`;
                        //             } else {
                        //                 windowHtml = '<div class="fm-control-popmarker2" style="height: 50px;top: -56px;">';
                        //                 windowHtml += `<span class="fm-control-popmarker-bot2"></span>`;
                        //                 windowHtml += `<span class="fm-control-popmarker-top2"></span>`;
                        //                 windowHtml += `<div id="info">`;
                        //                 windowHtml += `<div class="content"><a> å§“名:` + personlist[i][1] + `</a><br>
                        //                          </div>`;
                        //                 windowHtml += `</div>`;
                        //                 windowHtml += `</div>`;
                        //             }
                        //         }
                        //     } else {
                        //         if (customSwitch4) {
                        //             if (customSwitch5) {
                        //                 windowHtml = '<div class="fm-control-popmarker2" style="height: 72px;top: -78px;">';
                        //                 windowHtml += `<span class="fm-control-popmarker-bot2"></span>`;
                        //                 windowHtml += `<span class="fm-control-popmarker-top2"></span>`;
                        //                 windowHtml += `<div id="info">`;
                        //                 windowHtml += `<div class="content"><a> ç¼–号:` + personlist[i][0] + `</a><br>
                        //                          <a> ç”µé‡:`+ personlist[i][2] + `</a>
                        //                          </div>`;
                        //                 windowHtml += `</div>`;
                        //                 windowHtml += `</div>`;
                        //             } else {
                        //                 windowHtml = '<div class="fm-control-popmarker2" style="height: 50px;top: -56px;">';
                        //                 windowHtml += `<span class="fm-control-popmarker-bot2"></span>`;
                        //                 windowHtml += `<span class="fm-control-popmarker-top2"></span>`;
                        //                 windowHtml += `<div id="info">`;
                        //                 windowHtml += `<div class="content"><a> ç¼–号:` + personlist[i][0] + `</a><br>
                        //                          </div>`;
                        //                 windowHtml += `</div>`;
                        //                 windowHtml += `</div>`;
                        //             }
                        //         } else {
                        //             if (customSwitch5) {
                        //                 windowHtml = '<div class="fm-control-popmarker2" style="height: 50px;top: -56px;">';
                        //                 windowHtml += `<span class="fm-control-popmarker-bot2"></span>`;
                        //                 windowHtml += `<span class="fm-control-popmarker-top2"></span>`;
                        //                 windowHtml += `<div id="info">`;
                        //                 windowHtml += `<div class="content"><a> ç”µé‡:` + personlist[i][2] + `</a>
                        //                          </div>`;
                        //                 windowHtml += `</div>`;
                        //                 windowHtml += `</div>`;
                        //             } else {
                        //
                        //             }
                        //         }
                        //     }
                        // }
                        if (windowHtml != "" && windowHtml != null) {
                            var lmarker = new fengmap.FMDomMarker({
                                x: xy.x,
                                y: xy.y,
                                content: windowHtml
                            });
                            var level = map.getLevel();
                            var floor = map.getFloor(level);
                            lmarker.addTo(floor);
                            biaoqianids[personlist[i][0]] = lmarker;
                        }
                    }
                }
            }
        }
    }
    function blues(e){
        $(".ttdd"+e).css("color","deepskyblue")
    }
    function blues1(e){
        $(".ttdd"+e).css("color","white")
    }
    $("#customSwitch3").prop("checked", true)
    var tileLayer;
    var flag;
    var domMarker = null;
    //地图属性
    var boxselecttool;
    var selectedModels = [];
    var selectedModels1 = [];
    var options = {
        container: document.getElementById("fengmap"),
        appName: 'map1',
        key: '09facc4ee52d1844bc1e561dad5abf59',
        mapID: '1761938416618700801',
        themeID: '1765945708318105601',
        mapURL: '../fengmap/data/',
        themeURL: '../fengmap/data/theme/',
        minTiltAngle: 0,
        mapZoom: 16,
    }
    map = new fengmap.FMMap(options);
    // åœ°å›¾åŠ è½½å®Œæˆäº‹ä»¶
    map.on('loaded', function () {
        // èŽ·å–åœ°å›¾æ¥¼å±‚ä¿¡æ¯
        floorInfo = map.getFloorInfos()
        localStorage.removeItem("domMar")
    });
    boxselecttool = new fengmap.FMBoxSelectTool(map);
    // æ³¨å†Œåœ°å›¾ç‚¹å‡»äº‹ä»¶
    map.on('click', function (event) {
        marker = null;
        var clickMode = event.targets.find(it => it.type === fengmap.FMType.MODEL)
        var floor = floorInfo.find(it => it.level === event.level)
        //更新界面的点击信息
        UI.updateInfo(clickMode, floor, event)
        var fencename = $(".Alise").text();
        JianZhuName = fencename
        JianZhuMsg(event.targets[0].FID,JianZhuName)
    })
    function kq(){
        boxselecttool.enable = true
        boxselecttool.boxStyle = {
            border: "border:5px solid #EEEE00",
            backgroundColor: "#FF4040",
            opacity: 0.5
        }
        //绘制完成事件
        boxselecttool.on('boxselected', function (e) {
            //重置上次选中model颜色
            for (var i = 0; i < selectedModels.length; i++) {
                selectedModels[i].resetColor();
            }
            selectedModels1.length = 0;
            //获取选中model
            var targets = e.targets;
            for (var i = 0; i < targets.length; i++) {
                if (targets[i].type === fengmap.FMType.MODEL) {
                    var models = map.getNodes(targets[i].children);
                    for (var j = 0; j < models.length; j++) {
                        if (models[j].FID != null) {
                            //将model颜色设置为0xff0000 é€æ˜Žåº¦å€¼ä¸º0.5
                            models[j].setColor(0xff0000, 0.5);
                            selectedModels1.push(models[j].FID);
                            selectedModels.push(models[j]);
                        }
                    }
                    localStorage.setItem("KuangXuan",selectedModels1)
                    localStorage.setItem("KuangXuan1","true")
                    break;
                }
            }
        });
        kqhuizhi = false;
        sessionStorage.setItem("kqhuizhi",false);
    }
    function closet(){
        boxselecttool.enable = false
    }
    var anchorObj = {
        'CENTER': fengmap.FMMarkerAnchor.CENTER,
        'BOTTOM': fengmap.FMMarkerAnchor.BOTTOM,
        'LEFT': fengmap.FMMarkerAnchor.LEFT,
        'LEFT_BOTTOM': fengmap.FMMarkerAnchor.LEFT_BOTTOM,
        'LEFT_TOP': fengmap.FMMarkerAnchor.LEFT_TOP,
        'RIGHT': fengmap.FMMarkerAnchor.RIGHT,
        'RIGHT_BOTTOM': fengmap.FMMarkerAnchor.RIGHT_BOTTOM,
        'RIGHT_TOP': fengmap.FMMarkerAnchor.RIGHT_TOP,
        'TOP': fengmap.FMMarkerAnchor.TOP,
    }
    function addMarker(position) {
        var panelSet = {
            height: 5,
            x: position.x,
            y: position.y,
            content: '<div style="height: 200px;background: url(\'../Home/HomeImg/FloorBg.png\') no-repeat;align-items: center;padding:
            20px;background-size: cover;width: 270px"><div style="margin-top: 25px"><div style="font-weight: bold;color: white;font-size: 15px">建筑名称
:'+JianZhuName+'<span><img style="cursor: pointer;width: 20px; height: 20px;position: absolute;left: 85%" src="../Home/HomeImg/clos.png"
        onclick="removeMarker1()"/></span></div><div style="color: black;font-size: 14px;font-weight: bold;margin-top: 10px">总共人数:80人
        </div></div></div>',
        domWidth: 300,
            domHeight: 40,
            anchor: 'CENTER',
            collision: true,
            auto: 'on',
    }
        var panelSet1 = {...panelSet};
        if (panelSet.auto === 'on') {
            delete panelSet1.domWidth;
            delete panelSet1.domHeight;
        }
        domMarker = new fengmap.FMDomMarker({
            ...panelSet1,
            x: panelSet1.x,
            y: panelSet1.y,
            anchor: anchorObj[panelSet1.anchor],
            content: panelSet.content
        });
        var level = map.getLevel()
        var floor = map.getFloor(level);
        domMarker.addTo(floor);
        localStorage.setItem("domMar",domMarker);
    }
    function removeMarker() {
        if (localStorage.getItem("domMar") == "" || localStorage.getItem("domMar") == null){
        }else{
            domMarker.remove();
        }
    }
    function removeMarker1() {
        localStorage.removeItem("SanWei_JianZhu")
        domMarker.remove();
        localStorage.removeItem("domMar")
    }
    function setFilterDisabled(isToggle, isDelete) {
        if (isToggle) {
            let btn = document.getElementById('init');
            if (!btn) return
            if (btn.classList.value.indexOf('layui-btn-disabled') > -1) {
                btn.removeAttribute('disabled');
                btn.classList.remove('layui-btn-disabled');
            }
            else {
                btn.setAttribute('disabled', true);
                btn.classList.add('layui-btn-disabled');
            }
        }
        else {
            let btn = document.getElementById('init');
            if (btn) {
                if (isDelete) {
                    btn.setAttribute('disabled', true);
                    btn.classList.add('layui-btn-disabled');
                }
                else {
                    btn.classList.remove('layui-btn-disabled');
                    btn.removeAttribute('disabled');
                }
            }
        }
    }
    function quxiao3() {
        sousuopd = false;
        sousuoid = "";
        document.getElementById("sou").style.display = "";
        document.getElementById("sousuotagid").value = "";
    }
    function sousuo3() {
        sousuopd = true;
        sousuoid = $("#sousuotagid").val();
        document.getElementById("qu").style.display = "";
    }
    sousuo = sousuo3;
    quxiao = quxiao3;
    var wangguanflag;
    var jizhanflag;
    var kqhuizhi = true;
    setInterval(function (){
        fn3();
    },2000)
    //循环移动
    var radioes = 0;
    $.ajax({
        url: "/hxzkuwb/findPerAll",
        type: "GET",
        async: false,
        success: function(data) {
            if(data == "-1" || data == ""){
                radioes = 20
            }else{
                radioes = data[0].redius/100
            }
        },
    });
    var personlist2 = FindShowJiZhan();
    var personlist3 = FindShowWangGuan();
    var personlist4 = FindShowJianZhu();
    var fmarkerAnchor;
    //显示网关
    if (localStorage.getItem("wangguanshow") == "1"){
        for(var i = 0 ; i <personlist3.length;i++){
            var level = map.getLevel();
            var floor1 = map.getFloor(level);
            var xy
            var turl;
            xy = fengmap.FMCalculator.latlngToMapCoordinate({
                x: personlist3[i].lon,
                y: personlist3[i].lat
            });
            turl = '/hxzkuwb/Icon/wangguan.png';
            fmarkerAnchor = new fengmap.FMImageMarker({
                url: turl,
                x: xy.x,
                y: xy.y,
            });
            var windowHtml = '<div class="" style="height: 100px;width: 80px;text-align: center;position: absolute;top: -40px;left: -40px">';
            windowHtml += `<div class="content" style="border-radius: 5px;background-color:ghostwhite;"><a style="color: black;font-size:
14px"> ç½‘关:` + personlist3[i].loragwid + `</a></div>`;
            windowHtml += `</div>`;
            lmarkerAnchor = new fengmap.FMDomMarker({
                x: xy.x,
                y: xy.y,
                content: windowHtml
            });
            fmarkerAnchor.addTo(floor1);
            lmarkerAnchor.addTo(floor1)
            wangguanbc[personlist3[i].loragwid] = fmarkerAnchor;
            wangguanbclabel[personlist3[i].loragwid] = lmarkerAnchor;
        }
        wangguanflag = true;
    }
    if (localStorage.getItem("jizhanshow") == "1"){
        for(var i = 0 ; i <personlist2.length;i++){
            var level = map.getLevel();
            var floor1 = map.getFloor(level);
            var xy
            var turl;
            xy = fengmap.FMCalculator.latlngToMapCoordinate({
                x: personlist2[i].baoliu6,
                y: personlist2[i].baoliu7
            });
            turl = '/hxzkuwb/Icon/jizhan.png';
            var fmarkerAnchor = new fengmap.FMImageMarker({
                url: turl,
                x: xy.x,
                y: xy.y,
            });
            var windowHtml = '<div class="" style="height: 100px;width: 80px;text-align: center;position: absolute;top: -40px;left: -40px">';
            windowHtml += `<div class="content" style="border-radius: 5px;background-color:ghostwhite;"><a style="color: black;font-size:
14px"> åŸºç«™ï¼š` + personlist2[i].anchorid + `</a></div>`;
            windowHtml += `</div>`;
            lmarkerAnchor = new fengmap.FMDomMarker({
                x: xy.x,
                y: xy.y,
                content: windowHtml
            });
            fmarkerAnchor.addTo(floor1);
            lmarkerAnchor.addTo(floor1)
            jizhanbc[personlist2[i].anchorid] = fmarkerAnchor;
            jizhanbclabel[personlist2[i].anchorid] = lmarkerAnchor;
        }
        jizhanflag = true;
    }
    function fn3() {
        kqhuizhi = sessionStorage.getItem("kqhuizhi")
        if (sessionStorage.getItem("QuYuKuangXuan") == "1" && kqhuizhi == "true"){
            kq()
        }else if (kqhuizhi == "false1"){
            closet()
        }
        var levelJian = map.getLevel()
        var floorJian = map.getFloor(levelJian)
            // for (var i = 0; i <personlist4.length; i++){
            //     if (personlist4[i].pname ==3 && personlist4[i].baoliu39 != ""  && personlist4[i].baoliu39 != "0" && personlist4
            [i].baoliu39 != "-1"){
            //         //黄色闪烁
            //         model = floorJian.getLayers(fengmap.FMType.MODEL_LAYER)[0].getFeatures().find(item => item.FID === personlist4
            [i].baoliu39)
            //         model.flash('yellow')
            //     }
            //     if (personlist4[i].pname >3 && personlist4.pname <=6 && personlist4[i].baoliu39 != "" && personlist4[i].baoliu39 != "0" &&
            personlist4[i].baoliu39 != "-1"){
                //         //橙色闪烁
                //         model = floorJian.getLayers(fengmap.FMType.MODEL_LAYER)[0].getFeatures().find(item => item.FID === personlist4
                [i].baoliu39)
                //         model.flash('orange')
                //     }
                //     if (personlist4[i].pname >6 && personlist4[i].baoliu39 != "" && personlist4[i].baoliu39 != "-1" && personlist4[i].baoliu39
            != "0" ){
                    //
                    //         model = floorJian.getLayers(fengmap.FMType.MODEL_LAYER)[0].getFeatures().find(item => item.FID === personlist4
                    [i].baoliu39)
                    //
                    //         model.flash('blue')
                    //     }
                    // }
                    if(localStorage.getItem("三维地图") != "执行"){
                        return
                    }
                    var personlist1 = getRealPositionsanwei();
                    //显示基站
                    for (var i = 0; i < personlist1.length; i++) {
                        var xy;
                        var turl;
                        xy = fengmap.FMCalculator.latlngToMapCoordinate({
                            x: personlist1[i][4],
                            y: personlist1[i][5]
                        });
                        turl = '/hxzkuwb/Icon/' + personlist1[i][20] + '';
                        var fmarker = biaoqians[personlist1[i][0]];
                        var lmarker = biaoqianids[personlist1[i][0]];
                        var circles = biaoqianidc[personlist1[i][0]]
                        if (fmarker) {
                            // å¦‚果标记存在,则更新坐标
                            fmarker.moveTo({
                                x: xy.x,
                                y: xy.y
                            });
                            lmarker.moveTo({
                                x: xy.x,
                                y: xy.y
                            });
                        } else {
                            // å¦‚果标记不存在,则添加marker
                            fmarker = new fengmap.FMImageMarker({
                                url: turl,
                                x: xy.x,
                                y: xy.y,
                            });
                            if (personlist1[i][3] == "1"){
                                var windowHtml = '<div class="" style="height: 100px;width: 100px;text-align: center;position: absolute;top: -
                                40px;left: -50px">';
                                windowHtml += `<div class="content" style="border-radius: 5px;background-color: ` + personlist1[i][21] + `;"><a
style="color: white;font-size: 16px"> ` + personlist1[i][1] + `</a></div>`;
                                windowHtml += `</div>`;
                                lmarker = new fengmap.FMDomMarker({
                                    x: xy.x,
                                    y: xy.y,
                                    content: windowHtml
                                });
                            }else{
                                var windowHtml = '<div class="" style="height: 100px;width: 100px;text-align: center;position: absolute;top: -
                                40px;left: -50px">';
                                windowHtml += `<div class="content" style="border-radius: 5px;background-color: ` + personlist1[i][21] + `;"><a
style="color: white;font-size: 16px"> ` + personlist1[i][1] + `-离线</a></div>`;
                                windowHtml += `</div>`;
                                lmarker = new fengmap.FMDomMarker({
                                    x: xy.x,
                                    y: xy.y,
                                    content: windowHtml
                                });
                            }
                            var level = map.getLevel();
                            var floor = map.getFloor(level);
                            var panelSet;
                            fmarker.addTo(floor);
                            lmarker.addTo(floor);
                            biaoqians[personlist1[i][0]] = fmarker;
                            biaoqianids[personlist1[i][0]] = lmarker;
                            biaoqianidc[personlist1[i][0]] = circle;
                        }
                        if (sessionStorage.getItem("oNLine") == "No" && personlist1[i][3] == "0") {
                            // å¦‚果标记不在线且设备离线,则移除标记
                            fmarker.remove();
                            lmarker.remove();;
                            delete biaoqians[personlist1[i][0]];
                            delete biaoqianids[personlist1[i][0]];
                        }
                    }
                }
                function getMercator(poi) { //[114.32894, 30.585748]
                    var mercator = {};
                    var earthRad = 6378137.0;
                    mercator.x = poi[0] * Math.PI / 180 * earthRad;
                    var a = poi[1] * Math.PI / 180;
                    mercator.y = earthRad / 2 * Math.log((1.0 + Math.sin(a)) / (1.0 - Math.sin(a)));
                    return [mercator.x, mercator.y]; //[12727039.383734727, 3579066.6894065146]
                }
                localStorage.removeItem("SanWei_JianZhu")
                function JianZhuMsg(Fid,Name){
                    //根据Fid查询,如果查到则显示,
                    var data = "Fid="+Fid
                    $.get("/hxzkuwb/FindSanWeiIFID",data,function (data){
                        if(data>0){
                            localStorage.setItem("SanWei_JianZhu",Name)
                            localStorage.setItem("SanWei_JianZhuFID",Fid)
                            localStorage.setItem("DiaoYong_SanWeiFlOoor","FID")
                        }else{
                            localStorage.removeItem("SanWei_JianZhu")
                            localStorage.removeItem("SanWei_JianZhuFID")
                        }
                    })
                }
</script>
</html>
src/main/webapp/Home/Home3.jsp
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,97 @@
<!DOCTYPE html>
<html lang="en">
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<head>
    <title>框选地图要素</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <script src="https://developer.fengmap.com/fmAPI/demos/libs/js/fengmap.map.min.js"></script>
    <script src="https://developer.fengmap.com/fmAPI/demos/libs/js/fengmap.analyser.min.js"></script>
    <script src="https://developer.fengmap.com/fmAPI/demos/libs/js/fengmap.plugin.draw.min.js"></script>
    <script src="https://developer.fengmap.com/fmAPI/demos/libs/layui/layui.js"></script>
    <link rel="stylesheet" href="https://developer.fengmap.com/fmAPI/demos/libs/layui/css/layui.css">
    <link rel="stylesheet" href="https://developer.fengmap.com/fmAPI/demos/libs/css/font/iconfont.css">
    <link rel="stylesheet" href="https://developer.fengmap.com/fmAPI/demos/libs/css/index.css">
    <link rel="stylesheet" href="https://developer.fengmap.com/fmAPI/demos/libs/css/layui.css">
    <link rel="stylesheet" href="https://developer.fengmap.com/fmAPI/demos/Application/boxSelectTool/css/index.css">
</head>
<body>
<div class="toolBarDiv"></div>
<div id="fengmap"></div>
<!-- ä¿¡æ¯å±•示 -->
<div class="layui-card card">
    <div class="layui-card-header"><i class="icon iconfont icon-tishi"></i>请尝试按住鼠标左键拖拽拉框以选择有名称的要素</div>
    <div id="info"></div>
</div>
<div class="tableInfoBox">
    <div class="title">
        <button onclick="kq()">开启绘制功能</button>
        <button onclick="closet()">关闭绘制功能</button>
    </div>
    <table id="demo" lay-filter="test" lay-skin="line"></table>
</div>
</body>
<script src="https://developer.fengmap.com/fmAPI/demos/libs/js/dispose.js"></script>
<script>
    var map;
    var boxselecttool;
    var selectedModels = [];
    var options = {
        container: document.getElementById('fengmap'),
        appName: '蜂鸟研发SDK_2_0',
        key: '57c7f309aca507497d028a9c00207cf8',
        mapID: '1514920297309614082',
        themeID: '1580453922356207618',
        viewMode: fengmap.FMViewMode.MODE_2D,
        level: 5,
        mapZoom: 19,
    };
    map = new fengmap.FMMap(options);
    map.on('loaded', function () {
    });
    boxselecttool = new fengmap.FMBoxSelectTool(map);
    function kq(){
        boxselecttool.enable = true
        boxselecttool.boxStyle = {
            border: "border:5px solid #EEEE00",
            backgroundColor: "#FF4040",
            opacity: 0.5
        }
        //绘制完成事件
        boxselecttool.on('boxselected', function (e) {
            //重置上次选中model颜色
            for (var i = 0; i < selectedModels.length; i++) {
                selectedModels[i].resetColor();
            }
            selectedModels.length = 0;
            //获取选中model
            var targets = e.targets;
            for (var i = 0; i < targets.length; i++) {
                if (targets[i].type === fengmap.FMType.MODEL) {
                    var models = map.getNodes(targets[i].children);
                    for (var j = 0; j < models.length; j++) {
                        if (models[j].name != null) {
                            //将model颜色设置为0xff0000 é€æ˜Žåº¦å€¼ä¸º0.5
                            models[j].setColor(0xff0000, 0.5);
                            selectedModels.push(models[j]);
                        }
                    }
                    break;
                }
            }
        });
    }
    function closet(){
        boxselecttool.enable = false
    }
    /* æ›´æ–°ç•Œé¢çš„点击信息 */
</script>
</html>
src/main/webapp/Home/HomeImg/GengDuo1.png
src/main/webapp/Home/HomeImg/image/GengDuo.png
src/main/webapp/Home/HomeImg/loding.gif
src/main/webapp/Home/HomeImg/tobottom.png
src/main/webapp/HouTai/ChaXunGuiJi/ChaXunGuiJi1.jsp
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,324 @@
<%--
  Created by IntelliJ IDEA.
  User: Dell
  Date: 2023/11/23
  Time: 11:54
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
    <style>
        ul li{
            height: 30px;
        }
        .layui-layout-body{
            padding-bottom: 0px;
        }
    </style>
</head>
<link rel="stylesheet" href="../../CSS/layui2.css">
<link rel="stylesheet" href="../../CSS/layer.css">
<link rel="stylesheet" href="ChaXunGuiJiJs/style.css">
<body style="">
<div class="heimu1" style="display: none;width: 100%; overflow: hidden;text-align: center;position: fixed;top: 300px;z-index: 999999999;">
    <div class="loader-radar" style="height: 100px;width: 100px"></div>
</div>
<div class="heimu" style="display: none;height: 100%;width: 100%;position: fixed;top: 0px;background-color: rgb(0,0,0,0.6);z-index: 9999999"></div>
<div class="layui-container" style="width: 55%;margin: 0px;padding: 0px">
    <div class="layui-row">
        <div class="layui-col-xs12 layui-col-md12">
                <div class="layui-form-item" style="display: none">
                    <label class="layui-form-label"  style="background-color: #1E9FFF;color: white;font-size: 12px">切换地图</label>
                    <div class="layui-input-inline">
                        <select name="city" style="height: 38px;border: 1px solid #666666;background-color: whitesmoke" lay-verify="required" id="cxList" class="dituList" onchange="changeMap()">
                            <option value="百度地图">百度地图</option>
                        </select>
                    </div>
                </div>
                <div class="layui-form-item" style="display: inline-block;position: relative;left: -5%">
                    <label class="layui-form-label">设备ID</label>
                    <div class="layui-input-inline">
                        <input type="text" class="layui-input" id="tagid"  placeholder="请输入ID">
                    </div>
                </div>
                <div class="layui-form-item" style="display: none;position: relative;left: -80px">
                    <div class="layui-input-inline" style="width: 300px">
                        <button style="display: inline-block;height: 35px;width: 85px" class="" onclick="ontimes(0.5)">近半小时</button>
                        <button style="display: inline-block;height: 35px;width: 85px" class="" onclick="ontimes(1)">近1小时</button>
                        <button style="display: inline-block;height: 35px;width: 85px" class="" onclick="ontimes(2)">近2小时</button>
                    </div>
                </div>
                <div class="layui-form-item" style="display: inline-block;position: relative;left: -5%;">
                    <label class="layui-form-label">请选择范围</label>
                    <div class="layui-input-inline">
                        <input type="text" class="layui-input" id="test16" placeholder="开始 åˆ° ç»“束" style="width: 300px">
                        <input type="hidden" id="FanWei">
                    </div>
                </div>
            <div class="layui-form-item" style="display: inline-block;position: relative;left: 6%;" id="bfsudu" >
                <div class="layui-input-inline">
                    <select id="bofangsudu" onchange="baiduBoFang()" style="height: 35px" >
                        <option value="1">播放速度x1</option>
                        <option value="2">播放速度x2</option>
                        <option value="4">播放速度x4</option>
                        <option value="6">播放速度x6</option>
                        <option value="播放速度x8">播放速度x8</option>
                    </select>
                </div>
            </div>
                <div class="layui-form-item" style="display: inline-block;width: 70px">
                    <div class="layui-input-inline">
                        <button type="button" class="layui-btn layui-btn-danger" id="search" onclick="ks('查询')">查询</button>
                    </div>
                </div>
            <div class="layui-form-item" style="display: inline-block;width: 70px">
                <div class="layui-input-inline">
                    <button type="button" class="layui-btn layui-btn-danger" id="pause" onclick="zanting()" >暂停</button>
                </div>
            </div>
        </div>
        <div class="layui-col-xs12 layui-col-md12">
            <div style="width: 100%; height: 50%;margin: auto"
                 id="wrap">
                <canvas id="draw"></canvas>
        </div>
    </div>
</div>
<div style="width: 300px;height: 400px;background-color: rgb(12, 98, 163,0.7);position: fixed;top: 170px;right:15px;z-index: 99999;display: none">
    <ul style="color: white;margin-top: 18px;margin-left: 20px;font-size: 12px">
        <li>当前:<span id="data1">0/0条</span></li>
        <li>名称:<span class="data2">暂无数据</span></li>
        <li>编号:<span class="data3">暂无数据</span></li>
        <li>经度:<span class="data4">暂无数据</span></li>
        <li>纬度:<span class="data5">暂无数据</span></li>
        <li>高程:<span class="data6">暂无数据</span></li>
        <li>状态:<span class="data7">暂无数据</span></li>
        <li>X坐标:<span class="data8">暂无数据</span></li>
        <li>Y坐标:<span class="data9">暂无数据</span></li>
        <li>Z坐标:<span class="data10">暂无数据</span></li>
        <li>电量:<span class="data11">暂无数据</span></li>
        <li>时间:<span class="data12">暂无数据</span></li>
    </ul>
</div>
</div>
</body>
<script src="/hxzkuwb/HouTai/Js/jquery-3.5.1.js"></script>
<script src="../../JS/layui.js"></script>
<script src="../../JS/layer.js"></script>
<script src="ChaXunGuiJiJs/ChaXunGuiJiJs.js"></script>
<script src="ChaXunGuiJiJs/ErWei.js"></script>
<script src="ChaXunGuiJiJs/BaiDuGuiJi.js"></script>
<script src="//mapopen.bj.bcebos.com/github/BMapGLLib/TrackAnimation/src/TrackAnimation.min.js"></script>
<script>
    localStorage.setItem("ChaXunGuiJi","已完成")
    loadJScript();
    function loadJScript() {
        var script = document.createElement('script');
        script.type = 'text/javascript';
        script.src = '//api.map.baidu.com/api?type=webgl&v=1.0&ak=zoVtgLNWuaZBjMAa32RZRFIagXxST0fm&callback=init';
        document.body.appendChild(script);
    }
function ks(input){
    if (input == "查询"){
        $("#search").css("background-color","green")
        var type = $("#cxList").val()
        if(type == "百度地图") {
            baiDuGuiJi()
        }
    }
}
function changeMap(){
    var ceng =$("#cxList").val();
    if(ceng == "百度地图"){
        $("#baidumap").show()
        $("#wrap").hide();
    }else{
        $("#bfsudu").css("display","inline-block")
        $("#wrap").show();
        $("#baidumap").hide()
        $.ajax({
            async: false,
            type: 'POST',
            url: "/hxzkuwb/findFloorMap",
            dataType: 'json',
            data: {
                floor: ceng
            },
            success: function (data) {
                ts1 = getYuandian()
                ts2 = getTruemap()
                imgUrl = '/hxzkuwb/HouTai/MapImg/' + data.mapname;
                //imgUrl = '/hxzkoa/hxzk/image/mapfile/office.jpg';
                new MarkPoints(imgUrl);
            }
        })
    }
}
function ontimes(time) {
    if(time == 0.5){
        var now = new Date();
        var year1 = now.getFullYear();
        var month1 = String(now.getMonth() + 1).padStart(2, '0');
        var day1 = String(now.getDate()).padStart(2, '0');
        var hour1 = String(now.getHours()).padStart(2, '0');
        var minute1 = String(now.getMinutes()).padStart(2, '0');
        var second1 = String(now.getSeconds()).padStart(2, '0');
        var currentDateTime = year1+"-"+month1+"-"+day1+" "+hour1+":"+minute1+":"+second1
        console.log(currentDateTime);
        const halfHourAgo = new Date();
        halfHourAgo.setMinutes(halfHourAgo.getMinutes() - 30);
        const year = halfHourAgo.getFullYear();
        const month = String(halfHourAgo.getMonth() + 1).padStart(2, '0');
        const day = String(halfHourAgo.getDate()).padStart(2, '0');
        const hour = String(halfHourAgo.getHours()).padStart(2, '0');
        const minute = String(halfHourAgo.getMinutes()).padStart(2, '0');
        const second = String(halfHourAgo.getSeconds()).padStart(2, '0');
        const halfHourAgoDateTime = year+"-"+month+"-"+day+" "+hour+":"+minute+":"+second
        $("#FanWei").val(halfHourAgoDateTime+" åˆ° "+currentDateTime)
        $("#test16").val("已选择近半小时")
    }
    if (time == 1){
        var now = new Date();
        var year1 = now.getFullYear();
        var month1 = String(now.getMonth() + 1).padStart(2, '0');
        var day1 = String(now.getDate()).padStart(2, '0');
        var hour1 = String(now.getHours()).padStart(2, '0');
        var minute1 = String(now.getMinutes()).padStart(2, '0');
        var second1 = String(now.getSeconds()).padStart(2, '0');
        var currentDateTime = year1+"-"+month1+"-"+day1+" "+hour1+":"+minute1+":"+second1
        const halfHourAgo = new Date();
        halfHourAgo.setMinutes(halfHourAgo.getMinutes() - 60);
        const year = halfHourAgo.getFullYear();
        const month = String(halfHourAgo.getMonth() + 1).padStart(2, '0');
        const day = String(halfHourAgo.getDate()).padStart(2, '0');
        const hour = String(halfHourAgo.getHours()).padStart(2, '0');
        const minute = String(halfHourAgo.getMinutes()).padStart(2, '0');
        const second = String(halfHourAgo.getSeconds()).padStart(2, '0');
        const halfHourAgoDateTime = year+"-"+month+"-"+day+" "+hour+":"+minute+":"+second
        $("#FanWei").val(halfHourAgoDateTime+" åˆ° "+currentDateTime)
        $("#test16").val("已选择近1小时")
    }
    if (time == 2){
        var now = new Date();
        var year1 = now.getFullYear();
        var month1 = String(now.getMonth() + 1).padStart(2, '0');
        var day1 = String(now.getDate()).padStart(2, '0');
        var hour1 = String(now.getHours()).padStart(2, '0');
        var minute1 = String(now.getMinutes()).padStart(2, '0');
        var second1 = String(now.getSeconds()).padStart(2, '0');
        var currentDateTime = year1+"-"+month1+"-"+day1+" "+hour1+":"+minute1+":"+second1
        console.log(currentDateTime);
        const halfHourAgo = new Date();
        halfHourAgo.setMinutes(halfHourAgo.getMinutes() - 120);
        const year = halfHourAgo.getFullYear();
        const month = String(halfHourAgo.getMonth() + 1).padStart(2, '0');
        const day = String(halfHourAgo.getDate()).padStart(2, '0');
        const hour = String(halfHourAgo.getHours()).padStart(2, '0');
        const minute = String(halfHourAgo.getMinutes()).padStart(2, '0');
        const second = String(halfHourAgo.getSeconds()).padStart(2, '0');
        const halfHourAgoDateTime = year+"-"+month+"-"+day+" "+hour+":"+minute+":"+second
        $("#FanWei").val(halfHourAgoDateTime+" åˆ° "+currentDateTime)
        $("#test16").val("已选择近2小时")
    }
}
    function zanting(){
        var tall = $("#pause").text();
        if (cx == true){
            if (tall == "暂停"){
                tds = false
                $("#pause").text("ç»§ç»­")
            }else{
                tds = true
                $("#pause").text("暂停")
                var ins = localStorage.getItem("JiXu")
                var movingIcon = new BMapGL.Icon('../../Icon/人员.png', new BMapGL.Size(32, 32));
                var marker = new BMapGL.Marker(dtlist[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,
                });
                marker.setLabel(label);
                var marker1 = new BMapGL.Marker(dtlist[0], {icon: movingIcon});
                marker1.setLabel(label1);
                bm.clearOverlays();
                bm.addOverlay(marker1)
                bm.addOverlay(marker);
                function animateMarker(index) {
                    if (tds == false) {
                        localStorage.setItem("JiXu",index)
                        return;
                    } else {
                        if (index == datalist.length) {
                            nub = false
                        }
                        $("#data1").text(index + "/" + datalist.length)
                        $(".data2").text(datalist[index].name)
                        $(".data3").text(datalist[index].tagid)
                        $(".data4").text(datalist[index].gspJingdu)
                        $(".data5").text(datalist[index].gpsWeidu)
                        $(".data6").text(datalist[index].gpsHaibaGao)
                        $(".data7").text(datalist[index].gpsState)
                        $(".data11").text(datalist[index].gpsPower)
                        $(".data12").text(datalist[index].addtime)
                        if (index < dtlist.length) {
                            var point = new BMapGL.Point(dtlist[index].lng, dtlist[index].lat);
                            marker.setPosition(point);
                            marker1.setPosition(point);
                            label.setContent(datalist[index].name + " " + datalist[index].tagid);
                            label1.setContent(datalist[index].gspJingdu + " " + datalist[index].gpsWeidu);
                            // è®¾ç½®å»¶è¿ŸåŽç§»åŠ¨åˆ°ä¸‹ä¸€ä¸ªç‚¹
                            setTimeout(function () {
                                animateMarker(parseInt(ins)+parseInt(1));
                                ins = parseInt(ins)+parseInt(1)
                            }, sudu); // è¿™é‡Œè®¾ç½®çš„æ˜¯æ¯500毫秒移动一次,你可以根据需要调整
                        }
                        if (index < dtlist.length && index > 0) {
                            var line = new BMapGL.Polyline([dtlist[index - 1], point], {
                                strokeColor: 'red',
                                strokeWeight: 2,
                                strokeOpacity: 1
                            });
                            bm.addOverlay(line);
                        }
                    }
                }
                animateMarker(ins);
            }
        }else{
            layer.msg('请先查询轨迹!')
        }
    }
</script>
</html>
src/main/webapp/Icon/3DµØÍ¼.png
src/main/webapp/Icon/GISµØÍ¼.png
src/main/webapp/Icon/Æ½ÃæµØÍ¼.png
src/main/webapp/Icon/²é¿´¸ü¶à.png
src/main/webapp/Icon/Òþ²Ø¿´°å.png