我目前正在为Cesium开发一个实时跟踪应用程序,但在浏览器中显示点时遇到了一些问题。
目前,我的Cesium查看器从服务器接收数据(以JSON格式),并在地图上正确地显示该点,但是更新地图上的位置的唯一方法是刷新页面。请注意,它正在从location.json文件中读取位置,并且每秒左右会从服务器更新一次位置。
我想这样做是可以的,因为客户端代码没有“更新”函数来动态更改地图上的点位置。
那么,有什么最简单的方法可以让Cesium不断更新地图上的点,而无需用户不断刷新页面吗?根据我的研究,我发现了一些涉及流式传输CZML文件或将我的JSON转换为数据源的示例,但对于似乎是一个简单任务来说,这些示例似乎有点复杂。难道没有一个简单的“更新”函数可以动态更改点吗?
以下是我的客户端代码:
如果您需要更多的信息,请告诉我,我很乐意提供。谢谢!
目前,我的Cesium查看器从服务器接收数据(以JSON格式),并在地图上正确地显示该点,但是更新地图上的位置的唯一方法是刷新页面。请注意,它正在从location.json文件中读取位置,并且每秒左右会从服务器更新一次位置。
我想这样做是可以的,因为客户端代码没有“更新”函数来动态更改地图上的点位置。
那么,有什么最简单的方法可以让Cesium不断更新地图上的点,而无需用户不断刷新页面吗?根据我的研究,我发现了一些涉及流式传输CZML文件或将我的JSON转换为数据源的示例,但对于似乎是一个简单任务来说,这些示例似乎有点复杂。难道没有一个简单的“更新”函数可以动态更改点吗?
以下是我的客户端代码:
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Use correct character set. -->
<meta charset="utf-8">
<!-- Tell IE to use the latest, best version (or Chrome Frame if pre-IE11). -->
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<!-- Make the application on mobile take up the full browser screen and disable user scaling. -->
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
<title>Hello World!</title>
<script src="../Build/Cesium/Cesium.js"></script>
<style>
@import url(../Build/Cesium/Widgets/widgets.css);
html, body, #cesiumContainer {
width: 100%; height: 100%; margin: 0; padding: 0; overflow: hidden;
}
</style>
</head>
<body>
<div id="cesiumContainer"></div>
<script>
var viewer = new Cesium.Viewer('cesiumContainer');
Cesium.loadJson('/location.json').then(function(data) {
console.log(data);
viewer.entities.add({
name : data.name,
position : Cesium.Cartesian3.fromDegrees(data.lon, data.lat),
point : {
pixelSize : 5,
color : Cesium.Color.RED,
outlineColor : Cesium.Color.WHITE,
outlineWidth : 2
},
label : {
text : data.name,
font : '14pt monospace',
style: Cesium.LabelStyle.FILL_AND_OUTLINE,
outlineWidth : 2,
verticalOrigin : Cesium.VerticalOrigin.BOTTOM,
pixelOffset : new Cesium.Cartesian2(0, -9)
}
});
viewer.zoomTo(viewer.entities);
});
</script>
</body>
</html>
如果您需要更多的信息,请告诉我,我很乐意提供。谢谢!