/*
|
* @Description:
|
* @Version: 1.0
|
* @Author: yangsx
|
* @Date: 2019-12-09 19:01:40
|
* @LastEditors: yangsx
|
* @LastEditTime: 2019-12-14 14:44:57
|
*/
|
define([
|
"dojo",
|
"dojo/_base/declare",
|
"dojo/_base/lang",
|
"base/BaseWidget",
|
"dojo/text!widgets/supervisoryMap/template.html",
|
"base/AppEvent",
|
"base/ConfigData",
|
"widgets/supervisoryMap/config",
|
"dojo/dom",
|
"dojo/dom-construct",
|
"dojo/dom-attr",
|
"dojo/dom-style",
|
"dojo/on",
|
"esri/layers/ArcGISDynamicMapServiceLayer",
|
"esri/layers/ArcGISTiledMapServiceLayer",
|
"esri/layers/FeatureLayer",
|
"controls/tab/TabControl",
|
"esri/dijit/SymbolStyler",
|
"esri/styles/basic",
|
"dojo/_base/array",
|
"esri/InfoTemplate",
|
"esri/tasks/query",
|
"esri/tasks/QueryTask",
|
"esri/Color",
|
"esri/toolbars/edit",
|
"esri/graphic",
|
"esri/geometry/Point",
|
"esri/geometry/Polyline",
|
"esri/geometry/Polygon",
|
"esri/geometry/Extent",
|
"esri/tasks/FeatureSet",
|
"esri/renderers/HeatmapRenderer",
|
"esri/symbols/SimpleLineSymbol",
|
"esri/symbols/SimpleFillSymbol",
|
"esri/symbols/PictureMarkerSymbol",
|
"esri/symbols/SimpleMarkerSymbol",
|
"esri/SpatialReference",
|
"esri/tasks/GeometryService",
|
"esri/tasks/ProjectParameters",
|
"esri/layers/GraphicsLayer",
|
"esri/layers/LabelLayer",
|
"esri/symbols/TextSymbol",
|
"esri/renderers/SimpleRenderer",
|
"esri/renderers/ClassBreaksRenderer",
|
"esri/tasks/Geoprocessor",
|
"esri/tasks/DataFile",
|
"esri/geometry/webMercatorUtils",
|
"esri/symbols/Font",
|
"esri/geometry/ScreenPoint",
|
"esri/layers/ImageParameters",
|
"esri/geometry/geometryEngine",
|
"esri/dijit/PopupTemplate",
|
"widgets/supervisoryMap/FlareClusterLayer_v3",
|
"dojo/domReady!"
|
], function(
|
dojo,
|
declare,
|
lang,
|
BaseWidget,
|
template,
|
AppEvent,
|
ConfigData,
|
config,
|
dom,
|
domConstruct,
|
domAttr,
|
domStyle,
|
on,
|
ArcGISDynamicMapServiceLayer,
|
ArcGISTiledMapServiceLayer,
|
FeatureLayer,
|
TabControl,
|
SymbolStyler,
|
basic,
|
arrayUtils,
|
InfoTemplate,
|
Query,
|
QueryTask,
|
Color,
|
Edit,
|
Graphic,
|
Point,
|
Polyline,
|
Polygon,
|
Extent,
|
FeatureSet,
|
HeatmapRenderer,
|
SimpleLineSymbol,
|
SimpleFillSymbol,
|
PictureMarkerSymbol,
|
SimpleMarkerSymbol,
|
SpatialReference,
|
GeometryService,
|
ProjectParameters,
|
GraphicsLayer,
|
LabelLayer,
|
TextSymbol,
|
SimpleRenderer,
|
ClassBreaksRenderer,
|
Geoprocessor,
|
DataFile,
|
webMercatorUtils,
|
Font,
|
ScreenPoint,
|
ImageParameters,
|
geometryEngine,
|
PopupTemplate,
|
FlareClusterLayer
|
) {
|
var Widget = declare([BaseWidget], {
|
widgetName: "AlertSecurity",
|
label: "地图模式",
|
templateString: template,
|
_map: null,
|
objThis: null,
|
_siteLayer: new GraphicsLayer(),
|
layuiLayer: null,
|
layuiLadate: null,
|
tabIndex: 0,
|
heatmapfeatureLayer: null, //liu热力图
|
// 保留添加实体图层的变量
|
addEntitys: null,
|
entitysData: [],
|
|
// 巡逻区域或者巡逻路线的描述
|
routeOrRegionDescribe: null,
|
|
// 用来记录巡逻区域或者巡逻路线的下标的
|
patrolIndex: 0,
|
|
// 拖拽
|
isDown: false,
|
x: 0,
|
y: 0,
|
offset: null,
|
moveThis: null,
|
// 电子围栏需要新增的Id
|
newElectronicFenceId: null,
|
|
// 新增路线时,派发人员,人员名称,以及人员id
|
peopleRealName: null,
|
pepleRealId: null,
|
|
//存放聚合实体
|
clusterLayer: null,
|
//左侧控制栏
|
entityData: [],
|
analysisAddEntitys: null,
|
//防抖
|
onceTimeMethodS: null,
|
onceTime: 300,
|
// 警情缓存
|
Pdata: null,
|
// 警情图标缓存
|
Pdatas: null,
|
//业主缓存
|
Ydata: null,
|
// 业主图标缓存
|
Ydatas: null,
|
//设备缓存
|
Sdata: null,
|
// 设备图标缓存
|
Sdatas: null,
|
|
constructor: function(options, srcRefNode) {
|
this._map = options.map;
|
objThis = this;
|
|
this.addEntitys = new GraphicsLayer({
|
id: 'addEntitys'
|
});
|
|
// 添加点面线的图层
|
this.addPolygonEntitys = new GraphicsLayer({
|
id: 'addPolygonEntitys'
|
});
|
// 添加所有图层的地方
|
this.entityPolygonAll = new GraphicsLayer({
|
id: 'entityPolygonAll'
|
});
|
|
|
this._map.addLayer(this.addEntitys);
|
|
|
this._map.addLayer(this.addPolygonEntitys);
|
this._map.addLayer(this.entityPolygonAll);
|
this.analysisAddEntitys = new GraphicsLayer({ id: 'analysisAddEntitys' });
|
// this.addOneEntitys = new GraphicsLayer({ id: 'addOneEntitys' });
|
// this.addTwoEntitys = new GraphicsLayer({ id: 'addTwoEntitys' });
|
// this.addThreeEntitys = new GraphicsLayer({ id: 'addThreeEntitys' });
|
|
this._map.addLayer(this.analysisAddEntitys);
|
this._map.addLayer(this.addOneEntitys);
|
|
},
|
open: function() {
|
var that = this;
|
$.ajax({
|
url: "/api/equipment/equipment/listAll",
|
type: 'get',
|
dataType: 'JSON',
|
success: function(res) {
|
var datas = res.data;
|
// console.log(datas)
|
var heatmapRenderer = null;
|
that.entityData = [];
|
for (var i = 0; i < datas.length; i++) {
|
datas[i].x = Number(datas[i].jd);
|
datas[i].y = Number(datas[i].wd);
|
that.entityData.push({
|
lgtd: Number(datas[i].jd),
|
lttd: Number(datas[i].wd)
|
})
|
}
|
that.flareClusterLayer(datas);
|
// console.log(datas)
|
that.heatmapfeatureLayer = that.heatmFeaLayers();
|
that._map.addLayer(that.heatmapfeatureLayer);
|
// that.checkBoxSelect();//左侧控制热力图重复
|
}
|
})
|
var that = this;
|
var intTime = () => {
|
var time = this.getTime();
|
$("#tabcontainer").css("width", "360px");
|
$('#mapcontentClass').addClass('client-max-map'); //追加样式
|
AppEvent.dispatchAppEvent(AppEvent.APPLICATION_RESIZE, {});
|
|
that.tabIndex = 0;
|
$('.analysis-and-judgment-tab li:eq(0)').addClass('on').siblings().removeClass('on');
|
$($('.analysis-container > div')[0]).stop().show().siblings().stop().hide();
|
|
that.heatmapfeatureLayer = that.heatmFeaLayers();
|
|
that._map.addLayer(that.heatmapfeatureLayer);
|
$('#analysis_select_time_start').val(time.tomorrow);
|
$('#analysis_select_time_end').val(time.current);
|
|
layui.use('laydate', function() {
|
that.layuiLadate = layui.laydate;
|
//执行一个laydate实例 开始
|
that.layuiLadate.render({
|
elem: '#analysis_select_time_start', //指定元素
|
type: "datetime",
|
format: 'yyyy-MM-dd HH:mm',
|
trigger: 'click'
|
});
|
// 结束
|
that.layuiLadate.render({
|
elem: '#analysis_select_time_end', //指定元素
|
type: "datetime",
|
format: 'yyyy-MM-dd HH:mm',
|
trigger: 'click'
|
});
|
});
|
that.getArea($('#policeArea'));
|
// that.getPoliceTableAnalysis($('.analysis-container-police').find('.tbody tbody'), time.tomorrow, time.current, '', '');
|
that.clickHand();
|
|
}
|
intTime();
|
},
|
startup: function() {
|
var mySelf = this;
|
objThis._map.addLayer(objThis._siteLayer);
|
var that = this;
|
// console.log(mySelf.clusterLayer)
|
that.getEquipmentTable($('.analysis-container-equipment').find('.tbody tbody'), '', 'once');
|
// 顶部tab得切换事件
|
$('.analysis-and-judgment-tab li').click(function() {
|
// if (that.tabIndex == $(this).index()) return;
|
// if ($(this).index() == 1) { return };
|
// if ($(this).index() == 2) { return };
|
|
//解决打开热力图 切换top获取不了数据问题 警情
|
if ($('#policeHeatMap').prop('checked') == true) {
|
// console.log($('#policeHeatMap').prop('checked') == true)
|
$('#policeHeatMap').prop('checked', false);
|
that.checkBoxSelect($('#policeHeatMap'));
|
} else
|
//解决打开热力图 切换top获取不了数据问题 业主
|
if ($('#ownerHeatMap').prop('checked') == true) {
|
// console.log($('#ownerHeatMap').prop('checked') == true)
|
$('#ownerHeatMap').prop('checked', false);
|
that.checkBoxSelect($('#ownerHeatMap'));
|
} else
|
//解决打开热力图 切换top获取不了数据问题 设备
|
if ($('#equipmentHeatMap').prop('checked') == true) {
|
// console.log($('#equipmentHeatMap').prop('checked') == true)
|
$('#equipmentHeatMap').prop('checked', false);
|
that.checkBoxSelect($('#equipmentHeatMap'));
|
}
|
|
|
// console.log($('#policeHeatMap').prop('checked') == true)
|
if (that.entitysData.length > 0) {
|
that.analysisAddEntitys.clear();
|
that.entitysData = [];
|
}
|
|
if (that.heatmapfeatureLayer.graphics.length > 0) {
|
that.heatmapfeatureLayer.clear();
|
that.heatmapfeatureLayer.setRenderer();
|
$('.analysis-category input').prop('checked', false);
|
}
|
|
|
|
$(this).addClass('on').siblings().removeClass('on');
|
var ind = $(this).index();
|
$($('.analysis-container > div')[ind]).stop().show().siblings().stop().hide();
|
var overText = $('#policeCategory > div:eq(0)').text().trim() == '全部' ? '' : $('#policeCategory > div:eq(0)').text().trim();
|
var levelText = $('#policeArea > div:eq(0)').text().trim() == '全部' ? '' : $('#policeArea > div:eq(0)').attr('areaid');
|
if (ind == 1) {
|
that.getArea($('#policeArea'));
|
that.getPoliceTableAnalysis($($('.analysis-container > div')[ind]).find('.tbody tbody'),
|
$('#analysis_select_time_start').val() + ':00',
|
$('#analysis_select_time_end').val() + ':00', overText, levelText)
|
} else if (ind == 2) {
|
that.getOwnerType($('#ownerCategory'));
|
that.getOwnerDj($('#ownerLevel'), '');
|
that.getOwnerTable($($('.analysis-container > div')[ind]).find('.tbody tbody'), '', '');
|
} else if (ind == 0) {
|
that.getEquipmentTable($($('.analysis-container > div')[ind]).find('.tbody tbody'), '');
|
}
|
|
that.tabIndex = $(this).index();
|
})
|
|
// 时间查询
|
$('#policeSelectTime').off('click').click(function() {
|
|
var times = $(this).prevAll();
|
|
layui.use('layer', function() {
|
|
var layer = layui.layer;
|
// 开始时间
|
var startTime = $(times[2]).val();
|
// 结束时间
|
var endTime = $(times[0]).val();
|
|
if (startTime == '') {
|
|
layer.msg('请选择开始时间!', {
|
icon: 5,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
});
|
return;
|
|
} else {
|
|
if (endTime == '') {
|
layer.msg('请选择结束时间!', {
|
icon: 5,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
});
|
return;
|
} else {
|
|
var text = $('#policeCategory div:eq(0)').text().trim();
|
|
var levelText = $('#policeArea > div:eq(0)').text().trim() == '全部' ? '' : $('#policeArea > div:eq(0)').attr('areaid');
|
that.getPoliceTableAnalysis($('.analysis-container-police').find('.tbody tbody'), startTime, endTime, text == '全部' ? '' : text, levelText);
|
|
}
|
|
}
|
|
})
|
|
|
|
|
})
|
|
// 警情列表中的点击事件
|
$('.analysis-container-police .analysis-table-content .tbody').off('click', 'tr').on('click', 'tr', function(event) {
|
if ($('#policeHeatMap').prop('checked') == true) { // 点击关闭热力图
|
// console.log('relitu')
|
$('#policeHeatMap').click();
|
}
|
var id = $(this).attr('term-list');
|
var b = mySelf.Pdata;
|
for (var key in b) {
|
if (b[key].id == id) {
|
b = b[key];
|
break;
|
}
|
}
|
// console.log(b, id);
|
event.stopPropagation();
|
var winSize = [+window.innerHeight / 2 - 242 + 'px', +window.innerWidth - 380 + 'px'];
|
|
if (b.jd == '' || b.wd == '') {
|
// console.log('无地图经纬度');
|
b.haveJW = '无地图经纬度';
|
} else {
|
// console.log('有地图经纬度')
|
b.haveJW = '有地图经纬度';
|
// var lgtd = Number($(this).find('input').attr('lgtd'));
|
// var lttd = Number($(this).find('input').attr('lttd'));
|
var lgtd = Number(b.jd);
|
var lttd = Number(b.wd);
|
// console.log($(this).find('input').attr('lttd'));
|
var position = new esri.geometry.Point(lgtd, lttd, new esri.SpatialReference({ wkid: 4326 })); //根据输入坐标信息找地图上的点
|
that._map.centerAndZoom(position, 18); //缩放,10是缩放级别,可以自定义,数值越大缩放越大
|
}
|
//解决重复JSON.stringify将循环结构转换为JSON。有几率出错,err:TypeError: Converting circular structure to JSON
|
//舍弃上面方法,原因是对象里面嵌入对象,造成不能转换成JSON,吧对象去掉就好,
|
var as = b;
|
var setdata = JSON.stringify(as);
|
// console.log(setdata,'setdata')
|
var intOpen = () => {
|
layui.use('layer', function() {
|
that.layuiLayer = layui.layer;
|
that.layuiLayer.config({
|
extend: 'myskin/FlareClusterLayer.css'
|
});
|
that.layuiLayer.close(that.layuiLayer.index);
|
that.layuiLayer.open({
|
title: '',
|
type: 2,
|
shadeClose: true,
|
shade: false,
|
skin: 'demo-class',
|
id: 'onelyTwo',
|
maxmin: false, //开启最大化最小化按钮
|
area: ['360px', '484px'],
|
// area: 'auto',
|
offset: winSize,
|
skin: 'flare',
|
isOutAnim: false,
|
closeBtn: 2, //关闭按钮,可通过配置1和2来展示,0关闭
|
content: ['./popup/html/SupervisoryMapPdata.html'],
|
resize: false,
|
scrollbar: false,
|
// tipsMore: true, //允许多个tipe
|
// content: num,
|
success: function(layero, index) { //成功后添加全局点击关闭
|
$("#layui-layer-iframe" + index).contents().find("#sidIput").val(setdata);
|
|
},
|
})
|
})
|
}
|
if (mySelf.onceTimeMethod == null) { //防抖.限制时间内点击次数,否则会造成不能正确销毁前一个弹窗
|
intOpen();
|
mySelf.onceTimeMethod = setTimeout(() => {
|
mySelf.onceTimeMethod = null;
|
}, mySelf.onceTime);
|
} else {};
|
})
|
$('.analysis-container-police .analysis-table-content .tbody').off('click', '.location').on('click', '.location', function(event) {
|
event.stopPropagation();
|
})
|
$('.analysis-container-police .analysis-table-content .tbody').off('click', '.location input').on('click', '.location input', function(event) {
|
event.stopPropagation();
|
var lgtd = Number($(this).attr('lgtd'));
|
var lttd = Number($(this).attr('lttd'));
|
var position = new esri.geometry.Point(lgtd, lttd, new esri.SpatialReference({ wkid: 4326 })); //根据输入坐标信息找地图上的点
|
that._map.centerAndZoom(position, 18); //缩放,10是缩放级别,可以自定义,数值越大缩放越大
|
})
|
|
// 业主列表中的点击事件
|
$('.analysis-container-owner .analysis-table-content .tbody').off('click', 'tr').on('click', 'tr', function(event) {
|
if ($('#ownerHeatMap').prop('checked') == true) { // 点击关闭热力图
|
// console.log('relitu')
|
$('#ownerHeatMap').click();
|
}
|
var id = $(this).attr('term-list');
|
var b = mySelf.Ydata;
|
for (var key in b) {
|
if (b[key].id == id) {
|
b = b[key];
|
break;
|
}
|
}
|
|
event.stopPropagation();
|
if (b.jd == '' || b.wd == '') {
|
// console.log('无地图经纬度');
|
b.haveJW = '无地图经纬度';
|
} else {
|
// console.log('有地图经纬度')
|
b.haveJW = '有地图经纬度';
|
var lgtd = Number(b.jd);
|
var lttd = Number(b.wd);
|
// console.log($(this).find('input').attr('lttd'));
|
var position = new esri.geometry.Point(lgtd, lttd, new esri.SpatialReference({ wkid: 4326 })); //根据输入坐标信息找地图上的点
|
that._map.centerAndZoom(position, 18); //缩放,10是缩放级别,可以自定义,数值越大缩放越大
|
}
|
|
|
|
// console.log(b, id);
|
var winSize = [+window.innerHeight / 2 - 242 + 'px', +window.innerWidth - 380 + 'px'];
|
var as = b;
|
var bs = {};
|
for (let key in as) {
|
if (typeof as[key] != 'object') {
|
bs[key] = as[key]
|
// as = as[key].attributes;
|
// console.log('youduixang ')
|
// break;
|
}
|
}
|
var setdata = JSON.stringify(bs);
|
// console.log(setdata,'setdata')
|
var intOpen = () => {
|
layui.use('layer', function() {
|
that.layuiLayer = layui.layer;
|
that.layuiLayer.config({
|
extend: 'myskin/FlareClusterLayer.css'
|
});
|
that.layuiLayer.close(that.layuiLayer.index);
|
that.layuiLayer.open({
|
title: '',
|
type: 2,
|
shadeClose: true,
|
shade: false,
|
skin: 'demo-class',
|
id: 'onelyTwo',
|
maxmin: false, //开启最大化最小化按钮
|
area: ['360px', '484px'],
|
// area: 'auto',
|
offset: winSize,
|
skin: 'flare',
|
isOutAnim: false,
|
closeBtn: 2, //关闭按钮,可通过配置1和2来展示,0关闭
|
content: ['./popup/html/SupervisoryMapYdata.html'],
|
resize: false,
|
scrollbar: false,
|
// tipsMore: true, //允许多个tipe
|
// content: num,
|
success: function(layero, index) { //成功后添加全局点击关闭
|
$("#layui-layer-iframe" + index).contents().find("#sidIput").val(setdata);
|
|
},
|
})
|
})
|
}
|
if (mySelf.onceTimeMethod == null) { //防抖.限制时间内点击次数,否则会造成不能正确销毁前一个弹窗
|
intOpen();
|
mySelf.onceTimeMethod = setTimeout(() => {
|
mySelf.onceTimeMethod = null;
|
}, mySelf.onceTime);
|
} else {};
|
|
})
|
$('.analysis-container-owner .analysis-table-content .tbody').off('click', '.location').on('click', '.location', function(event) {
|
event.stopPropagation();
|
})
|
$('.analysis-container-owner .analysis-table-content .tbody').off('click', '.location input').on('click', '.location input', function(event) {
|
event.stopPropagation();
|
var lgtd = Number($(this).attr('lgtd'));
|
var lttd = Number($(this).attr('lttd'));
|
var position = new esri.geometry.Point(lgtd, lttd, new esri.SpatialReference({ wkid: 4326 })); //根据输入坐标信息找地图上的点
|
that._map.centerAndZoom(position, 18); //缩放,10是缩放级别,可以自定义,数值越大缩放越大
|
})
|
|
// 设备列表中的点击事件
|
$('.analysis-container-equipment .analysis-table-content .tbody').off('click', 'tr').on('click', 'tr', function(event) {
|
var id = $(this).attr('term-listid');
|
if ($('#equipmentHeatMap').prop('checked') == true) { // 点击关闭热力图
|
// console.log('relitu')
|
$('#equipmentHeatMap').click();
|
}
|
|
event.stopPropagation();
|
var lgtd = Number($(this).find('input').attr('lgtd'));
|
var lttd = Number($(this).find('input').attr('lttd'));
|
// console.log($(this).find('input').attr('lttd'));
|
var position = new esri.geometry.Point(lgtd, lttd, new esri.SpatialReference({ wkid: 4326 })); //根据输入坐标信息找地图上的点
|
that._map.centerAndZoom(position, 18); //缩放,10是缩放级别,可以自定义,数值越大缩放越大
|
|
|
var y = +window.innerHeight / 2 + 200;
|
var x = (+window.innerWidth - 360) / 2 + 360 + 70;
|
// document.elementFromPoint(x, y).click();
|
// console.log(x, y)
|
|
// var a = document.elementFromPoint(21, 122);
|
// console.log(a);
|
|
// console.log(that.clusterLayer, that._map, 6)
|
// console.log(id, 'id');
|
// console.log(that.clusterLayer);
|
var Tattributes = null,
|
ds = that.clusterLayer.allData;
|
for (var key in ds) {
|
if (ds[key].id == id) {
|
Tattributes = ds[key];
|
}
|
}
|
if (mySelf.onceTimeMethod == null) { //防抖.限制时间内点击次数,否则会造成不能正确销毁前一个弹窗
|
var evtdata = {};
|
evtdata = {
|
graphic: {
|
attributes: Tattributes,
|
},
|
screenX: x,
|
screenY: y,
|
}
|
that.clusterLayer._clickOpenOnclick(evtdata, '控制端', that.clusterLayer.indexs);
|
mySelf.onceTimeMethod = setTimeout(() => {
|
mySelf.onceTimeMethod = null;
|
}, mySelf.onceTime);
|
} else {};
|
|
|
})
|
// $('.analysis-container-equipment .analysis-table-content .tbody').off('click', '.location').on('click', '.location', function (event) {
|
// event.stopPropagation();
|
// })
|
// $('.analysis-container-equipment .analysis-table-content .tbody').off('click', '.location input').on('click', '.location input', function (event) {
|
// event.stopPropagation();
|
// var lgtd = Number($(this).attr('lgtd'));
|
// var lttd = Number($(this).attr('lttd'));
|
// var position = new esri.geometry.Point(lgtd, lttd, new esri.SpatialReference({ wkid: 4326 }));//根据输入坐标信息找地图上的点
|
// that._map.centerAndZoom(position, 18);//缩放,10是缩放级别,可以自定义,数值越大缩放越大
|
|
// var y = +window.innerHeight / 2 + 200;
|
// var x = (+window.innerWidth - 360) / 2 + 360 + 70;
|
// // document.elementFromPoint(x, y).click();
|
// // console.log(x, y)
|
|
// // var a = document.elementFromPoint(21, 122);
|
// // console.log(a);
|
|
// // console.log(that.clusterLayer, that._map, 6)
|
// // console.log(id, 'id');
|
// // console.log(that.clusterLayer.indexs);
|
// var Tattributes = null
|
// , ds = that.clusterLayer.allData;
|
// for (var key in ds) {
|
// if (ds[key].id == id) {
|
// Tattributes = ds[key];
|
// }
|
// }
|
// if (mySelf.onceTimeMethod == null) {//防抖.限制时间内点击次数,否则会造成不能正确销毁前一个弹窗
|
// var evtdata = {};
|
// evtdata = {
|
// graphic: {
|
// attributes: Tattributes,
|
// },
|
// screenX: x,
|
// screenY: y,
|
// }
|
// that.clusterLayer._clickOpenOnclick(evtdata, '控制端', that.clusterLayer.indexs);
|
// mySelf.onceTimeMethod = setTimeout(() => {
|
// mySelf.onceTimeMethod = null;
|
// }, mySelf.onceTime);
|
// } else {
|
// };
|
// })
|
// 警情列表中得热力图是否选中事件
|
$('#policeHeatMap').click(function() {
|
that.checkBoxSelect(this);
|
})
|
// 业主信息列表中得热力图是否选中事件
|
$('#ownerHeatMap').click(function() {
|
that.checkBoxSelect(this);
|
})
|
// 设备信息列表的热力图是否选中事件
|
$('#equipmentHeatMap').click(function() {
|
that.checkBoxSelect(this);
|
})
|
// 警情信息中类别移入事件
|
$('#policeCategory').mouseenter(function() {
|
if ($('#policeCategory .select-list').is(':hidden')) {
|
$('#policeCategory .select-list').stop().slideDown(0);
|
}
|
})
|
// 警情信息中得类别移出事件
|
$('#policeCategory').mouseleave(function() {
|
if (!$('#policeCategory .select-list').is(':hidden')) {
|
$('#policeCategory .select-list').stop().slideUp(0);
|
}
|
})
|
// 警情信息中行政区移入事件
|
$('#policeArea').mouseenter(function() {
|
if ($('#policeArea .select-list').is(':hidden')) {
|
$('#policeArea .select-list').stop().slideDown(0);
|
}
|
})
|
// 警情信息中得行政区移出事件
|
$('#policeArea').mouseleave(function() {
|
if (!$('#policeArea .select-list').is(':hidden')) {
|
$('#policeArea .select-list').stop().slideUp(0);
|
}
|
})
|
// 业主信息中类别移入事件
|
$('#ownerCategory').mouseenter(function() {
|
if ($('#ownerCategory .select-list').is(':hidden')) {
|
$('#ownerCategory .select-list').stop().slideDown(0);
|
}
|
})
|
// 业主信息中得类别移出事件
|
$('#ownerCategory').mouseleave(function() {
|
if (!$('#ownerCategory .select-list').is(':hidden')) {
|
$('#ownerCategory .select-list').stop().slideUp(0);
|
}
|
})
|
// 业主信息中的等级移入事件
|
$('#ownerLevel').mouseenter(function() {
|
if ($('#ownerLevel .select-list').is(':hidden')) {
|
$('#ownerLevel .select-list').stop().slideDown(0);
|
}
|
})
|
// 业主信息中的等级移出事件
|
$('#ownerLevel').mouseleave(function() {
|
if (!$('#ownerLevel .select-list').is(':hidden')) {
|
$('#ownerLevel .select-list').stop().slideUp(0);
|
}
|
})
|
// 设备信息中类别移入事件
|
$('#equipmentCategory').mouseenter(function() {
|
if ($('#equipmentCategory .select-list').is(':hidden')) {
|
$('#equipmentCategory .select-list').stop().slideDown(0);
|
}
|
})
|
// 设备信息中得类别移出事件
|
$('#equipmentCategory').mouseleave(function() {
|
if (!$('#equipmentCategory .select-list').is(':hidden')) {
|
$('#equipmentCategory .select-list').stop().slideUp(0);
|
}
|
})
|
// 警情信息类,业主信息类,设备信息类别,具体项的点击事件
|
$('.analysis-container > div .select-list').off('click', 'li').on('click', 'li', function(event) {
|
// console.log(event.currentTarget.innerHTML,'innerhtml')
|
var text = $(this).text().trim();
|
// console.log(this,text,'text()')
|
// console.log(that.tabIndex,'tabIndex')
|
|
|
//解决打开热力图 切换top获取不了数据问题 警情
|
if ($('#policeHeatMap').prop('checked') == true) {
|
// console.log($('#policeHeatMap').prop('checked') == true)
|
$('#policeHeatMap').prop('checked', false);
|
that.checkBoxSelect($('#policeHeatMap'));
|
} else
|
//解决打开热力图 切换top获取不了数据问题 业主
|
if ($('#ownerHeatMap').prop('checked') == true) {
|
// console.log($('#ownerHeatMap').prop('checked') == true)
|
$('#ownerHeatMap').prop('checked', false);
|
that.checkBoxSelect($('#ownerHeatMap'));
|
} else
|
//解决打开热力图 切换top获取不了数据问题 设备
|
if ($('#equipmentHeatMap').prop('checked') == true) {
|
// console.log($('#equipmentHeatMap').prop('checked') == true)
|
$('#equipmentHeatMap').prop('checked', false);
|
that.checkBoxSelect($('#equipmentHeatMap'));
|
var time = setTimeout(() => {
|
// $('#equipmentHeatMap').click(function () {
|
// that.checkBoxSelect('#equipmentHeatMap');
|
// })();
|
$('#equipmentHeatMap').click();
|
}, 500);
|
}
|
|
|
$(this).parent().parent().prev().html(text + '<i></i>');
|
$(this).parent().parent().stop().slideUp(0);
|
|
if ($(this).attr('areaid')) {
|
$(this).parent().parent().prev().attr('areaid', $(this).attr('areaid'));
|
} else if ($(this).attr('ownerid')) {
|
$(this).parent().parent().prev().attr('ownerid', $(this).attr('ownerid'));
|
}
|
|
|
if (that.tabIndex == 1) {
|
|
var levelText = $('#policeArea > div:eq(0)').text().trim() == '全部' ? '' : $('#policeArea > div:eq(0)').attr('areaid');
|
var overText = $('#policeCategory > div:eq(0)').text().trim() == '全部' ? '' : $('#policeCategory > div:eq(0)').text().trim();
|
|
if ($(this).attr('areaid')) {
|
that.getPoliceTableAnalysis($('.analysis-container-police').find('.tbody tbody'), $('#analysis_select_time_start').val(), $('#analysis_select_time_end').val(), overText, levelText);
|
} else {
|
that.getPoliceTableAnalysis($('.analysis-container-police').find('.tbody tbody'), $('#analysis_select_time_start').val(), $('#analysis_select_time_end').val(), overText, levelText);
|
}
|
|
|
} else if (that.tabIndex == 2) {
|
that.getOwnerTable($('.analysis-container-owner').find('.tbody tbody'), text == '全部' ? '' : text);
|
} else if (that.tabIndex == 0) {
|
that.getEquipmentTable($('.analysis-container-equipment').find('.tbody tbody'), text == '全部' ? '' : text);
|
}
|
|
})
|
},
|
|
getQueryStringByKey: function(key) {
|
return (document.location.search.match(new RegExp("(?:^\\?|&)" + key + "=(.*?)(?=&|$)")) || ['', null])[1];
|
},
|
|
//左侧控制栏
|
|
|
getArea: function(dom) {
|
dom.children('.select-list').children('ul').empty();
|
dom.children('.select-list').children('ul').append($("<li areaid='all'>全部</li>"));
|
var that = this;
|
$.ajax({
|
url: '/api/blade-system/region/select?code=3601',
|
type: 'GET',
|
dataType: 'JSON',
|
success: function(data) {
|
var res = data.data;
|
for (var i = 0; i < res.length; i++) {
|
dom.children('.select-list').children('ul').append($("<li areaid=" + res[i].code + ">" + res[i].name + "</li>"));
|
}
|
}
|
})
|
},
|
getPoliceTableAnalysis: function(dom, beginTime, endTime, waringType, addvcd) {
|
dom.empty(); //警情信息
|
var that = this;
|
$.ajax({
|
url: "/api/alarm/alarm/page?current=1&size=99999&waringType=&beginTime=" + beginTime + "&endTime=" + endTime + "&province=36&city=3601&district=" + addvcd,
|
type: 'get',
|
dataType: 'JSON',
|
success: function(data) {
|
// var result = data.data.records;
|
var oldData = data.data.records
|
var result = oldData;
|
that.Pdata = oldData;
|
// console.log(that.Pdata);//警情筛选
|
var str = '';
|
that.entitysData = [];
|
that.analysisAddEntitys.clear();
|
for (var a, time, t, e, y, h, i = 0; i < result.length; i++) {
|
|
if (result[i].waringType == "紧急求救") {
|
result[i].waringType = "一键求助"
|
}
|
|
|
that.createEntitysAnalysis(that.analysisAddEntitys, that.entitysData, '警情信息', {
|
lgtd: result[i].jd,
|
lttd: result[i].wd,
|
id: result[i].id
|
}, result[i].jd, result[i].wd,
|
// './images/police-situation.png'
|
);
|
|
t = result[i].alarmTime.substr(0, 10);
|
e = result[i].alarmTime.substr(11);
|
time = t + ' ' + e;
|
y = result[i].alarmTime.substr(5, 5);
|
h = result[i].alarmTime.substr(11, 5);
|
a = Number(i) + 1;
|
|
|
str += '<tr term-list=' + result[i].id + '>';
|
str += '<td>' + a + '</td>';
|
str += '<td title=' + result[i].waringType + '>' + result[i].waringType + '</td>';
|
str += '<td title=' + result[i].alarmPeople + '>' + result[i].alarmPeople + '</td>';
|
str += "<td><a href='javascript:;' title=" + time + ">" + y + ' ' + h + "</a></td>";
|
// str += "<td class='location' style='display: none'> <input type='button' value='定位'" + ' lgtd=' + result[i].jd + ' lttd=' + result[i].wd + "></td>";
|
if (result[i].jtype == 0) {
|
str += "<td class='location'> <input style='color:#fff;background-color:#F35B5B;width: 50px' type='button' value='未处理'" + ' lgtd=' + result[i].jd + ' lttd=' + result[i].wd + "></td>";
|
} else {
|
if (result[i].jtype == 1) {
|
str += "<td class='location'> <input style='color:#fff;background-color:rgb(18, 145, 230);width: 50px' type='button' value='处理中'" + ' lgtd=' + result[i].jd + ' lttd=' + result[i].wd + "></td>";
|
|
} else {
|
str += "<td class='location'> <input style='color:#fff;background-color:#32C1A2;width: 50px' type='button' value='已处理'" + ' lgtd=' + result[i].jd + ' lttd=' + result[i].wd + "></td>";
|
|
}
|
}
|
|
str += '</tr>';
|
dom.append(str);
|
str = '';
|
|
|
}
|
|
that.clearLayer(); //图标清除
|
that.entityData = [];
|
for (var i = 0; i < result.length; i++) {
|
result[i].x = Number(result[i].jd);
|
result[i].y = Number(result[i].wd);
|
that.entityData.push({
|
lgtd: Number(result[i].jd),
|
lttd: Number(result[i].wd)
|
})
|
}
|
// console.log(result);//警情
|
if (that.heatmapfeatureLayer.graphics.length > 0) { //热力图数据映射
|
that.heatmapfeatureLayer.clear();
|
that.heatmapfeatureLayer.setRenderer();
|
$('.analysis-category input').prop('checked', false);
|
};
|
that.flareClusterLayer(result); //图标渲染
|
that.Pdatas = result;
|
that.clusterLayer._setUserState('警情'); //切换聚合图标点击事件
|
|
for (var i = 0; i < 1000; i++) {
|
var dd = Math.random();
|
var cc = Math.random();
|
}
|
}
|
})
|
},
|
getOwnerType: function(dom) {
|
dom.children('div:eq(0)').html("全部 <i></i>");
|
dom.children('.select-list').children('ul').empty();
|
dom.children('.select-list').children('ul').append($("<li ownerid='all'>全部</li>"));
|
$.ajax({
|
url: '/api/lx/lx/seleclx',
|
type: 'GET',
|
dataType: 'JSON',
|
success: function(data) {
|
var res = data.data;
|
for (var i = 0; i < res.length; i++) {
|
dom.children('.select-list').children('ul').append($("<li ownerid=" + res[i].tnumber + ">" + res[i].types + "</li>"));
|
}
|
}
|
})
|
},
|
getOwnerDj: function(dom, tnumbers) {
|
dom.children('div:eq(0)').html("全部 <i></i>");
|
dom.children('.select-list').children('ul').empty();
|
dom.children('.select-list').children('ul').append($("<li>全部</li>"));
|
// $.ajax({
|
// url: '/api/dj/dj/selectName?tnumbers=' + tnumbers,
|
// type: 'GET',
|
// dataType: 'JSON',
|
// success: function (data) {
|
// var res = data.data;
|
// for (var i = 0; i < res.length; i++) {
|
// dom.children('.select-list').children('ul').append($("<li>" + res[i].dj + "</li>"));
|
// }
|
// }
|
// })
|
},
|
// 获取业主信息列表
|
getOwnerTable: function(dom, deviceType) {
|
dom.empty();
|
var that = this;
|
$.ajax({
|
// url: '/api/blade-system/tenant/page',
|
// type: 'GET',
|
url: '/api/blade-system/tenant/selectListTe',
|
type: 'POST',
|
dataType: 'JSON',
|
success: function(data) {
|
// var result = data.data;
|
var oldData = data.data;
|
// console.log(deviceType)
|
var result = [];
|
that.Ydata = oldData;
|
|
if (deviceType == '') {
|
result = oldData;
|
} else if (deviceType == '医院') {
|
for (var key in oldData) {
|
// console.log(oldData[key]);
|
if (oldData[key].type == '0') {
|
result.push(oldData[key]);
|
}
|
}
|
} else if (deviceType == '学校') {
|
for (var key in oldData) {
|
// console.log(oldData[key]);
|
if (oldData[key].type == '1') {
|
result.push(oldData[key]);
|
}
|
}
|
} else if (deviceType == '小区') {
|
for (var key in oldData) {
|
// console.log(oldData[key]);
|
if (oldData[key].type == '2') {
|
result.push(oldData[key]);
|
}
|
}
|
}
|
|
|
|
that.clearLayer(); //图标清除
|
that.entityData = [];
|
for (var i = 0; i < result.length; i++) {
|
result[i].x = Number(result[i].jd);
|
result[i].y = Number(result[i].wd);
|
that.entityData.push({
|
lgtd: Number(result[i].jd),
|
lttd: Number(result[i].wd)
|
})
|
}
|
// console.log(result);//业主
|
if (that.heatmapfeatureLayer.graphics.length > 0) { //热力图数据映射
|
that.heatmapfeatureLayer.clear();
|
that.heatmapfeatureLayer.setRenderer();
|
$('.analysis-category input').prop('checked', false);
|
};
|
|
that.flareClusterLayer(result); //图标渲染
|
that.Ydatas = result;
|
that.clusterLayer._setUserState('业主'); //切换聚合图标点击事件
|
|
|
var str = '';
|
that.entitysData = [];
|
that.analysisAddEntitys.clear();
|
var createD = (id, a, name, dj, type) => {
|
str += "<tr term-list=" + id + ">";
|
str += '<td>' + a + '</td>';
|
str += '<td>' + name + '</td>';
|
str += '<td>' + dj + '</td>';
|
str += '<td>' + type + '</td>';
|
// str += "<td class='location' style='display: none'> <input type='button' value='定位'" + ' lgtd=' + result[i].jd + ' lttd=' + result[i].wd + "></td>";
|
str += '</tr>';
|
dom.append(str);
|
str = '';
|
}
|
for (var a, i = 0; i < result.length; i++) {
|
|
that.createEntitysAnalysis(that.analysisAddEntitys, that.entitysData, '业主信息', {
|
lgtd: result[i].jd,
|
lttd: result[i].wd,
|
id: result[i].id
|
}, result[i].jd, result[i].wd,
|
// './images/业主.png'
|
);
|
|
a = Number(i) + 1;
|
if (result[i].type === "0") {
|
createD(result[i].id, a, result[i].tenant_name, result[i].dj, '医院')
|
} else if (result[i].type === "1") {
|
createD(result[i].id, a, result[i].tenant_name, result[i].nature, '学校')
|
} else if (result[i].type === "2") {
|
createD(result[i].id, a, result[i].tenant_name, result[i].housetype, '小区')
|
} else {
|
createD(result[i].id, a, result[i].tenant_name, result[i].dj, '其他')
|
}
|
|
}
|
|
|
// console.log(that.Ydata);//业主筛选
|
}
|
})
|
},
|
// 获取设备信息列表
|
getEquipmentTable: function(dom, deviceType, once) {
|
dom.empty();
|
var that = this;
|
// console.log(that.clusterLayer)
|
// console.log(dom, deviceType);
|
// dom.append(deviceType);
|
// var str = "<td class='locationb'> <input type='button' value='定位'" + ' lgtd=' + 114.9285 + ' lttd=' + 25.850693 + "></td>"
|
// that.entitysData = [];
|
// that.analysisAddEntitys.clear();
|
// that.createEntitysAnalysis(that.analysisAddEntitys, that.entitysData, '设备信息', {
|
// lgtd: 114.9285,
|
// lttd: 25.850693,
|
// id: 5
|
// }, 114.9285, 25.850693, './images/ceshi.png');
|
// dom.append(str)
|
|
$.ajax({
|
url: '/api/equipment/equipment/listAll?deviceType=' + deviceType,
|
type: 'GET',
|
dataType: 'JSON',
|
success: function(data) {
|
var oldData = data.data;
|
var result = [];
|
that.Sdata = oldData;
|
|
var str = '';
|
that.entitysData = [];
|
that.analysisAddEntitys.clear();
|
|
|
if (deviceType == '') {
|
result = oldData;
|
} else if (deviceType == '正常') {
|
for (var key in oldData) {
|
// console.log(oldData[key]);
|
if (oldData[key].dtype == '1') {
|
result.push(oldData[key]);
|
}
|
}
|
} else if (deviceType == '掉线') {
|
for (var key in oldData) {
|
// console.log(oldData[key]);
|
if (oldData[key].dtype == '0') {
|
result.push(oldData[key]);
|
}
|
}
|
} else if (deviceType == '预警') {
|
for (var key in oldData) {
|
console.log(oldData[key], 111);
|
if (oldData[key].dtype == 2) {
|
result.push(oldData[key]);
|
}
|
}
|
} else if (deviceType == '故障') {
|
for (var key in oldData) {
|
// console.log(oldData[key]);
|
if (oldData[key].dtype == 3) {
|
result.push(oldData[key]);
|
}
|
}
|
}
|
|
if (once != 'once') {
|
that.clearLayer(); //图标清除
|
that.entityData = [];
|
for (var i = 0; i < result.length; i++) {
|
result[i].x = Number(result[i].jd);
|
result[i].y = Number(result[i].wd);
|
that.entityData.push({
|
lgtd: Number(result[i].jd),
|
lttd: Number(result[i].wd)
|
})
|
}
|
// console.log(result);//设备筛选
|
if (that.heatmapfeatureLayer.graphics.length > 0) { //热力图数据映射
|
that.heatmapfeatureLayer.clear();
|
that.heatmapfeatureLayer.setRenderer();
|
$('.analysis-category input').prop('checked', false);
|
};
|
that.flareClusterLayer(result); //图标渲染
|
that.clusterLayer._setUserState('设备'); //切换聚合图标点击事件
|
|
}
|
that.Sdatas = result;
|
|
for (var a, i = 0; i < result.length; i++) {
|
that.createEntitysAnalysis(that.analysisAddEntitys, that.entitysData, '设备信息', {
|
lgtd: result[i].jd,
|
lttd: result[i].wd,
|
id: result[i].id
|
}, result[i].jd, result[i].wd,
|
// './images/ceshi.png'
|
);
|
var stares = '';
|
|
a = Number(i) + 1;
|
str += "<tr term-listid=" + result[i].id + ">";
|
str += '<td>' + a + '</td>';
|
str += '<td title=' + result[i].deviceName + '>' + result[i].deviceName + '</td>';
|
// str += '<td title=' + result[i].deviceType + '>' + result[i].deviceType + '</td>';
|
str += '<td>' + result[i].deviceNumber + '</td>';
|
// console.log(result[i].state);
|
|
|
if (result[i].dtype == '3') {
|
stares = '故障';
|
str += "<td class='location'> <input style='background-image:linear-gradient(to right, #F49966 , #F49966' type='button' value=" + stares + ' lgtd=' + result[i].jd + ' lttd=' + result[i].wd + "></td>";
|
} else if (result[i].dtype == '1') {
|
stares = '正常';
|
str += "<td class='location'> <input style='background-image:linear-gradient(to right, #32C1A2 , #32C1A2' type='button' value=" + stares + ' lgtd=' + result[i].jd + ' lttd=' + result[i].wd + "></td>";
|
} else if (result[i].dtype == '0') {
|
stares = '掉线';
|
str += "<td class='location'> <input style='background-image:linear-gradient(to right, #CDCDCD , #CDCDCD' type='button' value=" + stares + ' lgtd=' + result[i].jd + ' lttd=' + result[i].wd + "></td>";
|
} else if (result[i].dtype == '2') {
|
stares = '预警';
|
str += "<td class='location'> <input style='background-image:linear-gradient(to right, #F35B5B , #F35B5B' type='button' value=" + stares + ' lgtd=' + result[i].jd + ' lttd=' + result[i].wd + "></td>";
|
}
|
str += '</tr>';
|
dom.append(str);
|
str = '';
|
}
|
}
|
})
|
},
|
// 创建实体图层
|
createEntitysAnalysis: function(entitys, entityContent, name, item, lgtd, lttd, outlineColors) {
|
|
var symbol = new esri.symbol.PictureMarkerSymbol(outlineColors, 16, 16);
|
symbol.name = name;
|
var pt = new Point(lgtd, lttd, new SpatialReference({ wkid: 4326 }));
|
pt.entityData = item;
|
var graphic = new esri.Graphic(pt, symbol);
|
entitys.add(graphic);
|
var bbb = document.getElementsByTagName("image");
|
// console.log(bbb);
|
entityContent.push(item);
|
},
|
//左侧控制栏↑
|
|
|
heatmFeaLayers: function() { // liu 热力图渲染器,加载热力图
|
|
var layerDefinition = {
|
"geometryType": "esriGeometryPoint",
|
"fields": [{
|
"num": "num",
|
editable: true,
|
nullable: true,
|
"type": "esriFieldTypeInteger",
|
"alias": "数量"
|
}]
|
};
|
var featureCollection = {
|
layerDefinition: layerDefinition,
|
featureSet: null
|
};
|
//创建 FeatureLayer 图层
|
var featureLayer = new esri.layers.FeatureLayer(featureCollection, {
|
mode: esri.layers.FeatureLayer.MODE_SNAPSHOT,
|
outFields: ["*"],
|
opacity: .8
|
});
|
//设置渲染方式
|
|
return featureLayer;
|
},
|
|
checkBoxSelect: function(self) { //选择热力图
|
var that = this;
|
var heatmapRenderer = null;
|
// console.log(self);
|
// // return
|
// 选中
|
if ($(self).prop('checked') == true) {
|
that.clearLayer(); //图标清除
|
// console.log($(self).attr('id'), 1);
|
// if (1) {
|
heatmapRenderer = new HeatmapRenderer({
|
colorStops: [
|
{ ratio: 0.45, color: "rgba(000,000,255,0)" },
|
{ ratio: 0.55, color: "rgb(000,255,255)" },
|
{ ratio: 0.65, color: "rgb(000,255,000)" },
|
{ ratio: 0.75, color: "rgb(234,126,15)" },
|
{ ratio: 1.00, color: "rgb(255,000,000)" },
|
],
|
blurRadius: 42,
|
maxPixelIntensity: 100,
|
minPixelIntensity: 0
|
});
|
this.heatmapfeatureLayer.setRenderer(heatmapRenderer);
|
// 取消选中
|
var point = null;
|
for (var i = 0; i < that.entityData.length; i++) {
|
point = new esri.geometry.Point(this.entityData[i].lgtd, this.entityData[i].lttd, new esri.SpatialReference({ wkid: 4326 }));
|
this.heatmapfeatureLayer.add(new esri.Graphic(point));
|
}
|
} else {
|
// console.log(self, 2);
|
if ($(self).attr('class') == 'p') {
|
that.entityData = [];
|
for (var i = 0; i < this.Pdatas.length; i++) {
|
this.Pdatas[i].x = Number(this.Pdatas[i].jd);
|
this.Pdatas[i].y = Number(this.Pdatas[i].wd);
|
that.entityData.push({
|
lgtd: Number(this.Pdatas[i].jd),
|
lttd: Number(this.Pdatas[i].wd)
|
})
|
}
|
if (that.heatmapfeatureLayer.graphics.length > 0) { //热力图数据映射
|
that.heatmapfeatureLayer.clear();
|
that.heatmapfeatureLayer.setRenderer();
|
// $('.analysis-category input').prop('checked', false);
|
};
|
that.flareClusterLayer(this.Pdatas); //图标渲染
|
} else if ($(self).attr('class') == 'Y') {
|
that.entityData = [];
|
for (var i = 0; i < this.Ydatas.length; i++) {
|
this.Ydatas[i].x = Number(this.Ydatas[i].jd);
|
this.Ydatas[i].y = Number(this.Ydatas[i].wd);
|
that.entityData.push({
|
lgtd: Number(this.Ydatas[i].jd),
|
lttd: Number(this.Ydatas[i].wd)
|
})
|
}
|
if (that.heatmapfeatureLayer.graphics.length > 0) { //热力图数据映射
|
that.heatmapfeatureLayer.clear();
|
that.heatmapfeatureLayer.setRenderer();
|
// $('.analysis-category input').prop('checked', false);
|
};
|
that.flareClusterLayer(this.Ydatas); //图标渲染
|
} else if ($(self).attr('class') == 'S') {
|
that.entityData = [];
|
for (var i = 0; i < this.Sdatas.length; i++) {
|
this.Sdatas[i].x = Number(this.Sdatas[i].jd);
|
this.Sdatas[i].y = Number(this.Sdatas[i].wd);
|
that.entityData.push({
|
lgtd: Number(this.Sdatas[i].jd),
|
lttd: Number(this.Sdatas[i].wd)
|
})
|
}
|
if (that.heatmapfeatureLayer.graphics.length > 0) { //热力图数据映射
|
that.heatmapfeatureLayer.clear();
|
that.heatmapfeatureLayer.setRenderer();
|
// $('.analysis-category input').prop('checked', false);
|
};
|
that.flareClusterLayer(this.Sdatas); //图标渲染
|
}
|
this.heatmapfeatureLayer.clear();
|
this.heatmapfeatureLayer.setRenderer();
|
}
|
},
|
|
close: function() {
|
|
},
|
// 获取当前时间,以及昨天现在的时间
|
getTime: function getTime() {
|
var timestamp = Date.parse(new Date());
|
|
// 当前时间
|
var currentTime = new Date(timestamp);
|
// 年
|
var currentY = currentTime.getFullYear();
|
// 月
|
var currentM = currentTime.getMonth() + 1 < 10 ? '0' + (currentTime.getMonth() + 1) : currentTime.getMonth() + 1;
|
// 日
|
var currentD = currentTime.getDate() < 10 ? '0' + currentTime.getDate() : currentTime.getDate();
|
// 时
|
var currentH = currentTime.getHours() < 10 ? '0' + currentTime.getHours() : currentTime.getHours();
|
// 分
|
var currentDd = currentTime.getMinutes() < 10 ? '0' + currentTime.getMinutes() : currentTime.getMinutes();
|
// 明天
|
var tomorrowTime = new Date(timestamp - 60 * 60 * 24 * 1000);
|
// 年
|
var tomorrowY = tomorrowTime.getFullYear();
|
// 月
|
var tomorrowM = tomorrowTime.getMonth() + 1 < 10 ? '0' + (tomorrowTime.getMonth() + 1) : tomorrowTime.getMonth() + 1;
|
// 日
|
var tomorrowD = tomorrowTime.getDate() < 10 ? '0' + tomorrowTime.getDate() : tomorrowTime.getDate();
|
// 时
|
var tomorrowH = tomorrowTime.getHours() < 10 ? '0' + tomorrowTime.getHours() : tomorrowTime.getHours();
|
// 分
|
var tomorrowDd = tomorrowTime.getMinutes() < 10 ? '0' + tomorrowTime.getMinutes() : tomorrowTime.getMinutes();
|
return {
|
current: currentY + '-' + currentM + '-' + currentD + ' ' + currentH + ':' + currentDd,
|
tomorrow: tomorrowY + '-' + tomorrowM + '-' + tomorrowD + ' ' + tomorrowH + ':' + tomorrowDd,
|
month: currentM + currentD
|
};
|
},
|
|
// 创建实体图层
|
createEntitys: function(entitys, entityContent, name, item, lgtd, lttd, outlineColors) {
|
|
var symbol = new esri.symbol.PictureMarkerSymbol(outlineColors, 33, 48);
|
symbol.name = name;
|
var pt = new Point(lgtd, lttd, new esri.SpatialReference({
|
wkid: 4326
|
}));
|
pt.entityData = item;
|
var graphic = new esri.Graphic(pt, symbol);
|
entitys.add(graphic);
|
|
|
entityContent.push(item);
|
},
|
|
addPoint: function(entitys, lgtd, lttd, img) {
|
var symbol = new esri.symbol.PictureMarkerSymbol(img, 33, 48);
|
var pt = new Point(lgtd, lttd, new SpatialReference({
|
wkid: 4326
|
}));
|
var graphic = new esri.Graphic(pt, symbol);
|
entitys.add(graphic);
|
},
|
|
addPoints: function(entitys, lgtd, lttd, img) {
|
var symbol = new esri.symbol.PictureMarkerSymbol(img, 33, 48);
|
var pt = new Point(lgtd, lttd, new SpatialReference({
|
wkid: 4326
|
}));
|
var graphic = new esri.Graphic(pt, symbol);
|
entitys.add(graphic);
|
},
|
|
clickHand: function(e) { //top点击事件,导航
|
// console.log(e);
|
},
|
|
|
//聚合图层事件
|
flareClusterLayer: function(datas, userState) { //top聚合事件,导航
|
|
var that = this;
|
|
var preClustered = false;
|
var displaySingleFlaresAtCount = 20;
|
var areaDisplayMode = "";
|
// var allData = JSON.parse(DATA);
|
// DataManager.setData(allData);
|
|
//init the layer, more options are available and explained in the cluster layer constructor
|
that.clusterLayer = new FlareClusterLayer({
|
id: "flare-cluster-layer",
|
spatialReference: new esri.SpatialReference({
|
"wkid": 4326
|
}),
|
subTypeFlareProperty: "facilityType",
|
singleFlareTooltipProperty: "name",
|
displaySubTypeFlares: true,
|
displaySingleFlaresAtCount: displaySingleFlaresAtCount,
|
flareShowMode: "mouse",
|
preClustered: preClustered,
|
clusterRatio: 120,
|
clusterAreaDisplay: areaDisplayMode,
|
clusteringBegin: function(e) {
|
// console.log("clustering begin");
|
},
|
clusteringComplete: function() {
|
console.log("clustering complete");
|
}
|
});
|
|
//set up a class breaks renderer to render different symbols based on the cluster count. Use the required clusterCount property to break on.
|
var defaultSym = new PictureMarkerSymbol("./images/jingbaored.png", 33, 48).setOffset(0, 1);
|
var renderer = new ClassBreaksRenderer(defaultSym, "clusterCount");
|
var xlSymbol = new SimpleMarkerSymbol(SimpleMarkerSymbol.STYLE_CIRCLE, 32, new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new dojo.Color([200, 52, 59, 0.8]), 1), new dojo.Color([250, 65, 74, 0.8]));
|
var lgSymbol = new SimpleMarkerSymbol(SimpleMarkerSymbol.STYLE_CIRCLE, 28, new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new dojo.Color([41, 163, 41, 0.8]), 1), new dojo.Color([51, 204, 51, 0.8]));
|
var mdSymbol = new SimpleMarkerSymbol(SimpleMarkerSymbol.STYLE_CIRCLE, 24, new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new dojo.Color([82, 163, 204, 0.8]), 1), new dojo.Color([102, 204, 255, 0.8]));
|
var smSymbol = new SimpleMarkerSymbol(SimpleMarkerSymbol.STYLE_CIRCLE, 52, new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new dojo.Color([230, 184, 92, 0.8]), 1), new dojo.Color([255, 204, 102, 0.8]));
|
renderer.addBreak(0, 19, smSymbol);
|
renderer.addBreak(20, 150, mdSymbol);
|
renderer.addBreak(151, 1000, lgSymbol);
|
renderer.addBreak(1001, Infinity, xlSymbol);
|
|
that.clusterLayer.setRenderer(renderer); //use standard setRenderer.
|
|
//set up a popup template
|
var template = new PopupTemplate({
|
title: "{name}",
|
fieldInfos: [{
|
fieldName: "facilityType",
|
label: "Facility Type",
|
visible: true
|
},
|
{
|
fieldName: "postcode",
|
label: "Post Code",
|
visible: true
|
},
|
{
|
fieldName: "isOpen",
|
label: "Opening Hours",
|
visible: true
|
}
|
]
|
});
|
|
//clusterLayer.infoTemplate = template;
|
that._map.infoWindow.titleInBody = false;
|
|
that._map.addLayer(that.clusterLayer);
|
|
//var data = DataManager.getData();
|
that.clusterLayer.addData(datas);
|
|
},
|
clearLayer: function() {
|
var that = this;
|
that._map.removeLayer(that.clusterLayer);
|
that.clusterLayer = null;
|
}
|
});
|
return Widget;
|
});
|