Cesium JS: центральная карта в режиме 2D-сцены

Я использую Cesium JS и я новичок. Я инициализировал Cesium в режиме 2D-сцены и не могу центрировать карту.

Вот что я пробовал:

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);, как описано здесь . Я тоже пробовал летать.

Все описанные выше методы отлично работают в режиме 3D-сцены, но не в 2D. Поэтому я попытался поместить свою камеру в 3D, где я хочу, и переключиться в режим 2D с помощью SceneModePickerViewModel.morphTo2D(). До сих пор не работает...

Я знаю, что мне не хватает всего смысла в центрировании карты в режиме 2D-сцены. Может кто-нибудь помочь мне? :)


person user3659695    schedule 21.05.2014    source источник


Ответы (2)


Мне помог метод flyTo. Я использую Цезий 1.37.

viewer.camera.flyTo({
    destination: Cesium.Cartesian3.fromDegrees(0.0, 0.0, 40000000),
    duration: 0
});
person Karó Gyökér    schedule 12.10.2017

Центрирование — в смысле изменения исходной точки — карты не поддерживается в 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, чтобы сориентировать направление карты.

person Sean    schedule 31.10.2014