Как скопировать отдельный участок изображения с карты Яндекса на компьютер

Обновлено: 21.11.2024

Вы можете добавлять изображения Google Maps или OpenStreetMap в качестве статических фоновых изображений в Tableau, а затем наносить на них точки данных. Чтобы нанести точки данных на фоновое изображение GoogleMaps или OpenStreetMap, вам нужны координаты широты и долготы ваших данных.

В этом разделе описывается, как получить координаты широты и долготы для Карт Google и OpenStreetMap, а также как нанести их на фоновое изображение в Tableau.

Шаг 1. Найдите координаты карты

Следуйте приведенным ниже инструкциям, чтобы найти координаты карты для Google Maps или OpenStreetMaps.

Вариант 1. Сопоставьте точки данных с Google Maps

После того как вы нашли нужную область, наведите указатель мыши на крайнюю восточную сторону области и запишите координату долготы (отображается в правом нижнем углу карты). Сделайте то же самое для самой западной стороны области.

Наведите указатель мыши на самую северную часть области и запишите координаты широты. Сделайте то же самое для самой южной части области.

Теперь у вас должны быть две координаты широты (одна верхняя и одна нижняя) и две координаты долготы (одна восточная и одна западная).

Вы будете использовать эти координаты для определения масштаба фонового изображения в Tableau, а также для того, чтобы вы могли наносить точки данных на изображение, используя координаты широты и долготы.

Сделайте скриншот карты и сохраните его на свой компьютер.

Выполните действия, описанные в разделе "Шаг 2. Добавьте изображение карты в качестве фонового изображения", чтобы добавить изображение в качестве фонового изображения в Tableau.

Вариант 2. Сопоставьте точки данных с картой в OpenStreetMap

В верхней строке меню нажмите Экспорт.

На панели «Экспорт» отображаются координаты широты и долготы области просмотра. Вы можете изменить эти координаты, чтобы выбрать другую область.

Запишите координаты, отображаемые в поле.

В правой части страницы щелкните значок "Поделиться", а затем нажмите кнопку "Загрузить".

Выполните действия, перечисленные в разделе "Шаг 2. Добавьте изображение карты в качестве фонового изображения", чтобы добавить изображение в качестве фонового изображения в Tableau.

Шаг 2. Добавьте изображение карты в качестве фонового изображения

Откройте Tableau Desktop и подключитесь к данным, которые вы хотите нанести на изображение карты.

Выберите Карты > Фоновые изображения и выберите источник данных, который вы хотите использовать для нанесения данных на фоновое изображение.

В диалоговом окне "Фоновые изображения" нажмите "Добавить изображение" .

В диалоговом окне "Добавить фоновое изображение" нажмите "Обзор" и перейдите к местоположению изображения карты, которое вы создали ранее на шаге 1. Найдите координаты карты.

В раскрывающемся списке Поле X выберите Долгота (создано) .

В поле "Слева" введите самую восточную долготу на изображении карты.

В поле "Справа" введите крайнюю западную долготу на изображении карты.

В раскрывающемся списке Поле Y выберите Широта (создано) .

В поле Внизу введите самую южную широту на изображении карты.

В поле Верх введите самую северную широту на изображении карты.

По завершении нажмите кнопку "ОК" в диалоговых окнах "Добавить фоновое изображение" и "Фоновые изображения".

Выберите Карты > Фоновые карты > Нет .

Фоновое изображение отображается только при отсутствии фоновой карты.

На панели "Показатели" перетащите "Широту" (созданную) на полку "Строки" и "Долготу" (созданную) на полку "Столбцы".

Ваше фоновое изображение должно появиться в представлении. Если это не так или отображается в неправильном масштабе, выполните следующие действия, чтобы исправить оси.

В представлении дважды щелкните ось Y.

В диалоговом окне "Редактировать ось" в разделе "Диапазон" выберите "Фиксированный".

В текстовом поле Фиксированное начало введите самую нижнюю долготу на изображении карты.

В текстовом поле Фиксированный конец введите самую верхнюю долготу на изображении карты.

Повторите шаги 9–13 для другой оси.

Чтобы узнать, как наносить данные на фоновое изображение, см. шаги 1, 2 и 4 в разделе Поиск координат фонового изображения (ссылка открывается в новом окне) .

Вы можете сохранять элементы с карты на Яндекс.Диск, используя один из поддерживаемых типов файлов.

Эти файлы можно использовать для импорта точек карты в навигационные программы, которые позволяют импортировать координаты GPS. Вы также можете использовать эти файлы с API Яндекс.Карт или для просмотра и сохранения данных в других программах (например, Google Планета Земля).

При экспорте сохраняется только информация об элементах вашей карты.

Чтобы экспортировать элементы:

Нажмите «Экспорт» на панели инструментов «Тип карты»:

В форме Экспорт объектов карты выберите тип файла:

Нажмите Сохранить на Яндекс.Диск.

Ваши элементы карты будут сохранены на Яндекс.Диск в папку Конструктор карт/Экспорт в выбранном вами формате файла с именем [Название карты + Дата + Время].

