(ES) cameraToPosition()

Información

Versión de implementación: beta 1.00

Actualizado en: beta 1.09

Descripción

Desplaza la cámara del visor del mapa a unas coordenadas (geográficas o cartesianas) concretas del mapa, a una altitud determinada, y con la posibilidad de definir una orientación, inclinación y giro.

Invocación

cameraToPosition(
	zoomType,
	coordinates,
	height*,
	heading*,
	pitch*,
	roll*
)

* Parámetros opcionales

Parámetros de entrada

zoomType

El tipo de zoom que llevará a cabo la cámara del visor. El parámetro a introducir es de tipo texto, y acepta uno de estas dos opciones:

  1. fly: implica un desplazamiento suave desde la posición actual de la cámara hasta la posición final.
  2. zoom: desplazamiento instantáneo hasta la posición final de la cámara.

coordinates

El valor con las coordenadas a las que hacer zoom. Dependiendo del tipo de coordenadas que se quieran introducir (geográficas o cartesianas), este parámetro será diferente. Se diferencia por tanto:

  1. Coordenadas geográficas: el parámetro será una lista con dos valores numéricos; el primero comprendido entre -180 y 180, y el segundo entre -90 y 90: [-15.43, 28.12]
  2. Coordenadas cartesianas: el parámetro será un objeto con tres elementos de tipo Cartesian3: {x: 0.0, y: 0.0, z: 0.0}

height

Parámetro opcional; de no incluirse, usará el valor de 5000. Corresponde con el valor numérico de altura a la que se situará la cámara del visor. En el caso de utilizar coordenadas cartesianas, este valor de existir sobreescribirá el valor de altitud ya implícito.

heading

Parámetro opcional; de no incluirse, se usará el valor de 0. Hace referencia a la orientación de la cámara respecto al norte, recibiendo un valor numérico entre 0 y 360.

pitch

Parámetro opcional; de no incluirse, se usará el valor de -90. Define la inclinación de la cámara respecto al plano horizontal, aceptando un valor numérico comprendido entre -180 y 180.

roll

Parámetro opcional; de no incluirse, se usará el valor de 0. Especifica el giro de la cámara respecto a su eje de visión (alabeo).

Más acerca de la orientación, inclinación y alabeo

Si quieres conocer un poco mejor los conceptos de orientación, inclinación y alabeo de la cámara, en este post del grupo de Google de Cesium encontrarás una buena explicación.

Ejemplos de uso

Definir la vista de inicio del visor sobre el parque de El Retiro de Madrid, llamando a la función tras terminar de declarar el visor:

viewer = new Cesium.Viewer('cesiumContainer')

cameraToPosition(
	'zoom',
	[-3.683881,40.414404],
	1500
)


Desplazar la cámara suavemente desde la posición actual del mapa hasta la zona centro de Las Palmas de Gran Canaria, sin definir ninguna altura en concreto:

cameraToPosition(
	'fly',
	[-15.4351,28.1195]
)

Centrar la cámara directamente hasta las coordenadas de la primera entidad del primer dataSource del visor, situando la cámara a 500 metros de altura:

cameraToPosition(
	'zoom',
	viewer.dataSources._dataSources[0].entities.values[0].position._value,
	1500
)

Ejecutando en la consola la llamada a viewer.dataSources._dataSources[0].entities.values[0].position._value se obtiene un objeto de coordenadas cartesiano, que en este caso sería {x: 4899369.464544161, y: -547533.5655109598, z: 4033284.450355943}. De ahí que se pueda usar como parámetro esta llamada.