如何 zoom/move 相机在 Cesium.js 中显示多边形(使视口适合多边形边界)

How to zoom/move camera to display a polygon in Cesium.js (fit viewport to polygon bounds)

好吧,也许我是瞎子,因为显然这不是高级功能..但我正在查看 Camera docs for Cesium.js,但我似乎无法找到您如何 zoom/move显示多边形的视图?

我可以定位相机以使用平均值 lat/lon 值显示多边形,例如:

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

但那是垃圾;我没有缩放...我想调整 zoom/viewport 以适应多边形。

任何人都可以指出我一定忽略了什么...

看看Sandcastle Camera Demo。下拉 "Camera options" 下拉框,然后 select "Fly to Rectangle" 或 "View a rectangle." 相机将飞行或捕捉到矩形,代码编辑器显示了这是如何完成的。也看看其他 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
});

假设您在实体 API 中定义了一个多边形,那么您可以简单地调用 viewer.zoomTo(entity)viewer.flyTo(entity)。这适用于任何类型的实体可视化,而不仅仅是多边形,并且在 Cesium 的 Creating Entities tutorial.

中进行了讨论