(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:
- fly: implica un desplazamiento suave desde la posición actual de la cámara hasta la posición final.
- 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:
- 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]
- 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.