二、代码
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="./css/common.css">
<title>
热力图
</title>
<script src="./js/config.js"></script>
<script src="./scripts/vue.min.js"></script>
<script type="text/javascript" src="./scripts/element.index.js"></script>
<link rel="stylesheet" href="./scripts/element.index.css">
<link rel="stylesheet" href="./css/common.css">
<script src="./scripts/cesiumheatmap.js"></script>
<script src="./scripts/heatdata.js"></script>
</head>
<body>
<div id="cesiumContainer">
</div>
</body>
</html>
<script>
var app = new Vue({
el: '#cesiumContainer',
data() {
return {};
},
mounted() {
let viewer = new ANOVGIS.Viewer("cesiumContainer", {
vrButton: false,
});
var baselayer = ANOVGIS.ImageryLayerFactory.createImageryLayer(
ANOVGIS.ImageryType.TDT, {
style: "img",
key: globalConfig.tdtKey
}
);
viewer.imageryLayers.addImageryProvider(baselayer);
var maxx = -180;
var maxy = -90;
var minx = 180;
var miny = 90;
hdata.forEach((r) => {
maxx = Math.max(maxx, r.X);
maxy = Math.max(maxy, r.Y);
minx = Math.min(minx, r.X);
miny = Math.min(miny, r.Y);
});
var bounds = {
west: minx,
south: miny,
east: maxx,
north: maxy,
};
// 初始化CesiumHeatmap
var heatMap = ANOVGIS.CesiumHeatMap.create(
viewer, // 视图层
bounds, // 矩形坐标
{
// heatmap相应参数
backgroundColor: "rgba(0,0,0,0)",
radius: 50,
maxOpacity: 0.5,
minOpacity: 0,
blur: 0.7,
}
);
heatMap.setWGS84Data(0, 100, getData());
setInterval(() => {
heatMap.setWGS84Data(0, 100, getData());
}, 800);
document.ondblclick = () => {
heatMap.show(false);
};
function getData() {
var ddata = [];
var data = hdata;
for (var i = 0; i < data.length; i++) {
if (data[i].X < 119.1) {
var value = Math.random() * 30;
} else {
var value = Math.random() * 100;
}
var x = Number(data[i].X);
var y = Number(data[i].Y);
ddata.push({ x: x, y: y, value: value });
}
return ddata;
}
viewer.flyTo(viewer.entities);
},
methods: {},
});
</script>