
Pierwszym krokiem jest otrzymanie klucza dla naszej strony - podobnie jak to było w poprzedniej wersji Google Maps. Po jego otrzymaniu dołączamy do naszej strony plik JS z API.
<script src="http://www.google.com/jsapi?key=klucz"></script>Następnie uruchamiamy metodę dynamicznego ładowania API google.load z parametrem nazwy API czyli earth oraz wersją - najnowsza stabilna wersja to 1. Jeżeli chcemy używać wersji testowych wówczas wpisujemy "1.x".
google.load("earth", 1);
Po załadowaniu API możemy zacząć umieszczać nasz obiekt na stronie. Google Earth dopasowuje się do wielkości węzła (kontenera), w który go włożymy - najprościej będzie uruchomić go w znaczniku <div>. <div id="earth" style="width: 580px; height: 350px;"></div>Ostatnim punktem jest uruchomienie instancji Google Earth w wybranym kontenerze. W tym momencie zaczynamy się posługiwać się API do Google Earth.
Utworzenie instancji odbywa się poprzez wywołanie metody getInstance z obiektu google.earth. Jako parametry podajemy identyfikator obiektu, w którym ma być umieszczony Google Earth, oraz dwie funkcje callback'owe - pierwsza wywoływana po załadowaniu się obiektu, druga, która powinna się wywoływać w przypadku błędu.
google.earth.createInstance('earth', initFunction, errorFunction);
Wywołanie akcji odnoszące się do obiektu google.earth powinno odbyć się po załadowaniu API - w tym celu używamy metody google.setOnLoadCallback, gdzie jako parametr podajemy wykonywaną funkcję. Wówczas uzyskamy coś następującego:google.setOnLoadCallback(function() {
google.earth.createInstance('earth', initFunction, errorFunction);
});
Do funkcji initFunction jest przekazywany parametr z utworzonym obiektem - co otwiera nam drogę do manipulowania bezpośrednio na obiekcie. Dobrą praktyką jest umieszczenie tego obiektu jako zmienna globalna lub właściwość jakiegoś obiektu - tak, aby w przyszłości istniała możliwość dostania się do niego.Po uruchomieniu konieczne jest włączenie parametru visibility w oknie obiektu poprzez wywołanie komendy getWindow().setVisibility(true) na przekazanym obiekcie
var earth;
function initFunction(obj) {
earth = obj;
earth.getWindow().setVisibility(true);
}
Żeby nie pozostawić naszej Ziemi oddalonej o miliony kilometrów od użytkownika po starcie warto przybliżyć ją do wskazanego miejsca - np. do Wrocławia. W tym celu musimy utworzyć nowy widok, nadać ustawienia położenia i ustawić zmieniony widok jako domyślny.var lookAt = earth.createLookAt('');
lookAt.setLatitude(51.11123);
lookAt.setLongitude(17.05876);
lookAt.setRange(500.0);
earth.getView().setAbstractView(lookAt);
Ostatecznie otrzymujemy taki kod:<html>
<head>
<script src="http://www.google.com/jsapi?key=klucz"></script>
<script>
var earth;
google.load("earth", 1);
function initFunction(obj) {
earth = obj;
earth.getWindow().setVisibility(true);
var lookAt = earth.createLookAt('');
lookAt.setLatitude(51.11123);
lookAt.setLongitude(17.05876);
lookAt.setRange(500.0);
earth.getView().setAbstractView(lookAt);
}
google.setOnLoadCallback(function() {
google.earth.createInstance('earth', initFunction, function() {});
});
</script>
</head>
<body>
<div id="earth" style="width: 580px; height: 350px;"></div>
</body>
</html>
A oto ostateczny efekt:
Brak komentarzy:
Prześlij komentarz