KML (язык разметки Keyhole): формат на основе XML. Используйте этот формат для импорта элементов карты, созданных в Конструкторе карт, на карту, созданную с помощью API Яндекс.Карт или Google Планета Земля.

Файлы этого типа сохраняют метки (координаты, описание, метку и цвет), линии и многоугольники.

См. Отображение GPX и KML в документации по API Яндекс.Карт, где приведен пример использования файлов KML в API Яндекс.Карт.

Если вы откроете файл с помощью программы, предназначенной для просмотра файлов этого типа (например, Google Earth), вы увидите элементы карты:

XLSX (электронная таблица Microsoft Excel).

Файлы этого типа сохраняют метки (координаты, описание, метку). Столбцы: широта, долгота, описание, метка:

CSV (Значения, разделенные запятыми): текстовый формат для представления табличных данных. Файлы этого типа можно открывать в текстовых и табличных редакторах.

Текст делится на столбцы с помощью специальных символов-разделителей. Чтобы выбрать разделитель, нажмите соответствующую кнопку разделителя: запятая, точка с запятой или табуляция.

В файле этого типа сохраняются метки (координаты, описание, метка, номер).

Координаты хранятся в порядке [широта, долгота].

Если вы откроете файл с помощью программы, предназначенной для просмотра файлов этого типа, вы увидите данные своего элемента карты:

GPX (Формат обмена GPS): текстовый формат на основе XML для хранения данных GPS и обмена ими. Его можно использовать в GPS-приложениях и API Яндекс.Карт (пример). Например, вы можете использовать его для установки маршрутов.

Файлы этого типа сохраняют метки и линии (только координаты для обоих).

ГеоJSON

GeoJSON : формат геоданных, основанный на JSON.

Поддерживается API Яндекс.Карт, OpenLayers, Leaflet, Bing Maps и Yahoo! Карты и другие картографические сервисы (пример) .

В файле этого типа сохраняются метки (координаты, описание, метка, номер, цвет), линии (координаты, описание, цвет) и полигоны (координаты, описание, цвет).

Координаты хранятся в порядке [широта, долгота].

Вы можете сохранять элементы с карты на Яндекс.Диск, используя один из поддерживаемых типов файлов.

Эти файлы можно использовать для импорта точек карты в навигационные программы, которые позволяют импортировать координаты GPS. Вы также можете использовать эти файлы с API Яндекс.Карт или для просмотра и сохранения данных в других программах (например, Google Планета Земля).

При экспорте сохраняется только информация об элементах вашей карты.

Чтобы экспортировать элементы:

Нажмите «Экспорт» на панели инструментов «Тип карты»:

В форме Экспорт объектов карты выберите тип файла:

Нажмите Сохранить на Яндекс.Диск.

Ваши элементы карты будут сохранены на Яндекс.Диск в папку Конструктор карт/Экспорт в выбранном вами формате файла с именем [Название карты + Дата + Время].

KML (язык разметки Keyhole): формат на основе XML. Используйте этот формат для импорта элементов карты, созданных в Конструкторе карт, на карту, созданную с помощью API Яндекс.Карт или Google Планета Земля.

Файлы этого типа сохраняют метки (координаты, описание, метку и цвет), линии и многоугольники.

См. Отображение GPX и KML в документации по API Яндекс.Карт, где приведен пример использования файлов KML в API Яндекс.Карт.

Если вы откроете файл с помощью программы, предназначенной для просмотра файлов этого типа (например, Google Earth), вы увидите элементы карты:

XLSX (электронная таблица Microsoft Excel).

Файлы этого типа сохраняют метки (координаты, описание, метку). Столбцы: широта, долгота, описание, метка:

CSV (Значения, разделенные запятыми): текстовый формат для представления табличных данных. Файлы этого типа можно открывать в текстовых и табличных редакторах.

Текст делится на столбцы с помощью специальных символов-разделителей. Чтобы выбрать разделитель, нажмите соответствующую кнопку разделителя: запятая, точка с запятой или табуляция.

В файле этого типа сохраняются метки (координаты, описание, метка, номер).

Координаты хранятся в порядке [широта, долгота].

Если вы откроете файл с помощью программы, предназначенной для просмотра файлов этого типа, вы увидите данные своего элемента карты:

GPX (Формат обмена GPS): текстовый формат на основе XML для хранения данных GPS и обмена ими. Его можно использовать в GPS-приложениях и API Яндекс.Карт (пример). Например, вы можете использовать его для установки маршрутов.

Файлы этого типа сохраняют метки и линии (только координаты для обоих).

ГеоJSON

GeoJSON : формат геоданных, основанный на JSON.

Поддерживается API Яндекс.Карт, OpenLayers, Leaflet, Bing Maps и Yahoo! Карты и другие картографические сервисы (пример) .

В файле этого типа сохраняются метки (координаты, описание, метка, номер, цвет), линии (координаты, описание, цвет) и полигоны (координаты, описание, цвет).

Максимальный размер файла на Яндекс.Диске — 50 ГБ. Однако мы рекомендуем использовать программу Яндекс.Диск для загрузки файлов размером более 2 ГБ.

