informatica:linux:tour360
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| informatica:linux:tour360 [2024/03/09 12:39] – jose | informatica:linux:tour360 [2025/10/14 09:45] (current) – [Comparativa entre dos tour] jose | ||
|---|---|---|---|
| Line 5: | Line 5: | ||
| https:// | https:// | ||
| + | |||
| + | ====== Importación fotos ====== | ||
| + | Para importar fotos primero las tenemos que hacer rectangulares. En el caso de la insta360 se le da a export y selecciona esta oción: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | La foto queda tal que así | ||
| + | |||
| + | {{: | ||
| ====== Instalación ====== | ====== Instalación ====== | ||
| Line 18: | Line 27: | ||
| ===== Parámetros ===== | ===== Parámetros ===== | ||
| + | El fichero data.js tiene todos los parámetros de las fotos. | ||
| + | |||
| < | < | ||
| " | " | ||
| Line 57: | Line 68: | ||
| ====== Modificaciones ====== | ====== Modificaciones ====== | ||
| - | ===== Girar escena de un hotspor | + | ===== Girar escena de un hotspot |
| Cuando clickamos en un hotspot la escena viene con la orientación por defecto, pero no es lo mismo si venimos por la izquierda que por la derecha o si vamos de adelante hacía atrás. | Cuando clickamos en un hotspot la escena viene con la orientación por defecto, pero no es lo mismo si venimos por la izquierda que por la derecha o si vamos de adelante hacía atrás. | ||
| Line 106: | Line 117: | ||
| </ | </ | ||
| + | |||
| + | ===== Añadir mapa con la posición y orientación ===== | ||
| + | Copiamos el fichero mapa.png con capas transparentes en el directorio raiz donde está index.js | ||
| + | |||
| + | En el fichero index.js, entre | ||
| + | // Initialize viewer. | ||
| + | y | ||
| + | // Create scenes, | ||
| + | Añadimos el minimapa | ||
| + | < | ||
| + | // Crear un contenedor para el mini-mapa | ||
| + | var miniMapContainer = document.createElement(' | ||
| + | miniMapContainer.style.position = ' | ||
| + | miniMapContainer.style.right = ' | ||
| + | miniMapContainer.style.bottom = ' | ||
| + | miniMapContainer.style.width = ' | ||
| + | miniMapContainer.style.height = ' | ||
| + | miniMapContainer.style.zIndex = ' | ||
| + | |||
| + | // Añadir el mini-mapa al contenedor | ||
| + | var miniMap = document.createElement(' | ||
| + | miniMap.src = ' | ||
| + | miniMap.style.width = ' | ||
| + | miniMap.style.height = ' | ||
| + | miniMap.style.pointerEvents = ' | ||
| + | |||
| + | // Añadir el marcador al contenedor | ||
| + | var marker = document.createElement(' | ||
| + | marker.style.position = ' | ||
| + | marker.style.width = ' | ||
| + | marker.style.height = ' | ||
| + | marker.style.backgroundColor = ' | ||
| + | marker.style.borderRadius = ' | ||
| + | marker.style.zIndex = ' | ||
| + | // Posicionamiento inicial del marcador dentro del contenedor del mini-mapa | ||
| + | marker.style.transition = 'top 0.5s ease-out, left 0.5s ease-out'; | ||
| + | marker.style.left = ' | ||
| + | marker.style.top = ' | ||
| + | |||
| + | // Añadir el mini-mapa y el marcador al contenedor | ||
| + | miniMapContainer.appendChild(miniMap); | ||
| + | miniMapContainer.appendChild(marker); | ||
| + | |||
| + | // Finalmente, añadir el contenedor del mini-mapa al body o al contenedor principal | ||
| + | document.body.appendChild(miniMapContainer); | ||
| + | </ | ||
| + | |||
| + | Creamos la función actualizarPosicionDelMarcador al final del documento antes de estas líneas: | ||
| + | |||
| + | // Display the initial scene. | ||
| + | switchScene(scenes[0]); | ||
| + | |||
| + | Función actualizarPosicionDelMarcador | ||
| + | < | ||
| + | function actualizarPosicionDelMarcador(nuevaX, | ||
| + | // Suponiendo que ' | ||
| + | // y ' | ||
| + | // ' | ||
| + | // relativas al contenedor del mini-mapa. | ||
| + | |||
| + | marker.style.left = nuevaX + ' | ||
| + | marker.style.top = nuevaY + ' | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | La función la llamamos dentro de la función switchScene: | ||
| + | < | ||
| + | function switchScene(scene) { | ||
| + | stopAutorotate(); | ||
| + | scene.view.setParameters(scene.data.initialViewParameters); | ||
| + | scene.scene.switchTo(); | ||
| + | startAutorotate(); | ||
| + | updateSceneName(scene); | ||
| + | updateSceneList(scene); | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | La ponemos al final del todo después de updateSceneList | ||
| + | < | ||
| + | function switchScene(scene) { | ||
| + | stopAutorotate(); | ||
| + | scene.view.setParameters(scene.data.initialViewParameters); | ||
| + | scene.scene.switchTo(); | ||
| + | startAutorotate(); | ||
| + | updateSceneName(scene); | ||
| + | updateSceneList(scene); | ||
| + | actualizarPosicionDelMarcador(scene.data.initialViewParameters.x, | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Ahora en cada escena tenemos que poner los valores x,y de la posición que están en el mapa en la sección initialViewParameters. El punto 0,0 es la esquina superior izquierda | ||
| + | < | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| ====== Añadir nuevas fotos sin Marzipano tool ====== | ====== Añadir nuevas fotos sin Marzipano tool ====== | ||
| + | Hay que hacer 3 pasos: | ||
| + | < | ||
| + | 1. Convertir foto en directorios y copiar en directorio tiles | ||
| + | 2. Modificar data.js | ||
| + | 3. Modificar index.html | ||
| + | </ | ||
| Descargamos la foto en formato rectangular. Por ejemplo si la tenemos subida a kuula y la editamos, abajo a la derecha está la opción download | Descargamos la foto en formato rectangular. Por ejemplo si la tenemos subida a kuula y la editamos, abajo a la derecha está la opción download | ||
| Line 266: | Line 387: | ||
| Copiamos el directorio dentro de la instalación de marzipano en el directorio tiles | Copiamos el directorio dentro de la instalación de marzipano en el directorio tiles | ||
| - | | + | Por ejemplo si hemos añadido planta2_01 se suele poner el ID: 3-planta2_01 para tenerlos ordenados. |
| + | |||
| + | El directorio tiles nos quedaría mas o menos así | ||
| + | < | ||
| + | └── tiles | ||
| + | ├── 0-portalon_01 | ||
| + | ├── 1-portalon_02 | ||
| + | ├── 2-patio_01 | ||
| + | └── 3-planta2_01 | ||
| + | </ | ||
| + | |||
| + | Modificamos el fichero data.js añadiendo otra entrada al vector json de Scenes. Podemos copiar otro tal cual y después ir cambiando los parámetros, | ||
| + | |||
| + | < | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | ], | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | |||
| + | </ | ||
| + | |||
| + | Y por último tenemos que añadir el DIV en el fichero index.html: | ||
| + | < | ||
| + | <div id=" | ||
| + | <ul class=" | ||
| + | |||
| + | <a href=" | ||
| + | <li class=" | ||
| + | </ | ||
| + | |||
| + | <a href=" | ||
| + | <li class=" | ||
| + | </ | ||
| + | <a href=" | ||
| + | <li class=" | ||
| + | </ | ||
| + | <a href=" | ||
| + | <li class=" | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | |||
| + | ====== Comparativa entre dos tour ====== | ||
| + | Comparativa a dos pantallas de 2 tours, como por ejemplo la obra | ||
| + | |||
| + | Hay dos ficheros data.js | ||
| + | < | ||
| + | - data.js | ||
| + | - data2.js | ||
| + | </ | ||
informatica/linux/tour360.1709987950.txt.gz · Last modified: by jose
