Dokumentacja Orbitvu

ORBITVU VIEWER API

API JavaScript ORBITVU VIEWER: metody, zdarzenia i sterowanie VIEWER-em z poziomu własnych kontrolek.

W wersjach Infinity360 i FREE ORBITVU VIEWER można sterować programowo, za pomocą JavaScript.

Aby uzyskać dostęp do obiektu API ORBITVU VIEWER, wykonaj następujące kroki:

  • zdefiniuj globalną funkcję zwrotną (JavaScript)
  • ustaw parametr viewer_api_init na nazwę tej funkcji

Przykładowy kod:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />

        <script type="text/javascript">
            // Global variable to store VIEWER API object reference
            var viewer_api_obj = null;

            // Callback called while VIEWER is loading
            window['my_loading_callback'] = function(progress){
                console.log('progress: ' + progress);
            }

            // Callback called when viewer is initialized (all required frames are loaded)
            // From this point it is possible to manipulate it, eg. rotate/zoom
            window['my_viewer_initialized_callback'] = function(){
                // as soon as viewer is initialized rotate to 10-th frame
                viewer_api_obj.setScene({hangle: 10});
            }

            // callback called on API initialization used to set another callbacks and store API object reference
            window['my_api_callback_name'] = function(api_obj) {
                viewer_api_obj = api_obj;
                api_obj.addCallback('my_viewer_initialized_callback', 'viewer_initialized');
                api_obj.addCallback('my_loading_callback', 'loading');
            };
        </script>
    </head>
    <body>
        // YOUR SITE CODE HERE
        <div class="orbitvu-viewer" style="background: url(//static.orbitvu.co/001/CmWVYLsjZz3nh3FvjzepBQ/300/350/img01.png) no-repeat center center #ffffff; width: 350px; height: 300px">
            <script type="text/javascript" src="//orbitvu.co/001/CmWVYLsjZz3nh3FvjzepBQ/ov3601/3/script?
                &width=350&content2=yes&height=300
                &viewer_api_init=my_api_callback_name"
            ></script>

        </div>
        // YOUR SITE CODE HERE
    </body>
</html>

Można też użyć parametru external_access_init, ale jest on przestarzały od wersji VIEWER 2.3.33 na rzecz viewer_api_init. Przykładowy kod dla external_access_init:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />

        <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
        <script type="text/javascript">
            var viewer_api_obj = null;
            window['my_api_callback_name'] = function(local_viewer) {
                 viewer_api_obj = local_viewer;
                 local_viewer.setScene({hangle: 10});
            };
        </script>
    </head>
    <body>
        // YOUR SITE CODE HERE
        <div class="orbitvu-viewer" style="background: url(//static.orbitvu.co/001/CmWVYLsjZz3nh3FvjzepBQ/300/350/img01.png) no-repeat center center #ffffff; width: 350px; height: 300px">
            <script type="text/javascript" src="//orbitvu.co/001/CmWVYLsjZz3nh3FvjzepBQ/ov3601/3/script?
                &width=350&content2=yes&height=300
                &external_access_init=my_api_callback_name"
            ></script>

        </div>
        // YOUR SITE CODE HERE
    </body>
</html>

getScene

Zwraca informacje o aktualnie wyświetlanej scenie

viewer_api_obj.getScene();

Zwraca obiekt słownika z następującymi informacjami:

  • scale – aktualna skala
  • centerx – aktualna współrzędna X środka widoku (w pikselach, względem maksymalnej rozdzielczości prezentacji)
  • centery – aktualna współrzędna Y środka widoku (w pikselach, względem maksymalnej rozdzielczości prezentacji)
  • centerX – to samo co centerx
  • centerY – to samo co centery
  • hangle – numer aktualnie wyświetlanej klatki poziomej
  • vangle – numer aktualnie wyświetlanej klatki pionowej

setScene

Główna funkcja służąca do sterowania prezentacją:

viewer_api_obj.setScene({<param_name>: <param_value>});

Parametry

autorotate

Uruchamia/zatrzymuje automatyczny obrót Wartości: yes | no Domyślnie: no

autorotate_dir

Kierunek automatycznego obrotu Wartości: left | right

fullscreen

Umożliwia przełączenie VIEWER-a w tryb fullscreen i definiuje metody pomocnicze do obsługi tego przełączania

Wersja: 3.6.7+