Вы также можете перетащить любую папку на страницу Яндекс.Диска или скопировать папку со своего компьютера в программу Яндекс.Диск. Папка автоматически загружается на сервер со всем содержимым.

Чтобы загрузить файлы в отдельную папку с помощью мобильного приложения, сначала создайте папку, а затем откройте ее.

Загрузить из веб-интерфейса

Перетащите на страницу отдельные файлы или целую папку (вы также можете загрузить отдельные файлы, нажав кнопку Загрузить на левой панели или в контекстном меню).

Примечание. Загружать папки из веб-интерфейса можно только с помощью Яндекс.Браузера версии 1.7 и выше, Google Chrome версии 25.0 и выше, Opera версии 17.0 и выше, Mozilla Firefox версии 48.0 и выше, проектных браузеров Gecko версии 48.0 и выше. Если вы используете другой браузер, загрузите папки через программу Яндекс.Диск.

Вы можете продолжить загрузку в фоновом режиме, нажав Свернуть . Вы можете отменить загрузку, пока файлы еще загружаются: нажмите  → Отменить загрузку .

Вы также можете поделиться ссылкой на файл, как только он будет загружен.

Загрузить через программу Яндекс.Диск

Чтобы загрузить файлы с компьютера, установите программу Яндекс.Диск и скопируйте файлы в созданную программой папку.

Все новые файлы и папки в папке Яндекс.Диска на вашем компьютере автоматически загружаются на Яндекс.Диск: данные синхронизируются.

Подробнее о программе Яндекс.Диск в Яндекс.Диске для ПК.

Загрузка с устройств iOS и Android

Мобильные приложения Яндекс.Диска позволяют загружать файлы с телефона, а также делать фотографии и сохранять их прямо на Диск.

Чтобы загружать файлы с телефона или планшета, установите мобильное приложение Яндекс.Диск. Чтобы загрузить файлы через приложение, см. разделы для iOS и Android.

Скопируйте общедоступные файлы и папки на свой Яндекс.Диск

Если кто-то поделится с вами ссылкой на файл или папку, хранящуюся на Яндекс.Диске, вы можете скопировать этот файл или папку на свой Яндекс.Диск.

Чтобы скопировать файл или папку, перейдите по полученной ссылке и нажмите кнопку Сохранить на Яндекс.Диск. Файл или папка будут перемещены в папку «Загрузки» на Яндекс.Диске.

Вы можете получить доступ к папке "Загрузки" на левой панели.

Скачивание общедоступных файлов и папок

Если кто-то поделится с вами ссылкой на файл или папку, хранящуюся на Яндекс.Диске, вы сможете скачать этот файл или папку на свой компьютер или мобильное устройство.

Чтобы сохранить общий файл на своем устройстве, нажмите полученную ссылку и нажмите Загрузить .

Внимание. Вы можете загрузить общую папку на свой компьютер в виде архива, если она содержит менее 500 файлов и ее размер не превышает 5 ГБ.

Проблемы с загрузкой

Файл помечен как вирус

Все файлы размером до 1 ГБ, которые вы создаете, загружаете или храните на Яндекс.Диске, проверяются антивирусной программой Яндекс.Диска. Если антивирусная система помечает файл как подозрительный, скорее всего, он действительно заражен.

Примечание. Разные антивирусные программы могут иметь разные вирусные базы. Это означает, что один антивирус может не найти вирусы в файле, а другой антивирус может пометить его.

Вы можете самостоятельно проверить файл с помощью Virus Total, где файлы проверяются десятками антивирусных продуктов.

Файл не загружается на сервер

Ошибка при загрузке файла может возникнуть по следующим причинам:

Файл больше 10 ГБ. Если вы получаете сообщение об ошибке при загрузке файла, убедитесь, что размер файла меньше 10 ГБ, что является максимальным размером для веб-интерфейса. Для загрузки файлов большего размера используйте программу Яндекс.Диск. Прокси-сервер, брандмауэр или антивирус мешают загрузке

Возможно, вы используете прокси-сервер или дополнительный брандмауэр в дополнение к стандартному брандмауэру ОС. Антивирусное программное обеспечение также может замедлять загрузку. Попробуйте временно отключить антивирусную программу и снова загрузить файлы.

На Яндекс.Диске больше нет места.

Возможно, вам или, если у вас есть доступ к общей папке, владельцу папки не хватило места на Яндекс.Диске.

Когда закончилось место на вашем Яндекс.Диск, доступ к Яндекс.Диску ограничен. Чтобы снять эти ограничения, удалите ненужные файлы, очистите Корзину (файлы в Корзине также занимают место) или купите больше места для хранения. В противном случае ваш доступ к Яндекс.Диску будет заблокирован через 44 дня, а еще через 6 месяцев все ваши файлы будут удалены навсегда. Подробнее об этих ограничениях можно узнать в хранилище Яндекс.Диска.

Я не могу загрузить папку на сервер

Ошибка загрузки папки может возникнуть по следующим причинам:

Содержимое папки было изменено во время загрузки

