Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2010, 22:35   #1
Symbiot
Новичок
Джуниор
 
Регистрация: 01.06.2010
Сообщений: 2
По умолчанию Google_map_earth

Всем доброго!
Появилась проблема с гугл мапом. Не первый день пытаюсь решить. Чтение гугл манов дает отрицательный результат.
Реализовал я Google Earth.
Как известно, он требует плагин.
Так вот, проблема в том и состоит, что мне необходимо, чтобы скрипт заранее определял наличие плагина, и в случае его отсутствия, грузил обычный гуг мап.

Вот мой код:
Код:
var ge;
var placemark;
google.load("earth", "1");
function init() {
  google.earth.createInstance('map3d', initCallback, failureCallback);
}
function initCallback(instance) {
  ge = instance;
  alert(ge.getPluginVersion().toString());
  ge.getWindow().setVisibility(true);
  // add a navigation control
  ge.getNavigationControl().setVisibility(ge.VISIBILITY_AUTO);
  // add some layers
  ge.getLayerRoot().enableLayerById(ge.LAYER_BORDERS, true);
  ge.getLayerRoot().enableLayerById(ge.LAYER_ROADS, true);
    var arr = new Array();
    for(var i = 0; i < arr.length; i++) {
        var obj = arr[i];
  // create the placemark
  placemark = ge.createPlacemark('');
  var point = ge.createPoint('');
  point.setLatitude(obj[0]);
  point.setLongitude(obj[1]);
  placemark.setGeometry(point);
  // add the placemark to the earth DOM
  ge.getFeatures().appendChild(placemark);
  
  // look at the placemark we created
  var la = ge.createLookAt('');
  la.set(obj[0], obj[1],
    0, // altitude
    ge.ALTITUDE_RELATIVE_TO_GROUND,
    0, // heading
    0, // straight-down tilt
    2000000 // range (inverse of zoom)
    );
  ge.getView().setAbstractView(la);
  placemark.setDescription(obj[2]);
    }
}
function failureCallback(errorCode) {
}
$(document).ready(function() {
    $('a#link').click(function() {
        var input = $(this).attr('rel');
        var latlngStr = input.split(",",2);
        var lat = parseFloat(latlngStr[0]);
        var lng = parseFloat(latlngStr[1]);
        placemark = ge.createPlacemark('');
  
        // look at the placemark we created
        var la = ge.createLookAt('');
        la.set(lat, lng,
            0, // altitude
            ge.ALTITUDE_RELATIVE_TO_GROUND,
            0, // heading
            0, // straight-down tilt
            1000000 // range (inverse of zoom)
        );
        ge.getView().setAbstractView(la);
    });
});
google.setOnLoadCallback(init);
Подскажите, пожалуйста.
Symbiot вне форума Ответить с цитированием
Старый 02.06.2010, 12:03   #2
Symbiot
Новичок
Джуниор
 
Регистрация: 01.06.2010
Сообщений: 2
По умолчанию

Всё-таки нашел решение данного вопроса в гугл манах.

Все решается методом isInstalled:
Код:
bool google.earth.isInstalled();
Symbiot вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц