Информацию об экспорте в другие форматы, включая изображения, видео и таблицы (векторные данные), см. в разделе «Экспорт данных» .
Обзор
Чтобы отобразить данные изображения (растровые данные) на онлайн-карте, вы можете экспортировать фрагменты карты с помощью Export.map.toCloudStorage()
. Эта функция экспортирует пирамиду фрагментов карты в корзину Cloud Storage, откуда ее можно обслуживать публично или конфиденциально. Это полезно, когда данные вашего изображения слишком велики, чтобы их можно было наложить как одно изображение. Эти плитки используют координаты плиток Google Map и подходят для отображения с помощью платформы Google Maps (API Карт), Google Earth для Интернета и других картографических платформ. Плитки можно легко просмотреть на Картах Google или на Земле, используя HTML-файлы, предоставленные при экспорте.
Существует ряд настроек и шагов для экспорта, которые могут потребоваться, а могут и не потребоваться, в зависимости от того, как вы планируете использовать или публиковать свои плитки. Некоторые картографические платформы требуют, чтобы плитки были общедоступными, а некоторые поддерживают частные плитки. Если вы используете один из API Карт Google, вам, вероятно, понадобится ключ API платформы Google Карт. Если вы передаете плитки в Google Earth или другие картографические платформы, вам, вероятно, потребуется установить соответствующие параметры уровня доступа и доступа JS (CORS), в зависимости от того, как вы планируете использовать свои плитки. Необходимые настройки см. в разделе рекомендаций для конкретных платформ ниже.
Экспорт фрагментов карты в облачное хранилище
В следующем примере экспортируются фрагменты изображения Landsat для территории в Калифорнии.
Редактор кода (JavaScript)
// --- Example Export Map Tiles - basic --- // Specify area to clip/export, setup image and preview on map. var exportRegion = ee.Geometry.BBox(-122.9, 37.1, -121.2, 38.2); var landsatImage = ee.Image('LANDSAT/LC09/C02/T1_TOA/LC09_044034_20220111') .select(['B4', 'B3', 'B2']) .visualize({min: 0.02, max: 0.4, gamma: 1.2}) .clip(exportRegion); Map.addLayer(landsatImage, {}, 'landsatImage'); Map.centerObject(exportRegion); // Set up Export task. Export.map.toCloudStorage({ image: landsatImage, description: 'mapTilesForEE', bucket: 'yourBucketName', // replace with your GCS bucket name fileFormat: 'auto', maxZoom: 13, region: exportRegion, writePublicTiles: true });
import ee import geemap.core as geemap
Колаб (Питон)
# --- Example Export Map Tiles - basic --- # Specify area to clip/export, setup image and preview on map. export_region = ee.Geometry.BBox(-122.9, 37.1, -121.2, 38.2) landsat_image = ( ee.Image('LANDSAT/LC09/C02/T1_TOA/LC09_044034_20220111') .select(['B4', 'B3', 'B2']) .visualize(min=0.02, max=0.4, gamma=1.2) .clip(export_region) ) m = geemap.Map() m.add_layer(landsat_image, {}, 'landsatImage') m.center_object(export_region) display(m) # Set up Export task. task = ee.batch.Export.map.toCloudStorage( image=landsat_image, description='mapTilesForEE', bucket='yourBucketName', # replace with your GCS bucket name fileFormat='auto', maxZoom=13, region=export_region, writePublicTiles=True, ) task.start()
Обратите внимание, что при этом в указанном сегменте Cloud Storage создается новый каталог, имя которого по умолчанию соответствует параметру description
. Вы можете изменить имя каталога или указать подкаталоги с помощью параметра path
. Вы можете использовать файлы index.html и Earth.html в выходном каталоге для предварительного просмотра фрагментов на Картах или Земле.
Опции ACL и CORS
В приведенном выше примере задаются списки ACL (список управления доступом) плиток, чтобы сделать их общедоступными посредством прямого запроса, но не задается JS Access корзины (настройки CORS), чтобы разрешить веб-приложениям доступ к ним. Это означает, что эти экспортированные фрагменты можно просмотреть на картах и в предварительном просмотре Земли, но они не будут полезны для других платформ, требующих JS Access. Предполагается, что вы являетесь владельцем выходного сегмента. Если вы являетесь автором указанного выходного сегмента (но не его владельцем), установите для writePublicTiles
значение false , чтобы использовать объектный ACL по умолчанию для выходного сегмента.
Если вы хотите открыть свои плитки для публичного доступа для всех веб-приложений, добавьте bucketCorsUris: ['*']
к параметрам задачи. Обратите внимание, что полный общедоступный доступ JS может быть нежелателен, если существует риск того, что третьи лица будут использовать ваши плитки и понести расходы на облако. Чтобы ограничить это, вы можете ограничить JS Access только веб-приложениями в определенных доменах или URL-адресах. Обратите внимание, что настройки JS Access (CORS) применяются на уровне всего сегмента, а не на уровне папки или объекта.
ACL и CORS можно установить с помощью параметров writePublicTiles
и bucketCorsUris
соответственно или из диалогового окна задачи экспорта, как показано ниже:

