2013-07-24 2 views
1

Мне было передано приложение Silverlight 4, в котором используется API Google Earth. У нас проблема с более новыми версиями Google Планета Земля: в Internet Explorer карта отображается на белом фоне с текстом «ATL 10.00». В других браузерах фон просто белый (не видно никакого текста). Он работает с Google Earth версии 6.0.3.2197, но не в любой версии после этого.API Google Earth в приложении Silverlight

Я прочел это thread - но ни один из предложений не работал. Я должен отметить, однако, что код JavaScript для инициализации GE в Silverlight довольно сложный, но, насколько я могу судить, инициализация GE выполняется в функции google.setOnLoadCallback.

Было бы хорошо, если кто-то знает, что именно означает сообщение «ATL 10.00».

Любая помощь была бы принята с благодарностью!

EDIT

Пожалуйста, дайте мне знать, если я должен уточнить более подробно.

UPDATE: Проблема была вызвана 2 вещи и возможно сочетание двух: 1. Контейнер для карты была добавлена ​​динамически с JavaScript в другой DIV 2. Ширина и высота контейнера был установлен в 0 чтобы скрыть карту.

Итак, решение для меня состояло в том, чтобы отобразить содержащий div вместе с остальной частью DOM. Чтобы «спрятать» карту, я позиционировал ее полностью за пределами экрана.

Надеюсь, что это поможет другим решить подобные проблемы.

ответ

0

ATL в обращении к Active Template Library в Windows. ATL в Windows представляет собой набор основанных на шаблонах классов C++, которые позволяют разработчикам создавать объекты COM (скорее, как MFC и ActiveX).

10.00 здесь просто относится к используемой версии ATL. Видя это, вероятно, означает, что объект COM (GEPlugin в этом случае) не был создан или правильно инициализирован в браузере. Пустой экран с номером версии в центре - это то, что выглядит плагин, прежде чем он загрузит контент.

Таким образом, это не совсем сообщение об ошибке - действительно, можно сказать, что на самом деле появляется сообщение об ошибке, которое вы видите.

Во всяком случае, чтобы ответить на ваш вопрос простыми словами, это означает, что версия ATL, которая использовалась для создания плагина, была версией 10.00.

На практике это означает, что плагин не смог правильно инициализировать по какой-либо причине.

+0

Спасибо за ваш ответ. Вы случайно знаете, что могло измениться из версии, которая работает в следующих версиях, где плагин не может инициализировать? – user1632306

+0

На самом деле трудно сказать, что я видел эту проблему только в C# при использовании старых версий плагина (предварительная версия 6) при попытке загрузить api в элемент управления браузера, который не имеет базового набора URL-адресов. Без просмотра вашего кода невозможно сказать, является ли это ошибкой с плагином или кодом в этом случае. Тем не менее, одно изменение, которое может быть фактором, - это более поздние версии плагина, более суетливые по типам - так что двойная проверка любых переменных, которые вы передаете, - это ожидаемые типы (т. Е. Не передавать 1 для true, 0 для false или строка, когда ожидается число) – Fraser

Смежные вопросы