如何设置Cesium.Viewer居中的坐标?


10

在官方的CesiumJS教程中,有一个示例HelloWorld应用程序,其中显示了地图查看器。

当用户打开页面时,我希望地球仪在某个点上方并以一定的缩放比例居中:

屏幕截图

我该如何实现?

我假设可以通过Cesium.Viewer构造函数参数进行配置(如下timeline所示),但未在reference中找到它们。

<body>
  <div id="cesiumContainer"></div>
  <script>
    var viewer = new Cesium.Viewer('cesiumContainer', 
      {
        timeline: false,
        animation: false
      });
  </script>
</body>
</html>

Answers:


5

您可以在构造Viewer小部件之前设置“默认”相机视图,该视图既用于初始视图,又用于“主页”按钮视图。使用Camera类(参考doc)上的静态属性DEFAULT_VIEW_FACTOR和DEFAULT_VIEW_RECTANGLE进行设置,如下所示:

var west = 122.0;
var south = 33.0;
var east = 130.0;
var north = 47.0;

var rectangle = Cesium.Rectangle.fromDegrees(west, south, east, north);

Cesium.Camera.DEFAULT_VIEW_FACTOR = 0;
Cesium.Camera.DEFAULT_VIEW_RECTANGLE = rectangle;

// NOTE: Viewer constructed after default view is set.
var viewer = new Cesium.Viewer('cesiumContainer');

还要注意,Sandcastle Camera Demo展示了许多在构造后在运行时将相机飞行或捕捉到位置的方法。使用下拉框选择器(地球仪的左上角)查看其中的不同选项。


7

如果您已经创建了查看器,则可以在创建该查看器之后放置此代码,以创建到特定经度,纬度的缩放。

var center = Cesium.Cartesian3.fromDegrees(-82.5, 35.3);
viewer.camera.lookAt(center, new Cesium.Cartesian3(0.0, 0.0, 4200000.0));

而且,如果您在第二行中设置了第三项,32500000.0您将走得更远,类似于主页按钮的效果。因此,请尝试更改第三个术语以获取所需的缩放比例。


对于我来说,这似乎使鼠标感到混乱,因此平移使地球围绕新的中心点移动。
理查德
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.