Сеточная система для трехмерной Земли

В общем, мне поручили «воссоздать» трехмерную Землю, состоящую из (очень маленьких) плиток, сделанных из изображений NASA Landsat 8 (png). Каждая точка на Земле отображается один раз каждые 16 дней или около того, и API, который я использую, предоставляет самые последние изображения (т. е. их нельзя скомпилировать в автономном режиме и использовать статически).

Эти тайлы имеют размер ~150 КБ каждый и имеют ширину и высоту 0,025 широты/длины. Это означает, что мне, вероятно, придется использовать статическую сетку для низких уровней масштабирования, и когда пользователь увеличивает масштаб, тайлы Landsat будут динамически генерироваться на основе их окна просмотра.

Кто-нибудь из вас уже создавал 3D-Землю с пользовательскими тайлами? Я искал API WebGL Earth, но он очень ограничен. Я также рассмотрел Cesium, но не уверен, что он способен на то, что мне нужно. делать.

По сути, я ищу 3D-модель Земли (или даже просто сферы), которая позволит мне «приклеивать» изображения к определенным точкам широты и долготы. В противном случае, я полагаю, мне просто придется сделать сферу в ThreeJs и выполнить расчеты самостоятельно, но я боюсь, что без использования уже существующей системы карт (например, Leaflet), все это будет совершенно неточно.


person j_d    schedule 02.07.2015    source источник


Ответы (1)


Цезий уже может делать именно то, что вы хотите, довольно легко. В зависимости от API, который вы используете, есть большая вероятность, что у нас уже есть поставщик изображений, который может его использовать. Большинство описанных вами изображений обычно используют один из основных стандартов. Если нет, реализация собственного провайдера — это всего пара десятков строк кода.

Я рекомендую вам ознакомиться с руководством по Imagery Layers, чтобы получить начал и не стесняйтесь задавать вопросы на нашем форуме.

Если вы можете предоставить более подробную информацию, я могу дать вам более конкретные рекомендации.

person Matthew Amato    schedule 02.07.2015
comment
Спасибо, я склонялся к Цезию. Меня больше всего беспокоит то, что это ВООБЩЕ не кажется легким - каталог размером 30 МБ для включения в мой проект ?? Я сомневаюсь, что API, который я использую, имеет поставщика изображений, поскольку это API NASA. Но я не против написать один. Я отправил еще один вопрос здесь о моем беспокойстве с размером Цезия. - person j_d; 02.07.2015
comment
Вы ошибаетесь относительно размера Цезия. Я не уверен, откуда вы берете это число 30 МБ. Предполагая традиционную веб-разработку (без модулей), основной файл Cesium.js имеет размер всего 432 КБ, сжатый gzip, но я отвечу на ваш связанный вопрос, а не буду вдаваться в подробности здесь. - person Matthew Amato; 02.07.2015
comment
Последний выпуск Cesium весит 39 МБ, но, возможно, я запутался в зависимостях. - person j_d; 02.07.2015
comment
ZIP-файл выпуска содержит намного больше, чем то, что вам нужно для фактического развертывания ваших собственных приложений (примеры/документация/и т. д.). Для сравнения, Three.js, которая является самой популярной низкоуровневой библиотекой WebGL, можно загрузить 123 МБ, но Приложение Three может извлечь только 300 КБ JavaScript (меньше, чем сжато). Как я уже сказал, сейчас я пишу ответ на ваш другой вопрос. - person Matthew Amato; 02.07.2015
comment
Да, я знаком с ThreeJs и часто им пользуюсь. Я включил скрипт Cesium и css, но получал ошибки консоли. Я поищу ваш ответ в отдельном вопросе, ура. - person j_d; 02.07.2015
comment
Не могли бы вы подробнее рассказать о создании собственного поставщика изображений? API NASA, который я использую, принимает запросы GET и отправляет обратно массив JSON, одним из параметров которого является URL-адрес изображения. Эти изображения необходимо запрашивать через определенную точку широты/долготы, и каждое изображение имеет ширину и высоту 0,025 градуса; т.е. один запрос изображения для каждого квадрата 0,025x0,025 на земном шаре. Очевидно, что это много запросов, поэтому их нужно ограничить определенным уровнем масштабирования. - person j_d; 04.07.2015