САПР
интернет-карт в САПР и ГИС в качестве подложек
DOI: 10.17273/CADGIS.2015.2.18
Медведев В.И., ведущий разработчик ООО «ИндорСофт» (г. Томск)
Рассматривается технология интернет-карт, способы её внедрения в САПР и ГИС, координатная привязка карты к местности, а также связанные вопросы, касающиеся систем координат, которые можно встретить в приложениях САПР, ГИС и интернет-картах.
Введение
С тех пор как компания Google в 2005 году представила интерактивный картографический сервис Google Maps, подобные карты стали неотъемлемой частью интернет-сервисов, а вскоре стали внедряться и в настольные приложения. Не обошла стороной эта тенденция системы типа ГИС и САПР, где интернет-карты могут успешно применяться в качестве ситуационного ориентира и источника дополнительных данных.
Исходными материалами для создания интернет-карт служат спутниковые снимки, векторные данные и оцифрованные карты. В настоящее вре-
мя список популярных интернет-карт представлен как зарубежными ресурсами: Google Maps (карта, спутниковые снимки, рельеф), Wikimapia (карта и снимки), OpenStreetMap (карта с множеством семантических стилей), Bing Maps (карта и снимки), Apple Maps (карта), так и отечественными: «Яндекс.Карты» (карта и спутниковые снимки), «Геопортал Роскосмоса» (карта и снимки), «Космоснимки» (карта и снимки), «2ГИС» (карта), Navitel (карта) и другими.
Безусловно, и раньше в САПР и ГИС применялись растровые и векторные подложки с топографическими картами, аэрофотосъёмкой, спутни-
САПР и ГИС автомобильных дорог | № 2(5), 2015 | 119
САПР
1,1 миллиарда тайлов, и при среднем объёме одного тайла в 10 КБ для хранения данного уровня понадобилось бы 11 терабайт памяти, что превышает объём современного жёсткого диска. В то же время карта содержит крупномасштабные тайлы только для тех регионов, где эта детализация востребована, прежде всего, в городах. Поэтому подсчитать количество тайлов, например, на самом подробном, 20-м уровне, весьма затруднительно. Тем не менее, массив исходных данных интернет-карты настолько велик, что загрузка его целиком не представляется возможной.
ковыми снимками, но использование новой технологии преобразило весь процесс:
• карту больше не нужно искать и скачивать, она может подгружаться автоматически по мере отображения, сразу в нужном масштабе;
• интернет-карту легко привязать к местности, поскольку на карте определены географические координаты;
• сегодня существует огромное множество ресурсов со спутниковыми снимками и картами, лучшие из которые охватывают почти весь земной шар и имеют разрешение до 1 м и даже точнее.
Следует заметить, что воспользоваться перечисленными преимуществами сможет только специально адаптированное программное обеспечение. Далее будет рассмотрено, каким образом интернет-карты могут быть реализованы в приложениях САПР и ГИС.
Устройство и принцип работы интернет-карты
Все основные интернет-карты представлены в цилиндрической проекции Меркатора (проекция земной поверхности на вертикальный цилиндр с последующей развёрткой), отличие состоит только в использовании Google-подобными картами (наиболее распространённый вариант) референц-сферы вместо референц-эллипсоида для аппроксимации земной поверхности. Этим обусловлено небольшое несовпадение по вертикали Google-подобных и «Яндекс»-псдобных карт при непосредственном наложении друг на друга. Забегая впе-
рёд отметим, что «эталонная» реализация «Яндекса» с эллипсоидом более корректна и обладает большим количеством полезных свойств.
Структура данных
Отдельно взятая карта имеет структуру многоуровневой пирамиды и содержит до 20 уровней детализации, каждый из которых разбит на растровые изображения размером 256*256 квадратных пикселей, называемые тайлами. Уровень с номером N содержит 4N тайлов, т.е. каждый следующий уровень детализации содержит в 4 раза больше тайлов, чем предыдущий, а каждый тайл предыдущего уровня представлен в следующем уже четырьмя тайлами (рис. 1).
Из этого можно вывести, что один только 15-й уровень состоит из почти
Отображение, управление и другие возможности
Многоуровневая организация позволяет карте корректно отображаться на экране монитора или при печати в любом интересующем масштабе [1]. Тайловая организация каждого уровня делает возможной оптимизацию загрузки ресурсов из интернета, поскольку для отображения карты в текущем виде и масштабе достаточно получить только те тайлы, которые полностью или частично попадают в видимую область или область печати.
Оригинальный интернет-сервис Google Maps и подобные ему представляют собой сайт, на главной странице которого размещена специальная компонента, практически полностью реализующая работу интернет-карты. Для этого компонента запрашива-
Рис. 2. Интернет-сервис Google Maps
120 | САПР и ГИС автомобильных дорог | № 2(5), 2015
САПР
Рис. 3. Кратер Гейла на трёхмерной спутниковой карте Рис. 4. Растровая подложка со спутниковой картой Марса в Google Maps Google Maps в AutoCAD Civil 3D 2012
ет по http-протоколу тайлы и другие данные, соответствующие области показа, выбранному типу и локализации карты, и послойно отображает их. Карта интерактивна: с помощью мыши и специальных элементов управления пользователь может осуществлять навигацию и масштабирование, подключать дополнительные слои с информацией, выполнять измерения, определять географические координаты в заданной точке, получать справочную информацию по объекту, просматривать соотнесённые с данной местностью фотографии, выполнять поиск с автонавигацией по известным координатам или названию объекта (рис. 2).
Сегодня ведущие картографические интернет-сервисы предлагают всё новые возможности, выходящие за рамки плоской карты: теперь можно просматривать трёхмерные карты, панорамные фотоснимки и видеоряды, отправляясь в виртуальное путешествие по улицам городов, живописным природным ландшафтам и даже другим планетам (рис. 3). Также интернет-карты используются для навигации и позволяют при этом получать дополнительную информацию, например, о ситуации на дорогах и пробках или местных достопримечательностях.
Подключение интернеткарт в САПР и ГИС
Задача подключения интернет-карты в САПР и ГИС нетривиальна. Самый очевидный для пользователя способ заключается в создании снимка экрана с открытой картой с последующей вставкой получившегося
изображения в программу в качестве подложки. Предложенный сценарий имеет существенные недостатки: для покрытия интересующей области может потребоваться изготовление целого множества снимков экрана, но самое главное, все снимки потребуют трансформации, которая теперь будет возможна только по визуальным ориентирам (например, с помощью векторов трансформации) и в любом случае не исправит искажения, обусловленные использованием различных картографических проекций для интернет-карты и проекта. Далее рассмотрим специальные средства, позволяющие решать указанные проблемы.
Использование стандартных средств подключения
Изначально интернет-карта является сервисом, предполагающим использование только на страницах сайтов и в веб-приложениях. Для встраивания крупнейшие поставщики карт предлагают использовать собственные интерфейсы прикладного программирования (API) двух типов [2-5]:
1. Для динамической карты: в коде веб-страницы размещается специальная компонента, написанная на языке JavaScript, самостоятельно реализующая загрузку тайлов и другой необходимой информации, отображение карты, навигацию и масштабирование.
2. Для статической карты: по http-запросу, включающему координаты интересующей области и масштаб, сервер формирует и возвращает растровое изображение.
Первый вариант несовместим с настольными приложениями в принципе. Вариант со статической картой вполне подходит для формирования растра, который можно не только разместить на веб-странице, но и подключить в качестве подложки в САПР. При этом теряются свойства интерактивности и масштабируемости, кроме того, зачастую на пользователя возлагается часть рутины по вставке и трансформации растра, а для расширения подложки приходится размещать новые растры с нахлёстом. Тем не менее, многие приложения используют именно такой способ (рис. 4), некоторые при этом предлагают другие интересные возможности (рис. 5).
Использование собственной компоненты
Возможен и принципиально иной подход к реализации подключения, заключающийся в разработке собственной компоненты, наподобие той, что используют оригинальные интернет-сервисы с картами. Компонента реализует подложку с интернет-картой и работает непосредственно с тайлами (т.е. исходными данными, а не вторичным продуктом), которые получает с помощью http-запросов и отображает с учётом текущего масштаба в системе координат проекта (рис. 6).
Однажды загруженные тайлы сохраняются на диске, поэтому при повторном просмотре подложка уже готова к отображению. Трансформация в таком случае выполняется динамически, что позволяет в любой момент перейти к другой системе координат без загрузки новых данных, с использо-
САПР и ГИС автомобильных дорог | № 2(5), 2015 | 121
САПР
Рис. 5. Подготовка растровой подложки на основе исходного растра и спутниковой карты Google Maps в Credo Трансформ 4
Рис. 6. Подключение спутниковой карты Bing Maps в AutoCAD Civil 3D 2013 с помощью компоненты Project Basejump
ванием тех же самых тайлов с диска. Кроме того, появляется возможность одним действием переключать источник тайлов, подменяя тем самым одну карту другой с сохранением координатной привязки.
Ключевым вопросом при реализации компоненты является доступ к тайлам, который технически возможен для многих источников карт, поскольку необходим для работы оригинальных интернет-сервисов, но почти никогда не документирован. Типичная строка http-запроса включает в себя номер уровня детализации, номер тайла по горизонтали и вертикали в матрице уровня, дополнительно могут указываться
название слоя, язык локализации, версия карты, проверочный код, API-ключ, но точный формат запроса индивидуален для каждого сервиса.
Вопросы правового использования
Помимо технической стороны важен также правовой аспект. Основные поставщики карт запрещают встраивание своих карт, будь то скриншоты, сгенерированные по http-запросам растры или отдельные тайлы, в коммерческие приложения. Единственный вариант, лежащий в правом поле, заключается в регистрации на сайте поставщика с последующим приобретением так называемого API-ключа, обеспечивающего авто-
Рис. 7. Схема построения равноугольной цилиндрической проекции: а) проецирование эллипсоида на вертикальный цилиндр; б) развёртка
122 | САПР и ГИС автомобильных дорог | № 2(5), 2015
САПР
Рис. 8. Схема построения поперечно-цилиндрической проекции: а) проецирование зоны эллипсоида на вертикальный цилиндр; б) развёртка
ризованный доступ к ресурсам посредством уже упомянутых интерфейсов (API).
Координатная привязка интернет-карты в САПР и ГИС
Другим важным вопросом при встраивании интернет-карты в проект САПР или ГИС является привязка к системе координат (СК) проекта. Как уже было отмечено, карта на странице интернет-сайта, равно как и её отдельные тайлы, представлена в плоской метрической СК, которая получается применением равноугольной цилиндрической проекции Меркатора либо к географической СК WGS 84, где земной шар аппроксимируется референц-эллипсоидом (в случае с «Яндекс»-псдабными картами), либо к суррогатной СК, использующей референц-сферу (в случае Google-подобных карт) (рис. 7). В проекции Меркатора меридианы идут с равным интервалом параллельно друг другу, а параллели сгущаются вблизи экватора, угол между направлениями сохраняется, но искажаются длины и площади [6].
В проекте САПР используются также плоские метрические системы координат, зачастую с привязкой к СК-42, СК-63, МСК, СК-95, ГСК-2011, UTM, которые, в свою очередь, получаются применением поперечно-цилиндрической равноугольной проекции Гаусса-Крюгера или подобной к одной из геодезических СК (СК-42, СК-95, ПЗ-90, ПЗ-90.02, ПЗ-90.11, WGS 84) [7]. Проекция Гаусса-Крюгера отображает на горизонтально расположенный цилиндр только часть земной поверхности, обращённую к наблюдателю. На практике это трёх- либо шестиградусная
зона, взятая от выбранного меридиана, после проецирования с последующим развёртыванием цилиндра, напоминающая по форме вертикально расположенный лист ивы или черёмухи (рис. 8). Вблизи выбранного меридиана, называемого осевым, геометрические искажения минимальны и усиливаются по мере удаления на запад и восток. Наибольшее искажение длины получается в крайних точках на экваторе и составляет 0,14% [6].
Автоматическая трансформация участка интернет-карты
Таким образом, для корректного отображения в проекте САПР к карте должны быть применены нелинейные преобразования, включающие операции прямого и обратного проецирования, и, возможно, пересчёт географических координат из одной системы в другую (например, из WGS 84 в СК-42). Геометрическая интерпретация
Рис. 9. Трансформация участка интернет-карты со спутниковым снимком из проекции Меркатора в проекцию Гаусса-Крюгера
САПР и ГИС автомобильных дорог | № 2(5), 2015 | 123
САПР
Рис. 10. Расхождение между известным положением пункта ГГС и его изображением на спутниковой интернет-карте, представленной в местной системе координат
трансформации участка карты представлена на рисунке 9.
Отсюда следует, что привязка карты может быть автоматизирована, при этом алгоритм трансформации для каждой точки карты примет следующий вид:
1. Получение координат в исходной СК Меркатора.
2. Вычисление географических координат в СК WGS 84 с помощью обратного проекционного преобразования:
a. для «Яндекс»-подобных карт: используется проекция Меркатора;
b. для Google-подобных карт используется проекция «псевдо-Меркатор на сфере».
3. Пересчёт полученных географических координат из СК WGS 84 в СК проекта.
4. Применение проекции проекта.
Для гарантированного устранения искажений в ходе динамической трансформации можно было бы применить алгоритм непосредственно к каждой точке (т.е. пикселю) участка карты. Однако такая реализация едва ли целесообразна по следующим причинам:
1) один пиксель карты не будет соответствовать одному пикселю экрана, поэтому придётся применять обратный пересчёт для каждого пикселя экрана;
2) высокая трудоёмкость, прямо пропорциональная размеру экрана в пикселях, приведёт к сильным задержкам при каждом обновлении вида;
3) как будет показано далее, такая реализация заведомо избыточна.
С другой стороны, можно применить алгоритм только для вершин углов прямоугольного участка карты, а сам участок трансформировать приближённо по полученным четырём точкам, например, с помощью проективного преобразования, аппаратная (т.е. быстрая) реализация которого
заложена в любой современной видеокарте. При крупном масштабе данный способ вполне имеет право на применение: действительно, «честная» проекция Меркатора, заложенная в «Яндекс-картах», является равноугольной, как и проекция Гаусса-Крюгера, поэтому бесконечно малый квадрат в первой проекции остаётся квадратом во второй. Но большинство других карт, к сожалению, используют другую проекцию. Кроме того, в мелких и даже средних масштабах искажения могут оказаться существенными, и для их устранения потребуется разбиение большого участка на несколько более мелких.
Наиболее простой и очевидной реализацией такого разбиения является естественное для интернет-карты разбиение на тайлы, т.е. трансформация узлов тайловой сетки. Покажем, что уже в масштабе 1:30 000 000 (примерно соответствует 5-му уровню карты) данное разбиение является оптимальным, т.е. не привносящим существенных искажений карты, и при этом не сильно трудоёмким, чтобы вычисления производились «на лету», без заметной пользователю задержки. В самом деле, тайл 5-го уровня, выполненный в проекции Меркатора, на широте 60° в проекции Гаусса-Крюгера покрывает квадрат со стороной 2п * 3200 км (длина параллели 60°) / 25-1 (количество тайлов по горизонтали на 5-м уровне) = 1251 км. Максимальное искажение внутри квадрата составляет 1251 км * (1 - cos(90°/ 25-1)) (в качестве оценки сверху взято расстояние от хорды до дуги) = 6 км, что меньше расстояния в 1 пиксель на экране, которое при масштабе 1:30 000 000 и разрешении 4 пикс./мм, типичном для большинства современных мониторов, соответствует 30 км / 4 = 7,5 км. Очевидно, что с увеличением масштаба искажения будут всё менее заметны. С другой стороны, пусть размер карты на экране составляет 1920*1080 (Full HD), тогда при стандартном линейном размере тайла в 256 пикселей тайловая сетка будет включать примерно 8 * 5 = 40 точек трансформации, что совсем немного для быстрого вычисления.
Точность автоматической привязки
Следует отметить, что даже в той точке карты, координаты которой в СК проекта были вычислены явно, а не получены интерполяцией в ходе проективного преобразования, расхождение с известным положением соответствующего объекта может достигать порядка 10 м на самых детальных уровнях. И лишь в малой степени это связано с точностью перехода от глобальной системы координат WGS 84 к местной, в которой чаще всего определены координаты объекта (рис. 10).
Гораздо важнее здесь точность исходной карты, которая зависит и от степени её детализации, и от качества изготовления тайлов. Разработка и поддержка спутниковой интернет-карты — это
124 | САПР и ГИС автомобильных дорог | № 2(5), 2015
САПР
Рис. 11.
Координатная привязка интернеткарты в САПР IndorCAD 9
очень сложный и трудоёмкий процесс, включающий фильтрацию и ортотрансформацию получаемых со спутников снимков Земли [8]. Решающим фактором при получении ортофотоснимка является модель рельефа, в качестве которой обычно используется весьма приближённые данные радарной съёмки Земли (Shuttle Radar Topography Mission — SRTM), не отражающие в достаточной степени картину рельефа, в т.ч. с учётом лесных зон, высотных зданий и других сооружений.
САПР IndorCAD: подключение интернет-карты с мгновенной привязкой
Рассмотренный подход к подключению интернет-карты с помощью собственной компоненты, осуществляющей автоматическую привязку с трансформацией карты «на лету», реализован в САПР IndorCAD [9]. Система IndorCAD для описания модели объекта использует плоскую систему координат, однако по умолчанию её тип не определён. Интернет-карта уже присутствует в любом проекте в виде слоя, и для её отображения достаточно сообщить системе тип системы координат, выбрав нужную позицию в списке (рис. 11).
По умолчанию будет отображаться спутниковая карта «Космоснимки», также доступны схематическая карта «Космоснимки», карта OpenStreetMap, публичная кадастровая карта РФ, карта с произвольного сервера ArcGIS и карта, источник которой указан в файле настроек в формате популярной программы для просмо-
тра карт SASPlanet. Технически возможно подключение карт Google, «Яндекс», «2ГИС» и других.
Подключение интернет-карты в ГИС IndorRoad осуществляется точно так же, благодаря использованию общей компоненты. а
Литература:
1. Рыков Д. Основы конфигурирования тайловых сеток. GIS-Lab. Географические информационные системы
и дистанционное зондирование. URL: http://gis-lab.info/ qa/tile-matrix.html (дата обращения: 24.09.2015).
2. Google Maps APIs for Web. Google Developers. URL: https://developers.google.com/maps/web/
(дата обращения: 24.09.2015).
3. Choose your Bing Maps API // Bing Maps for Enterprise. Microsoft Corporation. URL: http://www.microsoft.com/ maps/choose-your-bing-maps-API.aspx (дата обращения: 24.09.2015).
4. API Карт. Технологии Яндекса. URL: https://tech.yandex.ru/ maps/ (дата обращения: 24.09.2015).
5. Общее описание // Сервис «Экспресс Космоснимки».
ИТЦ «Сканэкс». URL: http://www.scanex.ru/ru/data/default. asp?submenu=kosmosnimki (дата обращения: 24.09.2015).
6. Бугаевский Л.М. Математическая картография: Учебник для вузов. М., 1998. 400 с.
7. Герасимов А.П. Местные системы координат // Геопрофи. 2009. № 4. С. 32-34.
8. Геодезия, картография, геоинформатика, кадастр: Энциклопедия. В 2-х т. / Под общ. ред. А.В. Бородко,
В.П. Савиных. М.: Геодезкартиздат, 2008. Т. II. 464 с.
9. Петренко Д.А. Новое поколение программных продуктов ИндорСофт // САПР и ГИС автомобильных дорог. 2013.
№ 1(1). С. 10-17. DOI: 10.17273/CADGIS.2013.1.2.
САПР и ГИС автомобильных дорог | № 2(5), 2015 | 125