Wartości:

  • toggle Przełącza VIEWER do/z trybu fullscreen
  • pre Nakazuje VIEWER-owi zapamiętać bieżące wymiary, np. gdy VIEWER ma wymuszone width i height. Tę metodę należy wywołać np. wtedy, gdy element nadrzędny VIEWER-a ma zostać przełączony w tryb fullscreen — przed tym przełączeniem. Po włączeniu fullscreen dla elementu nadrzędnego należy wywołać metodę enter, aby zaktualizować wymiary VIEWER-a. Przy anulowaniu fullscreen trzeba wywołać metodę cancel.
  • enter Aktualizuje wymiary VIEWER-a, usuwając wszelkie wymuszone rozmiary, np. width i height — VIEWER dopasuje rozmiar do elementu kontenera (o ile ma on zdefiniowane jakieś wymiary). Można wywołać np. gdy element nadrzędny VIEWER-a jest przełączany w tryb fullscreen, a VIEWER również powinien zmienić rozmiar.
  • cancel Przywraca wymiary VIEWER-a zapamiętane metodą pre. Można wywołać np. po wyjściu z trybu fullscreen dla elementu nadrzędnego VIEWER-a.

hangle

Obrót do klatki poziomej Wartości: 0 – <liczba klatek> Przykład: viewer_api_obj.setScene({hangle: 10});

hangleInc

Zmienia kąt poziomy o podaną liczbę klatek, np. 2 lub -2

mode

Tryb, w którym pracuje ORBITVU VIEWER Wartości: rotate | drag | onerotation | onerotationslow Domyślnie: rotate

panX

Przesuwa bieżący widok wzdłuż osi poziomej, np.: 100 (przesunięcie o 100px w prawo), -10% (przesunięcie o 10% bieżącego widoku w lewo), -30px (przesunięcie o 30px w lewo).

panY

Przesuwa bieżący widok wzdłuż osi pionowej, np.: 100 (przesunięcie o 100px w dół), -10% (przesunięcie o 10% bieżącego widoku w górę), -30px (przesunięcie o 30px w górę).

reset_position

Natychmiast przywraca pozycję początkową prezentacji (z użyciem wartości początkowych first_frame, first_row i scale).

Wersja: 3.9.0+

Wartości: yes|no

Dodatkowe parametry: vangle, hangle, scale — wymuszają konkretną wartość parametru: vangle – wiersz, hangle – klatka pozioma, scale – poziom zoomu

Przykłady: setScene({reset_position: 'yes'}), setScene({reset_position: 'yes', hangle: 4})

scaleUp

Przybliżenie

scaleDown

Oddalenie

vangle

Ustawia kąt pionowy dla prezentacji 3D

vangleInc

Zmienia kąt pionowy o podaną liczbę wierszy, np. 1 lub -1

zoomMul

Zmienia zoom o podany współczynnik

Nie należy łączyć różnych parametrów w jednym wywołaniu

addCallback

Dodaje callback obsługujący zdarzenia ORBITVU VIEWER:

viewer_api_obj.addCallback('<callback_function_name>', '<event_name>');

W embed code pierwszym argumentem jest nazwa globalnie dostępnej funkcji. Wywołując API z własnego kodu JavaScript, możesz zamiast tego przekazać samą funkcję — czego potrzebujesz wewnątrz modułu, gdzie nazwa globalna do niej nie sięgnie. Zobacz Używanie ORBITVU VIEWER jako ES module.

Zdarzenia

activity_start

Wersja: 3.3.0+ Wyzwalane, gdy wystąpi jakakolwiek aktywność, np. gdy użytkownik wchodzi w interakcję z VIEWER-em lub gdy wywołania API powodują jakieś działania

activity_end

Wersja: 3.3.0+ Wyzwalane, gdy w VIEWER-ze nie dzieje się nic, np. gdy automatyczny obrót został zatrzymany

autorotate_start

Wyzwalane po uruchomieniu automatycznego obrotu

autorotate_stop

Wyzwalane po zatrzymaniu automatycznego obrotu, np. gdy użytkownik kliknie prezentację

center_change

Wyzwalane przy zmianie środka widoku

fullscreen_off

Wyzwalane przy wyjściu z trybu fullscreen

fullscreen_on

Wyzwalane, gdy VIEWER wchodzi w tryb fullscreen

interaction_start

