Для использования возможностей Google Earth API необходимо получить ключ к API Карт Google. Один ключ к API Карт действителен для одного каталога или домена. Получить его можно на странице: http://code.google.com/apis/maps/signup.html
Плагин Google Планета Земля поддерживает следующие браузеры: - Firefox
- Google Chrome
- IE6 и IE7
Для того, чтобы начать его использовать, необходимо создать первую программу с использованием Google Earth API - "Hello Earth" (Взято с http://code.google.com/intl/ru-RU/apis/earth/documentation/introduction.html): <html> <head> <title>Google</title> <!-- *** Replace the key below below with your own API key, available at http://code.google.com/apis/maps/signup.html *** --> <script type="text/javascript" src="http://www.google.com/jsapi?key=MY_KEY"></script> <script type="text/javascript"> google.load("earth", "1"); google.load("maps", "2.99"); // For JS geocoder
var ge = null; var geocoder;
function init() { geocoder = new GClientGeocoder(); google.earth.createInstance("map3d", initCB, failureCB); }
function initCB(object) { ge = object; ge.getWindow().setVisibility(true); // add a navigation control ge.getNavigationControl().setVisibility(ge.VISIBILITY_AUTO);
}
function failureCB(object) { alert('load failed'); }
function submitLocation() { var address = document.getElementById('address').value; geocoder.getLatLng( address, function(point) { if (point && ge != null) { var la = ge.createLookAt(''); la.set(point.y, point.x, 100, ge.ALTITUDE_RELATIVE_TO_GROUND, 0, 0, 4000); ge.getView().setAbstractView(la); } } ); }
</script> </head> <body onload='init()' id='body'> <div> <form name='searchform' id='searchform' action='javascript:submitLocation();void(0);'> <input type=text size=60 id='address'></input> <input type=submit value='Перейти'> </form> </div>
<div id='map3d_container' style='border: 1px solid silver; height: 500px;'> <div id='map3d' style='height: 100%;'></div> </div> </body> </html> Последовательность MY_KEY надо изменить на полученный ранее ключ к API Карт Google. После открытия этого примера в браузере появится приветствие с возможностью установить плагин Google Планета Земля. Когда плагин будет установлен, появится содержимое плагина с трехмерным изображением земного шара
Рассмотрим пример подробнее: <script type="text/javascript" src="http://www.google.com/jsapi?key=MY_KEY"> </ script> Этот строчка сообщает Google ваш ключ API Карт Google и добавляет основной код для работы плагинов. google.load ( "earth", "1"); google.load ( "maps", "2.99"); Прозводиься инициализация API Карт и Google Earth API function init () ( geocoder = new GClientGeocoder (); google.earth.createInstance ( "map3d", initCB, failureCB); ) Функция, которая вызывается при поступлении к документу сообщения onload и выполняет создание основных объектов программы. При успешном завершении вызывается функция initCB так на слое документа с именем map3d создается объект плагин, при ошибочном - failureCB. function initCB (object) ( ge = object; ge.getWindow (). setVisibility (true); / / Add a navigation control ge.getNavigationControl (). setVisibility(ge.VISIBILITY_AUTO);) Функция, которая вызывается при успешном завершении инициализации. Устанавливает основные параметры отображения карты. function failureCB (object) ( alert ( 'load failed'); ) Функция, которая вызывается при ошибочном завершению инициализации. function submitLocation () ( var address = document.getElementById ( 'address'). value; geocoder.getLatLng ( address, function (point) ( if (point & & ge! = null) ( var la = ge.createLookAt (''); la.set (point.y, point.x, 100, ge.ALTITUDE_RELATIVE_TO_GROUND, 0, 0, 4000); ge.getView (). setAbstractView (la); ) ) ); ) Функция, которая выполняет геокодинг - преобразование адреса в географические координаты. Для того чтобы отразить трехмерных модель, нужно использовать функцию fetchKml: google.earth.fetchKml (ge, kmlUrl, kmlFinishedLoading); где: ge - обьэкт Google Earth API kmlUrl - ссылки на файл модели. Она должна быть экспортирована в формат Collada (Файл - Экспорт - 3d модель. Проверить что выбран тип файлов "Google Планета Земля", а не "Google Earth"!) kmlFinishedLoading - функция, которая будет вызвана при завершении загрузки модели. Самый простой ее вариант: function kmlFinishedLoading (kmlObject) ( if (kmlObject) ( ge.getFeatures (). appendChild (kmlObject); ) else ( alert ( "model load error!"); ) ) При успешной загрузке функция добавляет объект в трехмерных сцены. При ошибочном выдает сообщение об ошибке.
Ильин Антон
|