Во время загрузки папки файлы в папке были перемещены или удалены. Если другая программа перемещает или удаляет файлы, закройте ее. Затем попробуйте снова загрузить папку.

Папка содержит файлы размером более 2 ГБ

Вы не сможете загрузить такие большие файлы на Яндекс.Диск через браузер. Для загрузки файлов большего размера (от 2 до 50 ГБ) используйте программу Яндекс.Диск.

В папке много вложенных папок

Попробуйте заархивировать эту папку, а затем загрузить архив на Яндекс.Диск. Вы также можете загружать папки через программу Яндекс.Диск.

Ваш браузер не поддерживает загрузку папок

Вы можете загружать папки в веб-интерфейсе, только если вы используете Яндекс.Браузер версии 1.7 и выше, Google Chrome версии 25.0 и выше, Opera версии 17.0 и выше. Если вы используете другой браузер, загрузите папки через программу Яндекс.Диск.

У вас нет прав доступа для чтения файла или папки

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

Имя файла или папки слишком длинное или нестандартное

Попробуйте заархивировать эту папку, а затем загрузить архив на Яндекс.Диск.

На Яндекс.Диске больше нет места.

Возможно, вам или, если у вас есть доступ к общей папке, владельцу папки не хватило места на Яндекс.Диске.

Когда на вашем Яндекс.Диске заканчивается место, доступ к Яндекс.Диску ограничивается. Чтобы снять эти ограничения, удалите ненужные файлы, очистите Корзину (файлы в Корзине также занимают место) или купите больше места для хранения. В противном случае ваш доступ к Яндекс.Диску будет заблокирован через 44 дня, а еще через 6 месяцев все ваши файлы будут удалены навсегда. Подробнее об этих ограничениях можно узнать в хранилище Яндекс.Диска.

Скорость загрузки очень низкая

Наиболее распространенной причиной низкой скорости загрузки являются прокси-серверы и брандмауэры, используемые в дополнение к стандартному брандмауэру Windows. Мы рекомендуем временно отключать их при загрузке файлов.

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

Вы также можете экспортировать карту в файл. См. раздел Экспорт элементов карты.

Удерживайте внимание. \\n

Существуют определенные ограничения на создание элементов:

Линия или многоугольник не может содержать более 1000 вершин.

Если количество вершин, которое имеет элемент, превышает максимальное, то элемент может быть автоматически упрощен (т.е. лишние вершины удалены, но таким образом, чтобы сохранить общий вид элемента).

Просто выберите тип карты (нажмите Тип карты на панели инструментов):

Интерактивная карта. Этот тип карты можно перемещать, и пользователи могут взаимодействовать с элементами на ней.

Дополнительную информацию см. в разделе Интерактивная карта.

Статическая карта. Эта карта в формате PNG. Статические карты имеют ограничения на количество элементов, которые они могут включать.

Дополнительную информацию см. в разделе Статическая карта.

Карта для печати. Это изображение карты с высоким разрешением, которое можно распечатать.

Дополнительную информацию об этом типе карты и текущих ограничениях см. в разделе Карта для печати.

Интерактивная карта

Чтобы получить код для вставки вашей карты на ваш сайт, в блог или в мобильное приложение, чтобы пользователи могли взаимодействовать с ней (т. е. перемещать или масштабировать ее, прокладывать маршруты, просматривать описания и т. д.), выберите тип интерактивной карты:

Размер карты . Размеры карты можно задать либо изменив числа в полях «Размер карты» (размер обозначается в пикселях (px)), либо изменив размер выделенной области на карте (для получения дополнительной информации см. Map Constructor API) .

По ширине. Если эта опция включена, ваша карта будет иметь значение параметра width = 100% (дополнительную информацию о параметрах см. в разделе Map Constructor API). В этом случае карта, которую вы встроили на свой сайт, будет занимать всю ширину (100%) блочного элемента:

Скопируйте код из формы, которая позволит отображать вашу карту на веб-сайте или в блоге (доступны два варианта HTML ─ JavaScript или iframe):

Существуют ограничения на использование кода iframe:

Доступен только тип карты (не спутниковая и не гибридная)

Карта может отображаться только в большом масштабе

При использовании кода JavaScript функции поиска, маршрутизации и панорамы недоступны на карте конструктора по умолчанию.

Пример кода с использованием ключа API:

Ваша карта откроется в Яндекс.Картах вместе с информационной панелью (см. выше).

Нажмите кнопку «Поделиться» на этой панели.

В открывшейся форме вы можете скопировать ссылку на вашу карту (или код, позволяющий отобразить вашу карту).

Чтобы получить ссылку, нажмите рядом с соответствующей картой в списке и выберите «Поделиться» в открывшемся меню. Затем скопируйте ссылку на вашу карту из формы. Дополнительную информацию см. в разделе Создание карты.

Статическая карта

Статические карты имеют ограничения на количество элементов, которые они могут включать.

Чтобы получить код для вставки вашей карты в виде статического изображения (которое можно размещать на сайтах, не поддерживающих JavaScript), выберите тип статической карты:

