| | |
| | | <html> |
| | | <head> |
| | | <title>Title</title> |
| | | <script src="../fengmap/js/fengmap.map.min.js"></script> |
| | | <script src="https://developer.fengmap.com/fmAPI/demos/libs/js/fengmap.plugin.layers.min.js"></script> |
| | | <script src="https://developer.fengmap.com/fmAPI/demos/libs/layui/layui.js"></script> |
| | | <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/js/FMUI.js"></script> |
| | | <script src="https://developer.fengmap.com/fmAPI/demos/BaseMap/tileBaseMap/js/index.js"></script> |
| | | <link rel="stylesheet" href="https://developer.fengmap.com/fmAPI/demos/libs/css/toolBarStyle.css"> |
| | | <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/libs/css/layui.css"> |
| | | <link rel="stylesheet" href="https://developer.fengmap.com/fmAPI/demos/BaseMap/tileBaseMap/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>--%> |
| | | |
| | | </head> |
| | | <body> |
| | | <%--<div class="layui-container">--%> |
| | |
| | | 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 |
| | | 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]) |
| | | } |
| | | }, |
| | |
| | | var tileLayer; |
| | | |
| | | var flag; |
| | | var domMarker = null; |
| | | |
| | | 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', |
| | | mapID: '1761938416618700801', |
| | | themeID: '1737015464018382850', |
| | | mapURL: '../fengmap/data/', |
| | | themeURL: '../fengmap/data/theme/', |
| | |
| | | |
| | | } |
| | | |
| | | /* 初始化地图 */ |
| | | 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; |
| | | }; |
| | | map = new fengmap.FMMap(options); |
| | | |
| | | // 设置底图 |
| | | function SetTileLayerMode(type) { |
| | | if (tileLayer != null) { |
| | | tileLayer.remove(map); |
| | | tileLayer = null; |
| | | } |
| | | // tileLayer = new fengmap.FMTileLayer({ |
| | | // mode: objType[type], |
| | | // offset: 1.0, |
| | | // filter: fengmap.FMTileFilter.NONE, //滤镜枚举,默认为fengmap.FMTileFilter.NONE,FMTileFilter类中预置了6种滤镜;也可以自定义滤镜(如果值为fengmap.FMTileFilter.CUSTOM,需要配置filterCustomization,自定义参数设置参考文档) |
| | | // }) |
| | | // tileLayer.addTo(map); |
| | | // 地图加载完成事件 |
| | | map.on('loaded', function () { |
| | | // 获取地图楼层信息 |
| | | floorInfo = map.getFloorInfos() |
| | | }); |
| | | // 注册地图点击事件 |
| | | map.on('click', function (event) { |
| | | |
| | | setFilterDisabled(); |
| | | } |
| | | console.log(target) |
| | | 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(); |
| | | console.log(event) |
| | | addMarker(event.coords) |
| | | }) |
| | | |
| | | // 显示/隐藏 |
| | | function toggleTileLayerVisibility() { |
| | | if (!tileLayer) return |
| | | 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, |
| | | } |
| | | |
| | | tileLayer.visible = !tileLayer.visible; |
| | | |
| | | setFilterDisabled(true); |
| | | } |
| | | function addMarker(position) { |
| | | |
| | | // 删除 |
| | | function removeTileLayer() { |
| | | if (!tileLayer) return |
| | | var panelSet = { |
| | | height: 5, |
| | | x: position.x, |
| | | y: position.y, |
| | | content: `<div style="background-color: white;display: flex;align-items: center;padding: 15px"><div style="width: 54px;height: 54px;text-align: center;line-height:54px;margin-right: 14px;background: #FFFFFF;border: 1px solid #EDEDED;"><img width="37" src="https://developer.fengmap.com/fmAPI/images/domlogo.png"/></div><div><div style="font-size: 14;font-weight: bold;">DomMarker</div><div style="color: rgba(0,0,0,0.7);font-size: 12px;margin-top: 5px;">商铺 <span style="color: rgba(0,0,0,0.5);">L001</span></div><div style="color: rgba(0,0,0,0.7);font-size: 12px;margin-top: 5px;">面积 <span style="color: rgba(0,0,0,0.5);">100㎡</span></div></div></div>`, |
| | | domWidth: 200, |
| | | domHeight: 40, |
| | | anchor: 'CENTER', |
| | | collision: true, |
| | | auto: 'on', |
| | | |
| | | tileLayer.remove(map); |
| | | tileLayer = null; |
| | | setFilterDisabled(false, true); |
| | | } |
| | | } |
| | | |
| | | function setFilterDisabled(isToggle, isDelete) { |
| | | |
| | | /* 构造 Marker 并添加到地图上 */ |
| | | 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); |
| | | } |
| | | |
| | | function removeMarker() { |
| | | domMarker.remove(); |
| | | domMarker = null; |
| | | } |
| | | function setFilterDisabled(isToggle, isDelete) { |
| | | if (isToggle) { |
| | | let btn = document.getElementById('init'); |
| | | if (!btn) return |
| | |
| | | } |
| | | } |
| | | } |
| | | 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(); |
| | | });; |
| | | |
| | | |
| | | |
| | |
| | | x: personlist1[i][4], |
| | | y: personlist1[i][5] |
| | | }); |
| | | |
| | | turl = '/hxzkuwb/Icon/' + personlist1[i][20] + ''; |
| | | |
| | | |
| | |
| | | |
| | | |
| | | if (fmarker) { |
| | | console.log("更新坐标") |
| | | |
| | | // 如果标记存在,则更新坐标 |
| | | fmarker.moveTo({ |
| | | x: xy.x, |
| | |
| | | var level = map.getLevel(); |
| | | var floor = map.getFloor(level); |
| | | var panelSet; |
| | | if(personlist1[i][22] <=3 && personlist1[i][3] == 1){ |
| | | if(personlist1[i][22] <=3 && personlist1[i][3] >0){ |
| | | //黄色告警区域 |
| | | panelSet = { |
| | | height: 10, |
| | |
| | | y: xy.y, |
| | | }); |
| | | var windowHtml = ""; |
| | | |
| | | if(personlist1[i][3]=="0"){ |
| | | windowHtml = '<div class="" style="height: 100px;width: 100px;text-align: center;position: absolute;top: -30px;left: -30px">'; |
| | | windowHtml += `<div class="content" style="border-radius: 5px;background-color:rgb(102,102,102,0.5);"><a style="color: white;font-size: 16px"> ` + personlist1[i][1] + `-离线</a></div>`; |
| | |
| | | biaoqianids[personlist1[i][0]] = lmarker; |
| | | biaoqianidc[personlist1[i][0]] = circle; |
| | | } |
| | | if (localStorage.getItem("Online") == "No" && personlist1[i][3] == "0") { |
| | | if (localStorage.getItem("oNLine") == "No" && personlist1[i][3] == "0") { |
| | | // 如果标记不在线且设备离线,则移除标记 |
| | | fmarker.remove(); |
| | | lmarker.remove();; |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | 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] |
| | | } |
| | | </script> |
| | | </html> |