Export.map.toCloudStorage()
.- Доступ к просмотру/загрузке . Если вам вообще нужен доступ (например, из редактора кода или приложений Earth Engine), вам нужно будет сделать плитки «Общедоступными».
- JS-доступ . Сегмент, в который экспортируется карта, должен быть удобочитаемым, если вы хотите, чтобы редактор кода, приложения Earth Engine или другие веб-приложения имели доступ к плиткам. Эти параметры запроса между источниками (CORS) должны быть настроены на уровне сегмента. Для удобства в диалоговом окне экспорта Earth Engine можно настроить CORS для вашего сегмента во время экспорта.
- ПРИМЕЧАНИЕ. Настройки JS Access/CORS применяются на уровне корзины, а НЕ на уровне папки или объекта, поэтому изменение настроек приведет к их обновлению для всех папок и объектов в корзине. Узнайте больше в документации Cloud Storage CORS , в том числе о том, как просмотреть текущую конфигурацию CORS для корзины.
Список параметров
Ниже приведен список всех параметров задачи экспорта фрагментов карты с указанием имени параметра (аргумента) в коде и соответствующего поля в диалоговом окне задачи (если применимо). Обратите внимание, что некоторые поля являются взаимоисключающими (например, maxzoom и Scale). Дополнительную информацию см. в документации Export.map .
Аргумент в коде | Поле в диалоге задачи | Примечания |
---|---|---|
изображение | н/д | Изображение для экспорта в виде плиток. Должно быть изображение, а не ImageCollection. |
описание | Название задачи | Удобочитаемое имя задачи. По умолчанию «myExportMapTask». Оно также используется в качестве имени папки для плиток, если не указан параметр «путь» (выходной префикс). |
ведро | Название сегмента GCS | Целевой сегмент для записи. |
формат файла | Формат файла | Формат файла фрагментов карты: «auto», «png» или «jpg». По умолчанию установлено значение «авто», что означает, что непрозрачные плитки будут закодированы как «jpg», а плитки с прозрачностью — как «png». |
путь | Выходной префикс | Строка, используемая в качестве пути вывода. Завершающий знак "/" необязателен. По умолчанию описание задачи (имя задачи) |
writePublicTiles | Посмотреть/загрузить уровень доступа | Следует ли записывать общедоступные плитки вместо использования списка управления доступом к объектам сегмента по умолчанию. По умолчанию установлено значение true, а вызывающий является ВЛАДЕЛЬЦЕМ корзины. |
МаксЗум | Максимальное разрешение и максимальный зум | Максимальный уровень масштабирования фрагментов карты для экспорта. |
шкала | Максимальное разрешение и максимальный масштаб | Максимальное разрешение изображения в метрах на пиксель, как альтернатива «maxZoom». Масштаб будет преобразован в наиболее подходящий максимальный уровень масштабирования на экваторе. |
минZoom | Максимальное разрешение и минимальный зум | Необязательный минимальный уровень масштабирования фрагментов карты для экспорта. По умолчанию равно нулю. |
область | н/д | LinearRing, Polygon или координаты, представляющие регион для экспорта. Подробности смотрите в документации. |
пропуститьEmptyTiles | н/д | Если это правда, пропустите запись пустых (т.е. полностью прозрачных) фрагментов карты. По умолчанию ложь. |
картыApiKey | Ключ API Карт | Используется в index.html для инициализации API Карт Google. Это удалит с карты сообщение «только для целей развития». |
ведроКорсУрис | Добавьте JS Access (и веб-сайт, чтобы разрешить) | Список доменов (например, https://code.earthengine.google.com), которым разрешено получать экспортированные плитки с помощью JavaScript (CORS). |
Масштабирование и масштабирование
В предыдущем примере maxZoom
установлено значение 13
. Уровни масштабирования соответствуют сеткам пикселей разного размера, с помощью которых можно отобразить глобальную карту. (Подробную информацию см. в справочнике по координатам пикселей .) Из-за кривизны Земли разрешение пикселей при данном уровне масштабирования варьируется в зависимости от широты. В частности, количество метров на пиксель уменьшается в коэффициент cos( широта ). В следующей таблице показаны метры на пиксель на каждом уровне масштабирования на экваторе для проекции Google Mercator:
Уровень масштабирования | Размер пикселя (по экватору) | Уровень масштабирования | Размер пикселя (по экватору) |
---|---|---|---|
0 | 156 км | 10 | 152 м |
1 | 78 км | 11 | 76 м |
2 | 39 км | 12 | 38 м |
3 | 20 км | 13 | 19 м |
4 | 10 км | 14 | 9,6 м |
5 | 4,9 км | 15 | 4,8 м |
6 | 2,4 км | 16 | 2,4 м |
7 | 1,2 км | 17 | 1,2 м |
8 | 611 м | 18 | 0,6 м |
9 | 305 м | 19 | 0,3 м |
20 | 0,15 м |
Обратите внимание на предыдущую таблицу, что maxZoom
установленный в примере, соответствует 19 метрам на экваторе и меньше в более высоких широтах. Это меньше номинального разрешения входного изображения в 30 угловых секунд на пиксель. В результате карту, отображаемую в выходном файле index.html, можно увеличивать до тех пор, пока на карте не станут видны пиксели в исходном разрешении. Чтобы ограничить отображение карты собственным разрешением в пикселях, установите для maxZoom
значение, соответствующее собственному разрешению или меньшее.
Рекомендации для конкретных платформ
Ниже приведен ряд платформ, на которых вы можете просматривать и использовать фрагменты карты. В каждом разделе указано, какие настройки необходимы для работы плиток с данной платформой, а также копия примера кода с необходимыми параметрами.
Использование фрагментов карты в Earth Engine (редактор кода или приложения EE)
Если вы хотите экспортировать фрагменты карты только для повторного использования в Google Earth Engine или приложениях EE, установите для параметра «Уровень доступа» значение «Общедоступный», а для параметра «Уровень доступа JS» (в диалоговом окне задачи) установите значение «Добавить доступ к Earth Engine» или «Добавить публичный доступ». Альтернативно вы можете установить эти параметры в коде:
writePublicTiles: true, bucketCorsUris: ['https://code.earthengine.google.com','https://*.earthengine.app']
Как только вы экспортируете плитки, они станут доступны в Earth Engine.
Редактор кода (JavaScript)
// --- Export Map Tiles for use in EE --- // Use image setup code from example at top of the page. // Set up Export task. Export.map.toCloudStorage({ image: landsatImage, description: 'mapTilesForEE', bucket: 'yourBucketName', // replace with your GCS bucket name fileFormat: 'auto', maxZoom: 13, region: exportRegion, writePublicTiles: true, bucketCorsUris: ['https://code.earthengine.google.com','https://*.earthengine.app'] });
import ee import geemap.core as geemap
Колаб (Питон)
# --- Export Map Tiles for use in EE --- # Use image setup code from example at top of the page. # Set up Export task. task = ee.batch.Export.map.toCloudStorage( image=landsat_image, description='mapTilesForEE', bucket='yourBucketName', # replace with your GCS bucket name fileFormat='auto', maxZoom=13, region=export_region, writePublicTiles=True, bucketCorsUris=[ 'https://code.earthengine.google.com', 'https://*.earthengine.app', ], ) task.start()
Просмотр предварительного просмотра Google Maps
Чтобы просмотреть фрагменты карты на Картах Google, перейдите в выходную папку в Google Cloud Storage и откройте файл index.html в своем браузере. Откроется полностраничная карта, показывающая ваши плитки на Картах Google с использованием Javascript API платформы Google Maps, например: index.html . При базовом экспорте фрагменты базовой карты будут выделены серым цветом и помечены водяными знаками «Только для целей разработки». Чтобы избежать этого и отобразить стандартные фрагменты базовой карты Google, сгенерируйте ключ API и включите его в настройки экспорта.
Если вы предоставите ключ API во время экспорта, эта страница предварительного просмотра станет общедоступной, ее можно будет встроить в другие страницы, и для нее не требуется, чтобы зритель был зарегистрированным пользователем Earth Engine.
Редактор кода (JavaScript)
// --- Export Map Tiles for use with Map Preview --- // Use image setup code from example at top of the page. // Set up Export task. Export.map.toCloudStorage({ image: landsatImage, description: 'mapTilesForMapPreview', bucket: 'yourBucketName', // replace with your GCS bucket name fileFormat: 'auto', maxZoom: 13, region: exportRegion, writePublicTiles: true, mapsApiKey: 'fakeMapsApiKey012345' // replace with a valid API Key });
import ee import geemap.core as geemap
Колаб (Питон)
# --- Export Map Tiles for use with Map Preview --- # Use image setup code from example at top of the page. # Set up Export task. task = ee.batch.Export.map.toCloudStorage( image=landsat_image, description='mapTilesForMapPreview', bucket='yourBucketName', # replace with your GCS bucket name fileFormat='auto', maxZoom=13, region=export_region, writePublicTiles=True, mapsApiKey='fakeMapsApiKey012345', # replace with a valid API Key ) task.start()
Просмотр предварительного просмотра Google Earth
Чтобы просмотреть фрагменты карты в Google Планета Земля в Интернете, убедитесь, что вы экспортируете фрагменты с уровнем доступа, установленным на «Общедоступный». Затем перейдите в папку вывода в Google Cloud Storage, откройте в браузере файл «earth.html», например этот: Earth.html , и нажмите появившуюся кнопку «Открыть в Google Earth». Откроется Google Планета Земля и ваши плитки отобразятся на 3D-карте. Рекомендуется также установить уровень «Доступ к JS» на «Общедоступный», что позволит вам использовать плитки в Google Планета Земля без файла предварительного просмотра (который использует прокси-сервер, если плитки не имеют необходимых настроек JS Access/CORS).
Чтобы загрузить файл KML, содержащий ссылку на ваши данные, щелкните трехточечное меню в Google Earth и выберите «Экспортировать как файл KML». Примечание. Созданный таким образом файл KML НЕ совместим с Google Earth Pro (версией Земли для настольных компьютеров).
Редактор кода (JavaScript)
// --- Export Map Tiles for use with Earth Preview --- // Use image setup code from example at top of the page. // Set up Export task. Export.map.toCloudStorage({ image: landsatImage, description: 'mapTilesForEarthPreview', bucket: 'yourBucketName', // replace with your GCS bucket name fileFormat: 'auto', maxZoom: 13, region: exportRegion, writePublicTiles: true, bucketCorsUris: [] // leaving blank is ok for Earth Preview only // for direct use in Earth, set to: ['https://earth.google.com'] // or set to public: ['*'] (risk of misuse) });
import ee import geemap.core as geemap
Колаб (Питон)
# --- Export Map Tiles for use with Earth Preview --- # Use image setup code from example at top of the page. # Set up Export task. task = ee.batch.Export.map.toCloudStorage( image=landsat_image, description='mapTilesForEarthPreview', bucket='yourBucketName', # replace with your GCS bucket name fileFormat='auto', maxZoom=13, region=export_region, writePublicTiles=True, bucketCorsUris=[], # leaving blank is ok for Earth Preview only # for direct use in Earth, set to: ['https://earth.google.com'] # or set to public: ['*'] (risk of misuse) ) task.start()
Публикация с помощью платформы Google Maps (API Карт)
Чтобы создать набор фрагментов карты, готовый к публичной публикации через платформу Google Maps, вам необходимо иметь или создать ключ API и убедиться, что для уровня доступа установлено значение «Общедоступный». В зависимости от того, как ваше приложение Maps API получает доступ к плиткам, вам также может потребоваться установить соответствующий «Уровень доступа JS» для вашего сайта. После экспорта плиток выходные данные на вкладке «Задачи» редактора кода содержат URL-адрес ваших плиток с соответствующими переменными для использования с API Google Maps, например: https://storage.googleapis.com/my_bucket/my_test_tiles/{Z}/{X}/{Y}
Редактор кода (JavaScript)
// --- Export Map Tiles for use with Maps Platform APIs --- // Use image setup code from example at top of the page. // Set up Export task. Export.map.toCloudStorage({ image: landsatImage, description: 'mapTilesForMapsPlatform', bucket: 'yourBucketName', // replace with your GCS bucket name fileFormat: 'auto', maxZoom: 13, region: exportRegion, writePublicTiles: true, bucketCorsUris: ['*'], // '*' = All domains = risk of misuse // For better protection, specify the domain(s) where the // tiles will be used, eg: ['https://mysite.mydomain.com'] mapsApiKey: 'fakeMapsApiKey012345' // replace with a valid API Key });
import ee import geemap.core as geemap
Колаб (Питон)
# --- Export Map Tiles for use with Maps Platform APIs --- # Use image setup code from example at top of the page. # Set up Export task. task = ee.batch.Export.map.toCloudStorage( image=landsat_image, description='mapTilesForMapsPlatform', bucket='yourBucketName', # replace with your GCS bucket name fileFormat='auto', maxZoom=13, region=export_region, writePublicTiles=True, bucketCorsUris=['*'], # '*' = All domains = risk of misuse # For better protection, specify the domain(s) where the # tiles will be used, eg: ['https://mysite.mydomain.com'] mapsApiKey='fakeMapsApiKey012345', # replace with a valid API Key ) task.start()
Публикация в Google Earth (в Интернете)
Чтобы создать набор фрагментов карты для публичной публикации через Google Earth, вам необходимо установить уровень доступа «Общедоступный», а уровень доступа JS — разрешить «https://earth.google.com» (или «Общедоступный»). После экспорта вы можете просмотреть их в Google Earth, используя файл Earth.html в каталоге экспорта (см. выше).
Редактор кода (JavaScript)
// --- Export Map Tiles for use with Google Earth web --- // Use image setup code from example at top of the page. // Set up Export task. Export.map.toCloudStorage({ image: landsatImage, description: 'mapTilesForEarthWeb', bucket: 'yourBucketName', // replace with your GCS bucket name fileFormat: 'auto', maxZoom: 13, region: exportRegion, writePublicTiles: true, bucketCorsUris: ['https://earth.google.com'] // ['*'] will also work, but risks misuse });
import ee import geemap.core as geemap
Колаб (Питон)
# --- Export Map Tiles for use with Google Earth web --- # Use image setup code from example at top of the page. # Set up Export task. task = ee.batch.Export.map.toCloudStorage( image=landsat_image, description='mapTilesForEarthWeb', bucket='yourBucketName', # replace with your GCS bucket name fileFormat='auto', maxZoom=13, region=export_region, writePublicTiles=True, bucketCorsUris=['https://earth.google.com'], # ['*'] will also work, but risks misuse ) task.start()
Экспортировав плитки, вы можете добавить их в проект в веб-версии Google Earth . Вывод на вкладке «Задачи» редактора кода (показанный ниже) предоставляет URL-адрес ваших плиток с соответствующими переменными для использования в Google Earth, например: https://storage.googleapis.com/my_bucket/my_test_tiles/$[level]/$[x]/$[y]

Чтобы использовать это в Интернете Earth, создайте функцию «Наложение плитки» и добавьте этот URL-адрес в качестве «URL-адреса наложения». Если ваш набор данных не является глобальным и вы хотите избежать ошибок запроса плиток для несуществующих плиток, обязательно откройте раздел «Параметры наложения» и настройте четыре параметра «Покрытие плиток», чтобы они соответствовали экстентам экспортированных плиток.

Публикация на других картографических платформах
При экспорте плиток для использования с другими платформами или приложениями необходимые настройки будут зависеть от того, как они получают доступ к плиткам. Чтобы сделать плитки максимально доступными, установите уровень доступа «Общедоступный», а уровень доступа JS — «Общедоступный».
Создание ключа API платформы Google Maps
Если вы планируете использовать фрагменты карты с платформой Google Maps или хотите просмотреть их на Картах без базовой карты, ограниченной разработчиком, вам потребуется иметь или создать ключ API платформы Google Maps и либо включить его в настройки экспорта, либо добавить его на сайт(ы) позже. Это не обязательно для использования с Google Earth.
Когда вы экспортируете фрагменты карты из Earth Engine, мы создаем образец HTML-страницы, хранящийся в выходном каталоге, чтобы вы могли просмотреть фрагменты с помощью API JavaScript платформы Google Maps. При желании вы можете предоставить ключ API платформы Google Maps во время экспорта, который будет использоваться для вызовов API образца просмотра.
Чтобы сгенерировать ключ API платформы Google Карт сейчас, выполните следующие четыре шага:
- Нажмите кнопку «Создать ключ API платформы Карт» ниже.
- Выберите облачный проект для своего ключа API и нажмите «ДАЛЕЕ».
- Нажмите , чтобы скопировать новый ключ, и вставьте его в диалоговое окно «Экспорт карты» в редакторе кода.
- (Рекомендуется) Щелкните ссылку Консоль API под новым ключом, чтобы установить ограничения для реферера. Более подробную информацию см. в разделе «Ограничения по рефералам и приложениям» .
Создать ключ API платформы Карт


Добавление ограничений реферера в ключ API
При добавлении ключа API ограничения реферера гарантируют, что только назначенные приложения могут использовать ваш ключ. Вы можете установить или изменить ограничения реферера в любое время, посетив страницу «Учетные данные» в Cloud Console и выполнив следующие действия:
- Убедитесь, что в раскрывающемся списке вверху экрана выбрано правильное имя проекта.
- Нажмите на созданный выше ключ API платформы Карт, чтобы просмотреть подробную информацию о нем.
- Выберите HTTP-рефереры (веб-сайты) и укажите сегмент Cloud Storage, указанный в
Export.map.toCloudStorage
используя следующий шаблон:https://storage.googleapis.com/{bucket}/*
- Нажмите «Сохранить». Должен появиться индикатор «Сохранение...».