Установить размер карты. Размеры карты можно задать либо изменив числа в полях «Размер карты» (размер обозначается в пикселях (px)), либо изменив размер выделенной области на карте (для получения дополнительной информации см. Map Constructor API) .

Перейдите на панель инструментов "Тип карты" и нажмите "Получить код карты".

Вы можете скопировать код, позволяющий отображать карту, из открывшейся формы. Дополнительные сведения см. в разделе API Map Constructor.

Карта для печати

Чтобы сохранить файл, содержащий изображение карты в высоком разрешении для печати, на Яндекс.Диск или отправить карту прямо на принтер в ее текущем разрешении, выберите тип карты для печати:

Размер карты . Размер карты можно задать либо изменив числа в полях «Размер карты», либо изменив размер выделенной области на карте (дополнительную информацию см. в API конструктора карт).

Для карт, которые можно распечатать, вы можете выбрать единицу измерения: пиксели ( px ), дюймы ( in ) или сантиметры ( cm ).

Формат файла . Выберите формат (PNG или JPG) файла карты.

Качество . Выберите разрешение растрового изображения вашей карты: 96 DPI (для просмотра в WEB) или 300 DPI для печати карты.

Карты с высоким разрешением для печати должны соответствовать следующим условиям:

Они настроены на тип слоя \"карта\"; невозможно создать распечатанную спутниковую или гибридную карту.

Это крупномасштабные карты; невозможно создать карты для печати уменьшенной области.

Вы используете последнюю версию одного из следующих настольных браузеров: Firefox, Chrome, Яндекс.Браузер, Edge, Safari или Opera.

Если вас не беспокоит разрешение вашей карты, нажмите Использовать стандартную печать и напечатайте карту без этих ограничений.

Нажмите Сохранить на Яндекс.Диск (для карт для печати), чтобы сохранить файл карты на Яндекс.Диск. Когда операция завершится, вы получите следующее подтверждающее сообщение:

Ваш файл будет сохранен под именем, которое вы дали своей карте, в папке Конструктора Яндекс.Карт, которая создается автоматически на вашем Яндекс.Диске.

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

Вы также можете экспортировать карту в файл. См. раздел Экспорт элементов карты.

При создании карты учитывайте технические ограничения.

Просто выберите тип карты (нажмите Тип карты на панели инструментов):

Интерактивная карта. Этот тип карты можно перемещать, и пользователи могут взаимодействовать с элементами на ней.

Дополнительную информацию см. в разделе Интерактивная карта.

Статическая карта. Эта карта в формате PNG. Статические карты имеют ограничения на количество элементов, которые они могут включать.

Дополнительную информацию см. в разделе Статическая карта.

Карта для печати. Это изображение карты с высоким разрешением, которое можно распечатать.

Дополнительную информацию об этом типе карты и текущих ограничениях см. в разделе Карта для печати.

Интерактивная карта

Чтобы получить код для вставки вашей карты на ваш сайт, в блог или в мобильное приложение, чтобы пользователи могли взаимодействовать с ней (т. е. перемещать или масштабировать ее, прокладывать маршруты, просматривать описания и т. д.), выберите тип интерактивной карты:

Размер карты . Размеры карты можно задать либо изменив числа в полях «Размер карты» (размер обозначается в пикселях (px)), либо изменив размер выделенной области на карте (для получения дополнительной информации см. Map Constructor API) .

По ширине. Если эта опция включена, ваша карта будет иметь значение параметра width = 100% (дополнительную информацию о параметрах см. в разделе Map Constructor API). В этом случае карта, которую вы встроили на свой сайт, будет занимать всю ширину (100%) блочного элемента:

Скопируйте код из формы, которая позволит отображать вашу карту на веб-сайте или в блоге (доступны два варианта HTML ─ JavaScript или iframe):

Существуют ограничения на использование кода iframe:

Доступен только тип карты (не спутниковая и не гибридная)

Карта может отображаться только в большом масштабе

Не все теги HTML будут работать (см. ограничения )

При использовании кода JavaScript функции поиска, маршрутизации и панорамы недоступны на карте конструктора по умолчанию.

Пример кода с использованием ключа API:

Перейдите на панель инструментов Тип карты и нажмите Открыть в Яндекс.Картах.

Ваша карта откроется в Яндекс.Картах вместе с информационной панелью (см. выше).

Нажмите кнопку «Поделиться» на этой панели.

В открывшейся форме вы можете скопировать ссылку на вашу карту (или код, позволяющий отобразить вашу карту).

Чтобы получить ссылку, нажмите рядом с соответствующей картой в списке и выберите «Поделиться» в открывшемся меню. Затем скопируйте ссылку на вашу карту из формы. Дополнительную информацию см. в разделе Создание карты.

Статическая карта

Статические карты имеют ограничения на количество элементов, которые они могут включать.

Чтобы получить код для вставки вашей карты в виде статического изображения (которое можно размещать на сайтах, не поддерживающих JavaScript), выберите тип статической карты:

Установить размер карты. Размеры карты можно задать либо изменив числа в полях «Размер карты» (размер обозначается в пикселях (px)), либо изменив размер выделенной области на карте (для получения дополнительной информации см. Map Constructor API) .