Wersja: 2.3.27 Wyzwalane przy każdej interakcji użytkownika z VIEWER-em, np. kliknięcie myszą, kliknięcie przycisku, zoom kółkiem myszy

loading

Wersja: 2.3.33 Wyzwalane, gdy ORBITVU VIEWER ładuje klatki. Do callbacku przekazywana jest wartość liczbowa oznaczająca procent już załadowanych klatek. Gdy partial_load jest ustawiony na yes, może Cię również zainteresować zdarzenie partial_loading opisane poniżej — w tym przypadku zdarzenie loading dotyczy bowiem tylko 4 pierwszych załadowanych klatek.

mode_changed

Wersja: 2.3.33 Wyzwalane przy zmianie trybu VIEWER-a, np. z rotate na drag Wartości: rotate | drag | onerotation | onerotationslow

partial_loading

Wersja: 3.0.26 Wyzwalane, gdy VIEWER ładuje klatki w tle (gdy partial_load jest ustawiony na yes). Do callbacku przekazywana jest wartość liczbowa oznaczająca procent już załadowanych klatek.

partially_initialized

Wyzwalane, gdy partial_load jest ustawiony na yes i gdy pierwszy zestaw 4 klatek został załadowany (VIEWER może już reagować na użytkownika).

rotate

Wyzwalane podczas obracania

set_scene

Wyzwalane w momencie rozpoczęcia ustawiania sceny.

set_scene_complete

Wyzwalane po zakończeniu ustawiania sceny

viewer_initialized

Wersja: 2.3.33 Wyzwalane, gdy wszystkie wymagane klatki są załadowane i można sterować VIEWER-em oraz wchodzić z nim w interakcję. Callback otrzyma obiekt API VIEWER-a jako parametr.

zoom_in

zoom_out

calculate_position

Dostępne od wersji 2.3.15

Przelicza współrzędne x, y podane względem max_width i max_height prezentacji na bieżące współrzędne widoku (przeskalowane).

Na przykład, jeśli max_width/max_height prezentacji wynosi 4422px x 3073px, a jest ona wyświetlana w widoku o rozmiarze 368px x 400px, to współrzędne x: 1000 y: 500 zostaną przeliczone na współrzędne względem widoku, zależnie od bieżącej skali i pozycji środka:

scale: 0,175, centerX: 2623, centerY: 1930

po przeliczeniu:

x: -99, y: -50

Przydaje się, gdy chcesz wyświetlić coś w określonym miejscu nad prezentacją.

Przykład użycia:

viewer.calculate_position({x: 1000, y: 500})

gdzie viewer to obiekt zwrócony przez callback viewer_api_init (lub external_access_init).

Parametry:

  • coords słownik z wartościami x, y, np.: {x: 1000, y: 500}

get_presentation_info

Dostępne od wersji 2.3.15

Zwraca słownik zawierający następujące informacje:

  • width – bieżąca szerokość widoku
  • height – bieżąca wysokość widoku
  • max_width – maksymalna szerokość prezentacji
  • max_height – maksymalna wysokość prezentacji
  • hangles_no – liczba klatek poziomych
  • vangles_no – liczba klatek pionowych
  • min_scale – minimalna wartość skali zoomu
  • max_scale – maksymalna wartość skali zoomu
  • dimensions_changed – wartość true oznacza, że VIEWER zmienia swoje wymiary, np. przy wchodzeniu w tryb fullscreen

handle_resize

Ręcznie informuje ORBITVU VIEWER, że rozmiar jego kontenera się zmienił:

viewer_api_obj.handle_resize();

Metoda jest wywoływana automatycznie przy zmianie rozmiaru okna, ale jeśli zamierzasz np. interaktywnie zmieniać wymiary elementu kontenera VIEWER-a, możesz wywołać handle_resize, aby mieć pewność, że ORBITVU VIEWER wyświetla się prawidłowo.

enable_mousewheel

Włącza zoom kółkiem myszy. Metoda przełącza parametr mousewheel na ‘yes’:

viewer_api_obj.enable_mousewheel();

disable_mousewheel

Wyłącza zoom kółkiem myszy. Metoda przełącza parametr mousewheel na ‘no’:

viewer_api_obj.disable_mousewheel()

set_forced_mode

Dostępne od wersji 2.3.33

Przełącza ORBITVU VIEWER w tryb drag lub rotate

Wartości: drag | rotate

Na tej stronie