大資料中心技術的工程數智化指揮中心
阿新 • • 發佈:2021-07-05
指揮中心分為專案空間設計、智慧化硬體建設和軟體系統建設三部分內容,打造了集聲、光、空調、語音、螢幕、人臉識別等多種物聯網技術以及APP,語音等多場景多方式的控制方式的智慧場景,採用全球先進的桌面互動系統,穩定且炫酷的OLED全透明操作屏,提供視覺呈現方案。同時也採用“雲桌面方式”為指揮中心提供更為便捷輕量級的系統操控體驗,以指揮操控技術和資訊科技為主導,工程全過程經營管理資料為核心,將企業經營與專案緊密結合,實現工程現場資料全面匯聚、管控預警指標全面見識、管控運營資料全面鑽取、公司數字孿生全面構建。既可為企事業單位打造智慧建築場景應用,又能為專案業主,施工單位提供集預警、應急處理、視訊、會議於一體的工程管理應用指揮產品。
工程數智化指揮中心被評選為新型智慧城市建設示範專案。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title data-i18n="resources.title_dataFlowService"></title>
<script type="text/javascript" include="widgets" src="../js/include-web.js"></script>
</head>
<body style=" margin: 0;overflow: hidden;background: #fff;width: 100%;height:100%;position: absolute;top: 0;">
<div id="map" style="margin:0 auto;width: 100%;height: 100%"></div>
<script type="text/javascript" include='mapv' src="../../dist/leaflet/include-leaflet.js"></script>
<script type="text/javascript">
var host = window.isLocal ? window.server : "https://iserver.supermap.io";
var wsHost = "wss:\//" + (window.isLocal ? document.location.hostname + ":8800" : "iclsvrws.supermap.io");
var map,
urlMap = host + "/iserver/services/map-china400/rest/maps/ChinaDark",
urlQuery = host + "/iserver/services/map-china400/rest/maps/China_4326",
urlDataFlow = wsHost + "/iserver/services/dataflowTest2/dataflow";
map = L.map('map', {
preferCanvas: true,
crs: L.CRS.EPSG3857,
center: [37, 108.42],
maxZoom: 18,
zoom: 5
});
L.supermap.tiledMapLayer(urlMap).addTo(map);
SuperMap.SecurityManager.registerToken(urlDataFlow, window.exampleToken);
var popup = L.popup({
offset: L.point(0, 0),
autoPan: true
});
//建立DataFlowLayer,建立DataFlowLayer訂閱iServer dataflow服務並將結果載入到地圖上
var dataFlowLayer = L.supermap.dataFlowLayer(urlDataFlow, {
render: 'mapv',
pointToLayer: function (geoJsonPoint, latlng) {
return L.marker(latlng, {
icon: L.icon({
iconUrl: '../img/taxi.png',
iconAnchor: [16, 16]
})
});
},
onEachFeature: function (feature, layer) {
popup.setLatLng(L.GeoJSON.coordsToLatLng(feature.geometry.coordinates))
.setContent(feature.properties.time);
if (!popup.isOpen()) {
popup.addTo(map);
}
},
});
dataFlowLayer.addTo(map);
//模擬實時資料 start
//查詢expectCount個線資料,每兩秒將expectCount個點通過dataFlowService廣播給iSevrer的dataflow服務,模擬expectCount個小汽車的移動軌跡
//該測試資料有21331個數據
var expectCount = 10000;
query();
var timer, featureResult, dataFlowBroadcast;
function query() {
widgets.loader.showLoader();
var ids = [];
while (ids.length < expectCount) {
var n = Math.round(Math.random() * 21331);
if (ids.indexOf(n) === -1) {
ids.push(n);
}
}
var str = "(" + ids.join() + ")";
var param = new SuperMap.QueryBySQLParameters({
expectCount: expectCount,
queryParams: {
name: "County_Road_ln@China",
attributeFilter: "SMID in " + str,
}
});
L.supermap
.queryService(urlQuery)
.queryBySQL(param, function (serviceResult) {
featureResult = serviceResult;
dataFlowBroadcast = L.supermap.dataFlowService(urlDataFlow).initBroadcast();
dataFlowBroadcast.on('broadcastSocketConnected', function (e) {
widgets.loader.removeLoader();
broadcast();
timer = window.setInterval("broadcast()", 2000);
})
});
}
var count = 0;
function broadcast() {
var features = [];
for (var index = 0; index < featureResult.result.recordsets[0].features.features.length; index++) {
var geometry = featureResult.result.recordsets[0].features.features[index].geometry;
var point = geometry.coordinates[(count % geometry.coordinates.length)];
//處理多線
if (L.Util.isArray(point[0])) {
point = point[0];
}
var data = {
geometry: {
coordinates: [point[0], point[1]],
type: "Point"
},
type: "Feature",
properties: {
id: index + 1,
time: new Date()
}
};
features.push(data);
}
dataFlowBroadcast.broadcast(features);
count += 2;
}
//模擬實時資料 end
</script>
</body>
</html>