Перейдите на панель инструментов "Тип карты" и нажмите "Получить код карты".

Вы можете скопировать код, позволяющий отображать карту, из открывшейся формы. Дополнительные сведения см. в разделе API Map Constructor.

Карта для печати

Чтобы сохранить файл, содержащий изображение карты в высоком разрешении для печати, на Яндекс.Диск или отправить карту прямо на принтер в ее текущем разрешении, выберите тип карты для печати:

Размер карты . Размер карты можно задать либо изменив числа в полях «Размер карты», либо изменив размер выделенной области на карте (дополнительную информацию см. в API конструктора карт).

Для карт, которые можно распечатать, вы можете выбрать единицу измерения: пиксели ( px ), дюймы ( in ) или сантиметры ( cm ).

Формат файла . Выберите формат (PNG или JPG) файла карты.

Качество . Выберите разрешение растрового изображения вашей карты: 96 DPI (для просмотра в WEB) или 300 DPI для печати карты.

Карты с высоким разрешением для печати должны соответствовать следующим условиям:

Они настроены на тип слоя "карта"; невозможно создать распечатанную спутниковую или гибридную карту.

Это крупномасштабные карты; невозможно создать карты для печати уменьшенной области.

Вы используете последнюю версию одного из следующих настольных браузеров: Firefox, Chrome, Яндекс.Браузер, Edge, Safari или Opera.

Если вас не беспокоит разрешение вашей карты, нажмите Использовать стандартную печать и напечатайте карту без этих ограничений.

Нажмите Сохранить на Яндекс.Диск (для карт для печати), чтобы сохранить файл карты на Яндекс.Диск. Когда операция завершится, вы получите следующее подтверждающее сообщение:

Ваш файл будет сохранен под именем, которое вы дали своей карте, в папке Конструктора Яндекс.Карт, которая создается автоматически на вашем Яндекс.Диске.

Одним из основных источников данных для сервиса Яндекс.Карты являются спутниковые снимки. Для удобства работы с картой объекты изображаются на изображениях полигонами: леса, водоемы, улицы, дома и т. д. Планировкой обычно занимаются картографы. Мы решили им помочь и научить компьютер складывать полигоны домов без участия людей.

За операции с изображениями отвечает IT-сфера, которая называется компьютерным зрением. Последние несколько лет большинство задач в этой области успешно решаются с помощью нейронных сетей. Сегодня мы расскажем читателям Хабра о нашем опыте использования нейросетей в картографии.

В первую очередь мы обучим нейронную сетку, которая будет заниматься семантической сегментацией, то есть определять, имеет ли отношение каждая точка на спутниковом снимке к дому. Почему семантическая сегментация, а не просто обнаружение объектов? Когда задача обнаружения решена, на выходе получаем набор прямоугольников, причем конкретных: две стороны вертикальные, две горизонтальные. Дома дома обычно повернуты относительно осей изображения, а в некоторых постройках тоже сложная форма.

Задачу семантической сегментации в настоящее время решают различные сети (FCN, SegNet, UNet и др.). Нам нужно только выбрать, какой из них нам больше подходит.

Получив маску из спутникового снимка, мы выделим достаточно большие кластеры точек, принадлежащих домам, соберем их в связные регионы и представим границы регионов в векторном виде в виде полигонов.

Понятно, что маска не будет абсолютно точной, а значит, близлежащие дома могут слипнуться в одну связную область. Чтобы справиться с этой проблемой, мы решили дополнительно обучить сеть. Она найдет на изображении ребра (границы домов) и разделит слипшиеся постройки.

Итак, вырисовывалась такая схема:

Мы не отказались полностью от сетей обнаружения и попробовали Mask R-CNN. Его плюс по сравнению с обычной сегментацией в том, что Mask R-CNN детектирует объекты и генерирует маску, так что не надо возиться с разделением общей маски на связные области. Но минус (как без него) в фиксированном разрешении маски каждого объекта, т.е. для больших домов со сложной окантовкой эта окантовка непременно будет упрощена.

Инструменты

  • достаточно проработанный набор готовых кубов, из которых можно собрать свои сети;
  • Python API, удобный для быстрого создания сетевой структуры и для обучения;
  • Обученную сеть можно использовать в своей программе через интерфейс C++ (весьма бедный по сравнению с Python-частью, но вполне достаточный для запуска готовых сетей).

Набор данных

Успех в работе с нейросетью на 80 процентов состоит из хорошего набора данных. Итак, для начала мы должны были собрать такой набор данных. В Яндексе есть огромное количество спутниковых снимков с уже отмеченными объектами. Кажется, все просто: достаточно выгрузить эти данные и собрать их в датасет. Однако есть один нюанс.

Обновление набора данных

