我正在使用Cesium JS而且我是初学者。我在2D场景模式下初始化了Cesium并且我无法使地图居中。
以下是我的尝试:
var widget = new Cesium.CesiumWidget('cesiumContainer', {
sceneMode : Cesium.SceneMode.SCENE2D
});
// try to center somewhere in Europe
widget.scene.camera.setPositionCartographic(Cesium.Cartographic.fromDegrees(10, 45, 500000));
我还尝试使用scene.camera.viewRectangle(rectangle, ellipsoid);
解释here。我也尝试过这次航班。
上述所有方法在3D场景模式下都很有效,但在2D场景中却不行。所以我尝试将我的相机放在我想要的3D中,然后用SceneModePickerViewModel.morphTo2D()
切换到2D模式。仍然没有工作......
我知道我错过了关于2D场景模式中地图居中的全部观点。谁能帮我? :)
答案 0 :(得分:2)
flyTo方法对我有用。我使用的是Cesium 1.37。
viewer.camera.flyTo({
destination: Cesium.Cartesian3.fromDegrees(0.0, 0.0, 40000000),
duration: 0
});
答案 1 :(得分:1)
如果您已完全缩小,则在2D模式下不支持居中 - 在某种意义上更改地图的原点。你可以看一下论坛:https://groups.google.com/forum/#!searchin/cesium-dev/centering/cesium-dev/rj2pDY1Hie8/hH2xJhIzCC0J
尝试SCENE3D
,COLUMBUS_VIEW
和viewRectangle
- 对我有用。如果您在哥伦布视图中,请不要忘记添加camera.setPositionCartographic ( Cesium.Cartographic.fromDegrees(a,b,c));
,其中a,b,c通常为-90,45,并且您可以选择少量,例如: 2定位地图的方向。