Задачей консоли, служит отображение “тотальных” ошибок движка, она служит подсказкой для разработчика и она справляется с этой задачей хорошо. Как правило, консоль не должно быть видно, но если она появилась(да еще и с красным цветом), как у вас, значит глобус не запустится(скорее всего), и причина по которой глобус не запустился, должна отображаться на консоли.
Возможно некоторые ошибки, такие как “WebGL не запустится”, “Поменяйте железо”, “Обновите браузер”, следует показывать в более удобоваримом виде…скажем в модальном окне…я подумаю над этим, в любом случае спасибо за замечание. Если у вас получится запустить на другой машине(например у меня работает и на айпаде и на смартфоне), где глобус запустится, было бы хорошо узнать ваше мнение по тому, что должно работать.
Нет, к сожалению такого примера нет, но вся библиотека(это два файла js и css) весит не больше 600 Кб, тайлы и рельеф загружаются онлайн. АПИ позволяет использовать настроить источники оффлайн, например натайлить тот же ОСМ и натайлить рельеф, из своего источника или глобусный. Идея хорошая, как для примера, но ее надо подготовить.
Рельеф:
Я предлагаю(предполагал, когда делал механизм загрузки рельефа), что каждый тайл рельефа глобуса(карты), представляет собой регулярную сетку(меркаторовская), в каждой ячейке которой записана высота. Например тайл рельефа тех высот которые по умолчанию работают в глобусе имеет размерность 33x33 высот(ячеек) т.е. клеток в ячейке 2^5, (в цезиуме, если я не ошибаюсь 2^6, в гугл земле 2^5). Например для глобуса я натайлил кеш из dem файлов и храню его на сервере, ничто мне не мешает натайлить кеш локально. Правда весит много, весь рельеф около 70 Гб(http://viewfinderpanoramas.org/), а кеш под терабайт(чуть меньше).
Пример тайла с рельефом: http://earth3.openglobus.org/12/1344/3846.ddm
Если вы хотите использовать свой формат(например серые тайлы с геосервера), не зависимо от источника(расположения), в АПИ необходимо добавить свой класс TerrainProvider, которому вы указываете размер сетки, адрес источника(если есть), и “виртуальный”(javascipt) метод, в котором вы свой формат переделываете в регулярную сетку тайла и отдаете в глобус. Таким образом вы можете подключить любой источник с рельефом, можно даже програмный какойнибудь шум Перлинга сделать(эти вещи я планирую сделать в примерах, их там уже около 30, но такого еще не делал, не думал что это будет интереснее чем скажем отображение видео, нерасчитал.)
Растр:
Тоже самое, как в лифлете или опенлеерсе: растровые тайлы, указываются источники, или используются АПИ как в случае с Яндексом или Гуглом. т.е. скачали в папку тайлы и указали ее как источник. Например вот здесь: http://176.194.189.20/earth/
Конечно будет пример. Меня например тоже интересует рельеф, но сейчас есть только один источник, есть в планах пример с источником из Цезиума(открытый источник), или со своего геосервера. Про оффлайн не думал, буду иметь ввиду.
Глобус задумывался как открытый проект, для того чтобы каждый мог подстроить его под свои нужды. Для этого существует система контролов(плагинов). Контрол - это объект, класс которого наследует базовый контрол, у которого есть метод доступ к интерфейсу всего движка: сценам, камерам, шейдерам, слоям, событиям, window/document, webgl, и т.д. Пример контрола, который добавляет кнопку, при нажатии камера “летит домой”: http://openglobus.org/examples/CustomControl/customControl.html
Практически любой специализированный механизм удобно делать в виде контрола, например контрол отвечающий за навигацию мышкой, или на тачпаде; контрол, который устанавливает Солнце в позицию относительно даты и времени; контрол отображения Частоты кадров в секунду; контрол который рисует координатную сетку, как в ГуглЗемле(который тоже ждет своей очереди) и т.д. https://github.com/OpenGlobus/OpenGlobus/tree/master/src/og/control
Разработанный вами контрол, может остаться в вашем проекте, а может быть добавлен в список контролов для глобуса, как в любой стандартной схеме опенсорс проектов.
Да уж, про фактор 5 я явно погорячился, а вот фактор 3 уклоны, которые пешеходами воспринимаются как значительные, как раз делает визуально заметными и при просмотре в вашей библиотеке. Так что вы эту фичу не выбрасывайте, пригодится.
А что за формат карты рельефа ddm? Откуда данные, чем конвертированы? Я смотрю, там нет лишнего шума, применялась какая-то фильтрация/сглаживание? Можно ли скачать всю планету? Давно хочу нарезать тайлы с рельефом, как с затенением (hill shading), так и с раскрашенной картой высот и изолиниями.
В данных есть пробелы. Качество уже не вспомню какое, источник предоставляю ниже по тексту. Тайл с расширением ddm - это простой массив чисел - высот в метрах, тип float(простите кажется integer но также 4 байта), представляющий сетку размером 33х33. Тайл веб меркаторовской сетки. Кеш тайлов сделан из данных скачанных по этой ссылке http://www.viewfinderpanoramas.org/Coverage%20map%20viewfinderpanoramas_org3.htm точность srtm30 примерно 90 метров между высотами. Исходные данные хранятся в *.hgt файлах wgs84 размером 1х1 градус, это видно скачав клетку с приведенного сайта. Тайлил при помощи утилиты https://github.com/OpenGlobus/OpenGlobus/tree/master/Tools/HeightsAdapter/HeightsAdaptater но на нее нет документации, т.к. я планировал чтобы глобус имел возможность подключать любые подходящие источники с высотами например свой источник тайлов на геосервере, или открытые данные Cesium AGI, но заодно сделал свой формат, для простоты и эксперимента. Если нужно подробнее - поясню в картинках. Скажите.
п.с.
Данные на глобусе рендерятся “как есть” с применением карты нормалей, которая строится прямо по полученным данным из ddm, т.е. интерактивно, сразу после загрузки тайла. При рендеринге применяется небольшой фильтр - блюр, который дает такой приятный шейдинг(который к сожалению приводит к небольшим артефактам по краям)но зато экономит траффик и делает узор рельфа читаемым и понятным.