Когда человек ищет дом на спутниковом снимке, первое, что он видит, — это крыша. Но высота домов разная, спутник может снимать один и тот же рельеф с разных ракурсов — и если мы на векторной карте нанесем полигон, соответствующий крыше, то нет гарантии, что крыша не уедет при обновлении картинки. Но фундамент вкопан в землю и, под каким бы углом вы его ни сняли, он всегда остается на одном месте. Именно поэтому дома на векторной Яндекс.Карте отмечены «на фундаментах». Это правильно, но для задачи сегментации изображений лучше научить сеть искать крыши: надежда на то, что сетка натренируется распознавать фундаменты, очень мала. Поэтому в датасете все должно быть отмечено на крышах. Итак, чтобы создать хороший набор данных, нам нужно научиться переносить векторную разметку домов с фундамента на крыши.

Старались и не двигались, но качество было не очень, и это понятно: ракурсы съемки со спутника разные, высота домов разная, в итоге фундамент сместился в разные направлениях и на разном расстоянии от крыши на фото. Сеть теряется от такого разнообразия и в лучшем случае тренируется на чем-то среднем, в худшем — на чем-то непонятном. И сеть для семантической сегментации выдает результат, вроде бы приемлемый, но при поиске ребер качество резко падает.

Растровый подход

Поскольку мы забрались в область компьютерного зрения, первое, что мы попробовали, — это подход, относящийся к самому этому компьютерному зрению. Сначала векторную карту растрируют (полигоны домов рисуются белыми линиями на черном фоне), фильтр Собеля выделяет края на спутниковом снимке.А затем два изображения смещаются друг относительно друга, что максимизирует корреляцию между ними. Края после фильтра Собеля довольно шумные, поэтому, если применить этот подход к отдельному зданию, не всегда получается приемлемый результат. Однако метод хорошо работает на участках со зданиями одинаковой высоты: если искать смещение сразу на большом участке изображения, результат будет более стабильным.

«Геометрический» подход

Если территория застроена не однотипными, а разными домами, предыдущий способ не сработает. К счастью, иногда мы знаем высоту зданий на векторной карте Яндекса и положение спутника во время съемки. Таким образом, мы можем воспользоваться школьными знаниями по геометрии и посчитать, куда и как далеко сдвинется крыша относительно фундамента. Этот метод улучшил набор данных в районах с многоэтажными зданиями.

«Ручной» подход

Самый трудоемкий способ: засучить рукава, расчехлить мышку, пялиться в монитор и вручную перемещать векторную разметку домов с фундаментов на крыши. Техника приносит просто потрясающий по качеству результат, но использовать ее массово не рекомендуется: разработчики, занимающиеся такими задачами, быстро впадают в апатию и теряют интерес к жизни.

Нейронная сеть

В результате мы получили достаточно спутниковых снимков, хорошо различимых на крышах. Так что есть шанс натренировать нейросеть (пока, правда, не на сегментацию, а на улучшение компоновки других спутниковых снимков). И мы это сделали.

Входными данными для сверточной нейронной сети были спутниковые снимки и растровая разметка смещения. На выходе мы получили двумерный вектор: вертикальное и горизонтальное смещения.

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

Разные территории - разные дома

На Яндекс.Картах много интересных территорий и государств. Но даже в России дома чрезвычайно разнообразны, что сказывается на том, как они выглядят на спутниковых снимках. Значит, нужно отражать разнообразие в. И изначально мы не очень понимали, как правильно обращаться со всем этим великолепием. Собрать огромный набор данных и затем обучить на нем одну сеть? Сделать свой набор данных для каждого (условного) типа здания и обучить отдельную сеть? Обучить определенную базовую сеть, а затем протестировать ее для конкретного типа здания?

Испытательно мы обнаружили, что:

  1. Несомненно, необходимо расширить данные для разных типов зданий, на которых планируется использовать инструмент. Сеть, обученная на одном типе, способна выделять здания другого типа, хотя и очень плохо.
  2. Лучше обучать одну большую сеть на всем наборе данных. Достаточно хорошо обобщен на разные территории. Если обучать отдельные сети для каждого типа разработки, качество либо останется прежним, либо незначительно увеличится. Так что вводить разные сети для разных территорий бессмысленно. Кроме того, требуется больше данных и дополнительный классификатор типа разработки.
  3. Если вы используете старые сети, когда к данным добавляются новые территории, сети обучаются намного быстрее. Дообучение старых сетей на расширенных данных приводит примерно к тому же результату, что и обучение сети с нуля, но занимает гораздо меньше времени.

Варианты решения

Семантическая сегментация

Семантическая сегментация — довольно хорошо изученная задача. После появления статьи Fully Convolutional Networks она в основном решается с помощью нейронных сетей. Осталось только выбрать сеть (мы рассматривали FCN, SegNet и UNet), продумать, нужны ли нам на выходе дополнительные трюки вроде CRF, и решить, как и какая функция ошибки будет обучаться.

В результате мы остановились на U-Net-подобной архитектуре с обобщенной функцией Intersection Over Union как функции ошибки. Для обучения спутниковые снимки и соответствующая разметка (разумеется, растеризованная) разрезались на квадраты и собирались в наборы данных. Получилось неплохо, а иногда и просто отлично.

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

Обнаружение границ

