如何缩放/移动相机以在Cesium.js中显示多边形(适合视口到多边形边界)

时间:2015-04-15 07:27:06

标签: javascript camera cesium

好吧,也许我是盲人,因为很明显这不是高级功能..但我正在看Camera docs for Cesium.js,我似乎无法找到你如何简单地缩放/移动视图来显示一个多边形?

我可以使用平均纬度/经度值来定位相机以显示多边形,例如:

viewer.camera.setView({
    position : Cesium.Cartesian3.fromDegrees(lonMean, latMean, 45000.0)
});

但那是垃圾;我没有得到缩放... 我希望调整缩放/视口以适合多边形。

任何人都可以指出我必须忽略的东西......

2 个答案:

答案 0 :(得分:3)

假设您在Entity API中定义了多边形,那么您只需拨打viewer.zoomTo(entity)viewer.flyTo(entity)即可。这适用于任何类型的实体可视化,而不仅仅是多边形,并在Cesium的Visualizing Spatial Data tutorial中进行了讨论。

答案 1 :(得分:1)

看看Sandcastle Camera Demo。下拉“摄像机选项”下拉框,然后选择“飞到矩形”或“查看矩形”。相机将飞行或捕捉到矩形,代码编辑器显示如何完成此操作。另外看看其他Sandcastle演示,它们包含大量用于Cesium中常见操作的示例代码。

这是FlyTo代码:

var west = -90.0;
var south = 38.0;
var east = -87.0;
var north = 40.0;
var rectangle = Cesium.Rectangle.fromDegrees(west, south, east, north);

viewer.camera.flyTo({
    destination : rectangle
});