document.write('');
/**
* 人脸识别
*/
var vscanvas;
var targetcanvas;
var facecxt;
var lineArr = [];//边线数组
var prefacevideoId;
var prefaceimgElement;
var isCanvasOnFirst = true;
var vsfaceEvent;
//创建人脸识别视频监控画面的画布,定格人脸识别视频画面并开启圈选人脸监听
function createvscanvas(videoId) {
prefacevideoId = videoId;
shootup();
$('#vscanvas').unbind(vsfaceEvent);
vsfaceEvent = $('#vscanvas').mousedown(function(e){
if(isCanvasOnFirst){
clearRect();
drawpoint(e);
isCanvasOnFirst = false;
}else{
drawpoint(e);
var imgwidth = Math.abs(lineArr[0].x-lineArr[1].x);
var imgheight = Math.abs(lineArr[0].y-lineArr[1].y);
var leftx = (lineArr[0].x>lineArr[1].x)?lineArr[1].x:lineArr[0].x;
var lefty = (lineArr[0].y>lineArr[1].y)?lineArr[1].y:lineArr[0].y;
var imgdata = facecxt.getImageData(leftx, lefty, imgwidth, imgheight);
targetcanvas = document.createElement('canvas');
targetcanvas.width = imgwidth;
targetcanvas.height = imgheight;
targetcanvas.getContext("2d").putImageData(imgdata,0,0);
facecxt.save();
facecxt.fillStyle = "rgba(0,0,0,0.8)";
facecxt.fillRect(0,0,vscanvas.width,vscanvas.height);
facecxt.beginPath();
facecxt.lineWidth = 2;
facecxt.setLineDash([6, 4]);
facecxt.lineTo(leftx, lefty);
facecxt.lineTo(leftx+imgwidth, lefty);
facecxt.lineTo(leftx+imgwidth, lefty+imgheight);
facecxt.lineTo(leftx, lefty+imgheight);
facecxt.lineTo(leftx, lefty);
facecxt.strokeStyle="red";
facecxt.stroke();
facecxt.closePath();
facecxt.clip();
facecxt.drawImage(prefaceimgElement,0,0,vscanvas.width,vscanvas.height);
facecxt.restore();
isCanvasOnFirst = true;
}
});
function drawpoint(e){
x = e.offsetX; // 鼠标落下时的X
y = e.offsetY; // 鼠标落下时的Y
lineObj = {"x":x,"y":y};
lineArr.push(lineObj);
facecxt.beginPath();
facecxt.arc(x, y, 5, 0, Math.PI * 2, true);
facecxt.closePath();
facecxt.strokeStyle = 'rgba(255,0,0,1)';
facecxt.stroke();
}
}
function shootup(){
var faceVideoElement = document.getElementById(prefacevideoId);
vscanvas = document.getElementById("vscanvas");
facecxt = vscanvas.getContext("2d");
facecxt.drawImage(faceVideoElement,0,0,vscanvas.width,vscanvas.height);
prefaceimgElement = document.createElement('img');
prefaceimgElement.src = vscanvas.toDataURL("image/jpeg");
}
function faceRecognition() {
if(lineArr.length!=0){
clearRect();
closeDrawFace();
ctrlTargetFace("block");
document.getElementById("targetfaceimg").src = targetcanvas.toDataURL("image/jpeg");
$('#faced').hide();
$('#facedbtn').hide();
$('#facing').show();
setTimeout(function(){
$('#facing').hide();
$('#faced').show();
$('#facedbtn').show();
startface();
}, 4000);
}else{
swal("请先框选人工智能识别的图像!","请重试!","error");
}
}
function startface(){
ctrlFaceResultlist('block');
queryKeypeopleByBlood();
}
var faceresultStr = '';
function showfaceresultlist(data){
faceresultStr = '';
var content = '';
var percent = [98,64,13];
var geojson = {
"type": "FeatureCollection",
"features": []
};
for ( var i = 0; i < data.length; i++) {
faceresultStr += data[i].keyId+",";
var position = data[i].address.poi.split(',');
var feature = {
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [Number(position[0]),Number(position[1]),Number(position[2])]
},
"id": "kp" + data[i].keyId,
"name": '查询结果',
"properties": {
"title": "marker",
"marker-symbol": "marker-stroked",
"marker-color": "#FFD700"
}
};
geojson.features.push(feature);
var nearEllipsoidId = 'ke' + data[i].keyId;
var pos = Cesium.Cartesian3.fromDegrees(Number(position[0]), Number(position[1]),Number(position[2]));
var color = Cesium.Color.GOLD.withAlpha(0.7);
createNearEllipsoid(nearEllipsoidId,'查询结果',pos,color,query2_overlays3D);
content += '
'
+ '
'+percent[i]+'%
'
+ '
'
+ ''
+ ''
+ ''
+ '
'
+ ''
+ ''
+ ''
+ '
'
+ '
'
}
faceresultStr = faceresultStr.substring(0, faceresultStr.length-1);
$('#faceresultlistcontent').html(content);
createClusterPin(geojson,"query");
}
function closefaceresult(){
ctrlTargetFace("none");
ctrlFaceResultlist('none');
stopfollow();
clearRouteLines();
deletePolice3DMarks();
deletePoliceCar3DMarks();
policemanList = [];
rePolicemanList = [] ;
policeCarList = [];
rePoliceCarList = [];
}
function clearRect() {
facecxt.clearRect(0,0,vscanvas.width,vscanvas.height);
facecxt.drawImage(prefaceimgElement,0,0,vscanvas.width,vscanvas.height);
lineArr = [];
isCanvasOnFirst = true;
}
//清除人脸识别画布
function removeface() {
clearRect();
}
//追踪嫌疑人
var prefollowdata = null;
var followpath = [];
var followPeopleArr = [];
function startfollow(){
$("#following").show();
//绘制人员轨迹
var followlineground = viewer.entities.add({
id : 'followlineground',
polyline : {
width : 7.0,
material : new Cesium.PolylineGlowMaterialProperty({
color : Cesium.Color.RED,
glowPower : 0.25
}),
clampToGround : true,
classificationType : Cesium.ClassificationType.BOTH
}
});
if(rhpcListArray.length!==0){
clearrhpcVideo();
}
setTimeout(function(){
CesiumPop.bindPopGlobeEventHandler(viewer);
//弹出监控画面
prefollowdata = getVideoAndShow(followvideo[0].id);
if(emergencyPosArr.length!=0){
var tmppoi = new Cesium.Cartesian3.fromDegrees(emergencyPosArr[0],emergencyPosArr[1],emergencyPosArr[2]);
followpath.push(tmppoi);
}
var poi = prefollowdata.camPosition.split(",");
var tmppoi = new Cesium.Cartesian3.fromDegrees(Number(poi[0]),Number(poi[1]),Number(poi[2]));
followpath.push(tmppoi);
addSuspectPin(tmppoi,followvideo[0].alarmTime);
followlineground.polyline.positions = followpath;
flyToLocation([Number(poi[0]),Number(poi[1]),Number(poi[2])+400]);
followPeopleArr = [Number(poi[0]),Number(poi[1]),Number(poi[2])];
document.getElementById("audioSource").play();
emergencyPosArr = [Number(poi[0]),Number(poi[1]),Number(poi[2])];
getPolicemanList(followPeopleArr);
getPoliceCarList(followPeopleArr);
}, 5000);
setTimeout(function(){
closeVideoPop(followvideo[0].id);
prefollowdata = getVideoAndShow(followvideo[1].id);
var poi = prefollowdata.camPosition.split(",");
var tmppoi = new Cesium.Cartesian3.fromDegrees(Number(poi[0]),Number(poi[1]),Number(poi[2]));
followpath.push(tmppoi);
addSuspectPin(tmppoi,followvideo[1].alarmTime);
followlineground.polyline.positions = followpath;
flyToLocation([Number(poi[0]),Number(poi[1]),Number(poi[2])+400]);
followPeopleArr = [Number(poi[0]),Number(poi[1]),Number(poi[2])+400];
document.getElementById("audioSource").play();
emergencyPosArr = [Number(poi[0]),Number(poi[1]),Number(poi[2])];
getPolicemanList(followPeopleArr);
getPoliceCarList(followPeopleArr);
}, 30000);
setTimeout(function(){
closeVideoPop(followvideo[1].id);
prefollowdata = getVideoAndShow(followvideo[2].id);
var poi = prefollowdata.camPosition.split(",");
var tmppoi = new Cesium.Cartesian3.fromDegrees(Number(poi[0]),Number(poi[1]),Number(poi[2]));
followpath.push(tmppoi);
addSuspectPin(tmppoi,followvideo[2].alarmTime);
followlineground.polyline.positions = followpath;
flyToLocation([Number(poi[0]),Number(poi[1]),Number(poi[2])+400]);
followPeopleArr = [Number(poi[0]),Number(poi[1]),Number(poi[2])+400];
document.getElementById("audioSource").play();
emergencyPosArr = [Number(poi[0]),Number(poi[1]),Number(poi[2])];
getPolicemanList(followPeopleArr);
getPoliceCarList(followPeopleArr);
}, 60000);
}
//追踪定位嫌犯位置并添加图标
var suspectArr = [];
function addSuspectPin(poi,alarmtime){
var alarmtimearr = alarmtime.split(' ');
var alarmtimen = alarmtimearr[0]+'\n'+alarmtimearr[1];
suspectArr.push(viewer.entities.add({
position : poi,
label : {
show : true,
verticalOrigin : Cesium.VerticalOrigin.BOTTOM,
horizontalOrigin : Cesium.HorizontalOrigin.CENTER,
font : '16px Helvetica',
style : Cesium.LabelStyle.FILL_AND_OUTLINE,
fillColor : Cesium.Color.WHITE,
outlineColor : Cesium.Color.WHITE,
text : alarmtimen,
pixelOffset : new Cesium.Cartesian2(60.0, -130.0),
disableDepthTestDistance : 100000000,
scaleByDistance : new Cesium.NearFarScalar(300, 1, 20000, 0.3),
pixelOffsetScaleByDistance : new Cesium.NearFarScalar(300, 1, 20000, 0.3),
},
billboard : {
image : '../images/pinimg/02.png',
verticalOrigin : Cesium.VerticalOrigin.BOTTOM,
pixelOffset : new Cesium.Cartesian2(51.0, 0.0),
scaleByDistance : new Cesium.NearFarScalar(300, 1, 20000, 0.3),
pixelOffsetScaleByDistance : new Cesium.NearFarScalar(300, 1, 20000, 0.3),
}
}));
}
//结束追踪
function stopfollow(){
for (var i = 0; i < followvideo.length; i++) {
clearVideoOnEarth(followvideo[i].id);
}
CesiumPop.clearDivPop(viewer);
if(prefollowdata!=null){
stopVideoConvertor(prefollowdata);
}
if(viewer.entities.getById("followlineground")){
viewer.entities.removeById("followlineground");
}
for (var i = 0; i < suspectArr.length; i++) {
viewer.entities.remove(suspectArr[i]);
}
prefollowdata = null;
followpath = [];
suspectArr = [];
emergencyPosArr = [];
$("#following").hide();
}
/**
* 重点人员人脸识别报警
*/
//开始智能识别模拟
function startFaceAlarm(){
if(rhpcListArray.length!==0){
clearrhpcVideo();
}
setTimeout(function(){
CesiumPop.bindPopGlobeEventHandler(viewer);
var prealarmdata = getVideoAndShow(followvideo[3].id);
var poi = prealarmdata.camPosition.split(",");
var tmppoi = new Cesium.Cartesian3.fromDegrees(Number(poi[0]),Number(poi[1]),Number(poi[2]));
getKeypeopleByCardId(followvideo[3].alarmKPId,prealarmdata,followvideo[3]);
addAlarmPin(tmppoi,followvideo[3].alarmTime);
flyToLocation([Number(poi[0]),Number(poi[1]),Number(poi[2])+400]);
document.getElementById("audioSource").play();
}, 2000);
setTimeout(function(){
closeVideoPop(followvideo[3].id);
var prealarmdata = getVideoAndShow(followvideo[0].id);
var poi = prealarmdata.camPosition.split(",");
var tmppoi = new Cesium.Cartesian3.fromDegrees(Number(poi[0]),Number(poi[1]),Number(poi[2]));
getKeypeopleByCardId(followvideo[0].alarmKPId,prealarmdata,followvideo[0]);
addAlarmPin(tmppoi,followvideo[0].alarmTime);
flyToLocation([Number(poi[0]),Number(poi[1]),Number(poi[2])+400]);
document.getElementById("audioSource").play();
}, 16000);
setTimeout(function(){
closeVideoPop(followvideo[0].id);
var prealarmdata = getVideoAndShow(followvideo[2].id);
var poi = prealarmdata.camPosition.split(",");
var tmppoi = new Cesium.Cartesian3.fromDegrees(Number(poi[0]),Number(poi[1]),Number(poi[2]));
getKeypeopleByCardId(followvideo[2].alarmKPId,prealarmdata,followvideo[2]);
addAlarmPin(tmppoi,followvideo[2].alarmTime);
flyToLocation([Number(poi[0]),Number(poi[1]),Number(poi[2])+400]);
document.getElementById("audioSource").play();
}, 30000);
}
//添加智能识别报警图标
var prealarmpin;
function addAlarmPin(poi, alarmtime) {
if(prealarmpin){
viewer.entities.remove(prealarmpin);
}
var alarmtimearr = alarmtime.split(' ');
var alarmtimen = alarmtimearr[0]+'\n'+alarmtimearr[1];
prealarmpin = viewer.entities.add({
position : poi,
billboard : {
image : '../images/pinimg/06.png',
verticalOrigin : Cesium.VerticalOrigin.BOTTOM,
pixelOffset : new Cesium.Cartesian2(51.0, 0.0),
scaleByDistance : new Cesium.NearFarScalar(1000, 1, 20000, 0.2),
pixelOffsetScaleByDistance : new Cesium.NearFarScalar(1000, 1, 20000, 0.2),
},
label : {
show : true,
verticalOrigin : Cesium.VerticalOrigin.BOTTOM,
horizontalOrigin : Cesium.HorizontalOrigin.CENTER,
font : '16px Helvetica',
style : Cesium.LabelStyle.FILL_AND_OUTLINE,
fillColor : Cesium.Color.WHITE,
outlineColor : Cesium.Color.WHITE,
text : alarmtimen,
pixelOffset : new Cesium.Cartesian2(60.0, -128.0),
disableDepthTestDistance : 100000000,
scaleByDistance : new Cesium.NearFarScalar(1000, 1, 20000, 0.2),
pixelOffsetScaleByDistance : new Cesium.NearFarScalar(1000, 1, 20000, 0.2),
}
});
}
//追加人脸识别照片
function appendAlarmPic(kpdata,videodata,alarmdata){
var content = ''
+videodata.camAdd+'  '
+kpdata.name+' '+alarmdata.alarmTime+' | ';
$('#facealarmcon').append(content);
}
//停止智能识别模拟
function stopFaceAlarm(){
for (var i = 0; i < followvideo.length; i++) {
clearVideoOnEarth(followvideo[i].id);
stopVideoConvertor(followvideo[i]);
}
if(prealarmpin){
viewer.entities.remove(prealarmpin);
}
}
//追踪记录展示
function showFaceFollowRecord(data){
var faceFollowgeojson = {
"type": "FeatureCollection",
"features": []
};
for (var i = 0; i < data.length; i++) {
var poiArr = data[i].video.camPosition.split(",");
var feature = {
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [Number(poiArr[0]),Number(poiArr[1]),Number(poiArr[2])]
},
"id": "ff" + data[i].faceId,
};
feature.properties = {
"title": "marker",
"marker-symbol": "marker",
"marker-color": "#180EF1"
};
faceFollowgeojson.features.push(feature);
}
var faceFollowdataSource = Cesium.GeoJsonDataSource.load(faceFollowgeojson,{"markerSize":32});
var dataSourcePromise = viewer.dataSources.add(faceFollowdataSource);
dataSourcePromise.then(function(dataSource) {
dataSource.clustering.enabled = true;
dataSource.clustering.pixelRange = 25;
dataSource.clustering.minimumClusterSize = 3;
var dataSourceEntities = dataSource.entities.values;
for (var i = 0; i < dataSourceEntities.length; i++) {
dataSourceEntities[i].billboard.image = '../images/pinimg/07.png';
dataSourceEntities[i].billboard.scaleByDistance = new Cesium.NearFarScalar(1000, 1, 20000, 0.2);
dataSourceEntities[i].billboard.pixelOffsetScaleByDistance = new Cesium.NearFarScalar(1000, 1, 20000, 0.2);
}
var removeListener;
var pinBuilder = new Cesium.PinBuilder();
var pin50 = pinBuilder.fromText('50+', Cesium.Color.RED, 36).toDataURL();
var pin40 = pinBuilder.fromText('40+', Cesium.Color.ORANGE, 36).toDataURL();
var pin30 = pinBuilder.fromText('30+', Cesium.Color.YELLOW, 36).toDataURL();
var pin20 = pinBuilder.fromText('20+', Cesium.Color.GREEN, 36).toDataURL();
var pin10 = pinBuilder.fromText('10+', Cesium.Color.BLUE, 36).toDataURL();
var singleDigitPins = new Array(8);
for (var i = 0; i < singleDigitPins.length; ++i) {
singleDigitPins[i] = pinBuilder.fromText('' + (i + 2), Cesium.Color.VIOLET, 36).toDataURL();
}
function customStyle() {
if (Cesium.defined(removeListener)) {
removeListener();
removeListener = undefined;
} else {
removeListener = dataSource.clustering.clusterEvent.addEventListener(function(clusteredEntities, cluster) {
cluster.label.show = false;
cluster.billboard.show = true;
cluster.billboard.id = cluster.label.id;
cluster.billboard.verticalOrigin = Cesium.VerticalOrigin.BOTTOM;
if (clusteredEntities.length >= 50) {
cluster.billboard.image = pin50;
} else if (clusteredEntities.length >= 40) {
cluster.billboard.image = pin40;
} else if (clusteredEntities.length >= 30) {
cluster.billboard.image = pin30;
} else if (clusteredEntities.length >= 20) {
cluster.billboard.image = pin20;
} else if (clusteredEntities.length >= 10) {
cluster.billboard.image = pin10;
} else {
cluster.billboard.image = singleDigitPins[clusteredEntities.length - 2];
}
});
}
// force a re-cluster with the new styling
var pixelRange = dataSource.clustering.pixelRange;
dataSource.clustering.pixelRange = 0;
dataSource.clustering.pixelRange = pixelRange;
}
// start with custom style
customStyle();
addPOMListener();
});
}
//追踪记录清除
function clearFollowRecord(){
viewer.dataSources.removeAll();
}
//智能识别展示
function showFaceAlarmRecord(data){
var facealarmgeojson = {
"type": "FeatureCollection",
"features": []
};
for (var i = 0; i < data.length; i++) {
var poiArr = data[i].poi.split(",");
var feature = {
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [Number(poiArr[0]),Number(poiArr[1]),Number(poiArr[2])]
},
"id": "fa" + data[i].faId,
};
feature.properties = {
"title": "marker",
"marker-symbol": "marker",
"marker-color": "#FF6347"
};
facealarmgeojson.features.push(feature);
}
var facealarmdataSource = Cesium.GeoJsonDataSource.load(facealarmgeojson,{"markerSize":32});
var dataSourcePromise = viewer.dataSources.add(facealarmdataSource);
dataSourcePromise.then(function(dataSource) {
dataSource.clustering.enabled = true;
dataSource.clustering.pixelRange = 25;
dataSource.clustering.minimumClusterSize = 3;
var dataSourceEntities = dataSource.entities.values;
for (var i = 0; i < dataSourceEntities.length; i++) {
dataSourceEntities[i].billboard.image = '../images/pinimg/08.png';
dataSourceEntities[i].billboard.scaleByDistance = new Cesium.NearFarScalar(1000, 1, 20000, 0.2);
dataSourceEntities[i].billboard.pixelOffsetScaleByDistance = new Cesium.NearFarScalar(1000, 1, 20000, 0.2);
}
var removeListener;
var pinBuilder = new Cesium.PinBuilder();
var pin50 = pinBuilder.fromText('50+', Cesium.Color.RED, 36).toDataURL();
var pin40 = pinBuilder.fromText('40+', Cesium.Color.ORANGE, 36).toDataURL();
var pin30 = pinBuilder.fromText('30+', Cesium.Color.YELLOW, 36).toDataURL();
var pin20 = pinBuilder.fromText('20+', Cesium.Color.GREEN, 36).toDataURL();
var pin10 = pinBuilder.fromText('10+', Cesium.Color.BLUE, 36).toDataURL();
var singleDigitPins = new Array(8);
for (var i = 0; i < singleDigitPins.length; ++i) {
singleDigitPins[i] = pinBuilder.fromText('' + (i + 2), Cesium.Color.VIOLET, 36).toDataURL();
}
function customStyle() {
if (Cesium.defined(removeListener)) {
removeListener();
removeListener = undefined;
} else {
removeListener = dataSource.clustering.clusterEvent.addEventListener(function(clusteredEntities, cluster) {
cluster.label.show = false;
cluster.billboard.show = true;
cluster.billboard.id = cluster.label.id;
cluster.billboard.verticalOrigin = Cesium.VerticalOrigin.BOTTOM;
if (clusteredEntities.length >= 50) {
cluster.billboard.image = pin50;
} else if (clusteredEntities.length >= 40) {
cluster.billboard.image = pin40;
} else if (clusteredEntities.length >= 30) {
cluster.billboard.image = pin30;
} else if (clusteredEntities.length >= 20) {
cluster.billboard.image = pin20;
} else if (clusteredEntities.length >= 10) {
cluster.billboard.image = pin10;
} else {
cluster.billboard.image = singleDigitPins[clusteredEntities.length - 2];
}
});
}
// force a re-cluster with the new styling
var pixelRange = dataSource.clustering.pixelRange;
dataSource.clustering.pixelRange = 0;
dataSource.clustering.pixelRange = pixelRange;
}
// start with custom style
customStyle();
addPOMListener();
});
}
//智能识别清除
function clearFaceAlarmRecord(){
viewer.dataSources.removeAll();
}
//刷卡记录展示
function showCardRecord(data){
var cardgeojson = {
"type": "FeatureCollection",
"features": []
};
for (var i = 0; i < data.length; i++) {
var poiArr = data[i].poi.split(",");
var feature = {
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [Number(poiArr[0]),Number(poiArr[1]),Number(poiArr[2])]
},
"id": "cd" + data[i].crId,
};
feature.properties = {
"title": "marker",
"marker-symbol": "marker",
"marker-color": "#2bff30"
};
cardgeojson.features.push(feature);
}
var carddataSource = Cesium.GeoJsonDataSource.load(cardgeojson,{"markerSize":32});
var dataSourcePromise = viewer.dataSources.add(carddataSource);
dataSourcePromise.then(function(dataSource) {
dataSource.clustering.enabled = true;
dataSource.clustering.pixelRange = 25;
dataSource.clustering.minimumClusterSize = 3;
var dataSourceEntities = dataSource.entities.values;
for (var i = 0; i < dataSourceEntities.length; i++) {
dataSourceEntities[i].billboard.image = '../images/pinimg/09.png';
dataSourceEntities[i].billboard.scaleByDistance = new Cesium.NearFarScalar(1000, 1, 20000, 0.2);
dataSourceEntities[i].billboard.pixelOffsetScaleByDistance = new Cesium.NearFarScalar(1000, 1, 20000, 0.2);
}
var removeListener;
var pinBuilder = new Cesium.PinBuilder();
var pin50 = pinBuilder.fromText('50+', Cesium.Color.RED, 36).toDataURL();
var pin40 = pinBuilder.fromText('40+', Cesium.Color.ORANGE, 36).toDataURL();
var pin30 = pinBuilder.fromText('30+', Cesium.Color.YELLOW, 36).toDataURL();
var pin20 = pinBuilder.fromText('20+', Cesium.Color.GREEN, 36).toDataURL();
var pin10 = pinBuilder.fromText('10+', Cesium.Color.BLUE, 36).toDataURL();
var singleDigitPins = new Array(8);
for (var i = 0; i < singleDigitPins.length; ++i) {
singleDigitPins[i] = pinBuilder.fromText('' + (i + 2), Cesium.Color.VIOLET, 36).toDataURL();
}
function customStyle() {
if (Cesium.defined(removeListener)) {
removeListener();
removeListener = undefined;
} else {
removeListener = dataSource.clustering.clusterEvent.addEventListener(function(clusteredEntities, cluster) {
cluster.label.show = false;
cluster.billboard.show = true;
cluster.billboard.id = cluster.label.id;
cluster.billboard.verticalOrigin = Cesium.VerticalOrigin.BOTTOM;
if (clusteredEntities.length >= 50) {
cluster.billboard.image = pin50;
} else if (clusteredEntities.length >= 40) {
cluster.billboard.image = pin40;
} else if (clusteredEntities.length >= 30) {
cluster.billboard.image = pin30;
} else if (clusteredEntities.length >= 20) {
cluster.billboard.image = pin20;
} else if (clusteredEntities.length >= 10) {
cluster.billboard.image = pin10;
} else {
cluster.billboard.image = singleDigitPins[clusteredEntities.length - 2];
}
});
}
// force a re-cluster with the new styling
var pixelRange = dataSource.clustering.pixelRange;
dataSource.clustering.pixelRange = 0;
dataSource.clustering.pixelRange = pixelRange;
}
// start with custom style
customStyle();
addPOMListener();
});
}
//刷卡记录清除
function clearCardRecord(){
viewer.dataSources.removeAll();
}