Чтобы справиться с этой задачей, вы можете найти края на изображении. Для обнаружения ребер мы тоже решили обучить сеть (алгоритмы поиска ребер, не использующие нейронные сети, явно ушли в прошлое). Мы обучили сеть типа HED, которая описана в Holistically-Nested Edge Detection. В исходной статье сеть обучалась на наборе данных BSDS-500, в котором на изображениях отмечены все ребра. Обученная сеть находит все четко очерченные ребра: границы домов, дорог, озер и т. д. Этого достаточно, чтобы разделить близлежащие здания. Но мы решили пойти дальше и использовать для обучения тот же набор данных, что и для семантической сегментации, только при растеризации не закрашивать полигоны зданий целиком, а рисовать только их границы.

Результат получился настолько потрясающе красивым, что мы решили векторизовать здания прямо по краям, полученным из сети. И это было полностью успешным.

Обнаружение вершин

Поскольку сеть HED давала отличные результаты на ребрах, мы решили обучить ее находить вершины. Фактически у нас есть сеть с общими весами на сверточных слоях. У нее было два выхода одновременно: для ребер и для вершин. В итоге мы сделали еще один вариант векторизации зданий, и в некоторых случаях он показал вполне вменяемые результаты.

Маска R-CNN

Mask R-CNN — это относительно новое расширение сетей Faster R-CNN. Маска R-CNN ищет объекты и выделяет маску для каждого из них. В итоге для домов мы получим не только ограничивающие прямоугольники, но и уточненную структуру. Такой подход выгодно отличается от простого обнаружения (мы не знаем, как здание расположено внутри прямоугольника) и от обычного сегментирования (несколько домов могут слипнуться в один, и непонятно, как их разделить). С Mask R-CNN больше не нужно думать о дополнительных ухищрениях: достаточно векторизовать границу маски для каждого объекта и сразу получить результат. Есть и минус: размер маски для объекта всегда фиксирован, то есть для больших зданий точность маркировки пикселей будет низкой. Результат Mask R-CNN выглядит следующим образом:

Мы попробовали Mask R-CNN последними и убедились, что для некоторых типов разработки этот подход приносит пользу другим.

Векторизация

Векторные прямоугольники

При всем современном архитектурном разнообразии дома на спутниковых снимках по-прежнему чаще всего выглядят как прямоугольники. Тем более, что для масс территорий не нужно размечать сложные полигоны. Но я все же хочу отметить дома на карте. (Ну, например, садово-огородное товарищество: домов обычно много, вручную размечать не так важно, а вот размечать прямоугольники на карте — очень хорошо.) Поэтому первый подход к векторизации был предельно прост.

  1. Возьмите растровую область, соответствующую "дому".
  2. Найдите прямоугольник минимальной площади, который содержит эту область (например, так: OpenCV::minAreaRect). Проблема решена.

Векторизация полигонов

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

Алгоритм, который первым пришел нам в голову, основывался на построении проекций точек на прямые линии:

  1. Найти контур области растра, соответствующий одному дому.
  2. Уменьшите количество точек в контуре, упростив его, например, с помощью алгоритма Дугласа-Пекера.
  3. Найдите самую длинную сторону контура. Угол ее наклона будет определять угол всего будущего ортогонального многоугольника.
  4. Построить проекцию следующей точки контура на предыдущую сторону.
  5. Расширьте сторону до точки проекции. Если расстояние от точки до ее проекции больше, чем кратчайшая стена здания, добавляем полученный отрезок к контуру здания.
  6. Повторяйте шаги 4 и 5, пока контур не будет закрыт.

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

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

Поскольку требуемый угол поворота сетки заранее не известен, приходится перебирать несколько значений, что плохо сказывается на производительности. Однако алгоритм позволяет добиться более визуально красивых результатов.

Улучшенная векторизация

В то время как мы фактически работали с каждым домом отдельно. Когда первый этап пройден, можно работать со всей картинкой и улучшать результат. Для этого добавлен алгоритм постобработки набора полигонов. Мы использовали следующие эвристики:

  • Обычно стены соседних домов параллельны. Более того: чаще всего дома можно объединять в наборы, внутри которых все элементы выровнены.
  • Если на картинке уже отмечены улицы, то весьма вероятно, что стороны многоугольников будут параллельны улицам.
  • Если полигоны пересекаются, то, скорее всего, имеет смысл сдвинуть стены так, чтобы пересечение исчезло.
  1. Кластер нашел дома по расстоянию между ними и углу поворота. Усредняем обороты зданий в каждом кластере. Повторяем до тех пор, пока положение зданий не перестанет меняться или пока дома не начнут слишком сильно отклоняться от исходного положения.
  2. Выбираем дома у дорог, находим ту сторону, которая самая длинная и ближайшая к дороге. Разворачиваем дом до параллельности выбранной стороны и дороги.
  3. Мы удаляем пересечение между полигонами, сдвигая стороны двух пересекающихся зданий пропорционально размеру сторон.

Результат

В результате мы получили инструмент, умеющий распознавать здания различных типов постройки. Он помогает картографам в их нелегкой работе: значительно ускоряет поиск пропавших домов и заполнение новых, еще не обработанных участков. На данный момент с помощью этого инструмента на Народную карту добавлено более 800 тысяч новых объектов.

Читайте также: