Картографические сервисы обзор. Картографические сервисы

В качестве примера воспользуемся набором данных Портала открытых данных Москвы. Результатом работы станет собственное веб-приложение для отображения парковочных мест и поиска наиболее недорого варианта в заданном радиусе желаемого места стоянки. Цель статьи: показать один из способов создания картографических сервисов для не владеющих программированием пользователей.

Для создания картографического сервиса воспользуемся облачной ГИС ArcGIS , а точнее бесплатной подпиской для разработчиков (https://developers.arcgis.com/sign-in/), которая позволяет готовить и тестировать свои геосервисы бесплатно до момента их использования в коммерческих целях. Хотя подписка и называется «для разработчиков», она включает в том числе инструменты с графическим интерфейсом с помощью которых конструируются картографические приложения на языке JavaScript.

После несложной регистрации на странице для разработчиков используем учётную запись для входа через сайт ArcGIS.com . Пока у нас нет геоданных, и на помощь нам придет набор открытых данных «Платные парковки на улично-дорожной сети» , который включает географическую информацию о широте и долготе местоположения парковки, а также ряд другой информации, которую мы будем использовать в работе. Скачаем набор в CSV формате

Распакуем архив и зададим СSV файлу кодировку UTF-8, я это делал через Notepad++

Теперь можно наносить эти данные на карту, путем автоматического определения местоположения по указанным в файле географическим координат. Добавим файл через интерфейс ArcGIS.com, раздел «Ресурсы — Добавить — С моего компьютера». В процессе добавления необходимо указать системе поля таблицы, относящиеся к долготе и широте, а также прописать тэги.

После добавления данных и автоматического создания веб-сервиса приступаем к оформлению веб-карты

В интерфейсе вьюера карт выберем базовую карту «Светло-серое полотно», чтобы местоположения парковок наилучшим образом контрастировали относительно подложки. А в качестве предлагаемых атрибутов для оформления точек на карте выберем поле CarCapacity — количество парковочных мест и поле Price — стоимость первого часа (руб.), стиль оформления «Цвет & Размер». Цветом будет отображаться изменение стоимости часа, а размером символа — количество мест

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

Не будем более глубоко погружаться в настройку всплывающего окна и остановимся на достигнутом результате. Сохраним нашу веб-карту и перейдем к самой интересной части — созданию картографического веб-приложения. Необходимо нажать кнопку «Общий доступ», далее «Создание веб-приложения», вкладка Web AppBuilder. Жмём кнопку «Начать». Откроется конфигуратор картографического веб-приложения.

Для начала предлагается поменять дизайн приложения, здесь мы ограничимся изменением цвета, а также на вкладке «Атрибуты» зададим свой заголовок и иконку

Далее переходим к настройке виджетов (инструментов приложения). По умолчанию в приложение уже добавляется с десяток инструментов: легенда, список слоев, масштабирование, масштабная линейка, поиск по адресу, таблица атрибутов и др. Каждый из виджетов можно настраивать. Для поиска в радиусе воспользуемся инструментом «Ближайшие»

В настройках параметров поиска укажем поиск в метрах с радиусом от 50 до 500 метров и проставим ряд других галок, указанных на скриншоте ниже

Приложение почти готово. Теперь, указывая адрес или ставя точку на конкретное место на карте, можно получить список всех вариантов парковки в радиусе 50-500 метров. В примере ниже наглядно видно, что, припарковавшись в радиусе 443-метров, можно сэкономить 140 рублей уже на первом часе.

Картографические сервисы в интернете: поиск по карте, измерение расстояний, просмотр связанных с выбранной точкой Земли фотографий.

Яндекс.Карты

Яндекс.Карты - картографический сервис на сайте Yandex.ru. Здесь выложена спутниковая карта мира, по многим российским и украинским городам, и также по городам других стран возможен адресный поиск. Но пока карта мира отражается довольно неравномерно, и если попытаться найти улицу в небольшом сибирском поселке, это, скорее всего, не удастся. Кроме адресного поиска на Яндекс.Карты доступен сервис прокладки маршрутов и измерения расстояния между любыми двумя точками, отмеченными на карте.

С картографическим сервисом связан сервис Яндекс.Пробки , где представлены данные о ситуации на дорогах в трех городах России: Москва, Санкт-Петербург, Екатеринбург и в столице Украины - Киеве. Жителям таких городов как Екатеринбург, Казань, Краснодар, Нижний Новгород, Новосибирск, Орел, Ростов-на-Дону, Рязань, Самара, Тула, Уфа, Челябинск, Днепропетровск, Донецк, Запорожье, Киев, Львов, Одесса и Харьков разработчики предлагают установить мобильное приложение Яндекс.Карты и принять участие в создании картины пробок в своем городе.

Google Maps

Карты Google - приложения, построенные на основе бесплатного картографического сервиса и технологии, предоставляемых компанией Google. Сервис представляет собой карту и спутниковые снимки всего мира. С сервисом интегрирован бизнес-справочник и карта автомобильных дорог, с поиском маршрутов, охватывающая США, Канаду, Японию, Гонконг, Китай, Великобританию, Ирландию и некоторые районы Европы, в том числе и некоторые города в России. С сервисом связано приложение Google Earth - это отдельная программа для GNU/Linux, Mac OS и Microsoft Windows, которая позволяет просматривать снимки земной поверхности, увеличивать и уменьшать масштаб и строить маршруты передвижения. Сервис дает отображение земной поверхности с учетом рельефа, предоставляет возможность наблюдения под произвольным углом (а не только отвесно сверху) и возможность плавного изменения масштаба (а не просто выбора из нескольких предопределенных значений). Карты Google Maps интегрированы с сайтами Wikipedia и Panoramio.com. Пользователи, подключив соответствующий слой, могут с его помощью увидеть связанные с указанным местом на карте фотографии и статьи Википедии.

WikiMapia

WikiMapia - проект, использующий информацию Google Maps. Его целью является описание географических объектов всей планеты Земля. Девиз проекта: «Опишем весь мир!» Просматривая карту WikiMapia, пользователь видит объекты, ограниченные рамками (многоугольники со стороной не превосходящей 20 километров) и может получить текстовое описание для каждого (рамками может быть выделен город и даже отдельный дом).

Редактирование текстов и выделение новых участков карты доступно любому посетителю сайта. Объекты помечаются тегами, в режиме поиска отображаются только те из них, в описании которых присутствует данный тег. Часто тэг отражает адрес объекта. К каждому помеченному участку можно добавлять фотографии этого места, видео-ролики из YouTube и ссылку на страницу Википедии для этого места. Слой пометок WikiMapia можно подключить к программе Google Earth. WikiMapia предоставляет сервисы измерения расстояний и площадей. Ресурс основан Александром Корякиным и Евгением Савельевым в 2006 году.

Картографические сервисы являются одними из наиболее востребованных и популярных мобильных приложений среди путешествующих. Они могут работать в режиме постоянного доступа в Интернет (Google Maps, «Яндекс-Карты») или автономно (Offroad Maps Europe, «Навител Навигатор»), но при этом они должны быть скачаны заранее, поскольку достаточно объемны и имеют существенно меньше возможностей, чем при онлайн-режиме.

Одним из наиболее продвинутых и постоянно обновляемых приложений являются «Яндекс-Карты», которые позволяют получить не только навигацию по местности, но и определенный объем справочной информации о месторасположении различных объектов. К аналогичным приложениям относятся City Guide, Google Maps и др.

Redigo - мобильное приложение, работающее в офлайн-режиме и не требующее для своей работы подключения к Интернету. В нем содержится следующая основная информация: общая справка о стране (виза, часовой пояс, валюта, язык, как добраться и многое другое); информация о городах и местах, рекомендуемых к посещению; карты, где отмечены все достопримечательности; обширная фотогалерея; информация об актуальных событиях, разговорник на шести иностранных языках, разговорник в картинках.

«Афиша-Мир» - многофункциональное приложение, позволяющее скачать для офлайнового использования путеводители по многим городам и странам, обмениваться впечатлениями и фотографиями с другими пользователями приложения, ориентироваться по карте, выбирать для посещения различные достопримечательности и создавать дневник своих путешествий. Набор путеводителей постоянно обновляется. Приложение работает в офлайн-режиме, в зоне действия сети обновляется автоматически, также оно может работать в связке с сайтом mir.travel. На сайте можно заранее создать свой собственный путеводитель: выбрать интересующий город и отметить в нем все интересные места, которые хочется посетить. Для упрощения самые важные достопримечательности фильтруются по рейтингу, а также сопровождаются кратким описанием и фотографиями. Для авторизации как на телефоне, так и на сайте можно либо создать аккаунт, либо использовать учетную запись от одной из четырех социальных сетей. После установки мобильного приложения на смартфон (Android или iPhone) можно воспользоваться уже имеющимися путеводителями либо скачать гид, созданный до этого на сайте. После этого вся необходимая информация будет доступна даже в офлайн-режиме.

Maps With Me - содержит детальные карты всех стран мира для офлайн навигации, обеспечивает работу без подключения к Интернету. На карты этого навигатора нанесены достопримечательности, музеи, точки общепита, места развлечений и др. В силу своей высокой детализации этот сервис является одним из самых популярных в мире и уже сделано более 4 млн загрузок по всему миру. Возможны варианты: бесплатная Lite-версия и платная Рго-версия. Lite-версия служит исключительно для ориентации на местности, позволяет осуществлять поиск по карте и дает возможность отмечать интересные для пользователя места. Любое место на карте можно сохранить в закладках, чтобы потом легко вернуться к нему, метку можно отправить по e-mail- или sms-сообщением. Доступен режим определения местоположения и автоповорота, когда карта вращается автоматически в зависимости от направления движения пользователя. Pro-версия позволяет искать по карте гостиницы, магазины, бары и т.д., а также добавлять избранные места в закладки. Поиск можно осуществлять по улице, названию, категории, координатам.

Lonely Planet - это подробный путеводитель с офлайн-картами, поддерживается GPS-трекинг, поиск по офлайн-картам. Имеется справочная информация о времени работы, телефонах, сайтах организаций, а также отзывы и советы, оставленные пользователями Lonely Planet.

Spotted by Locals - содержит карты городов Европы и уникальные туристские маршруты, составленные местными жителями, которые дают возможность увидеть город их глазами.

2GIS - это бесплатные офлайн-карты 2GIS для iOS, Android и Windows Phone, являются одними из лучших путеводителей для путешествия по России, в котором представлено 178 российских городов. В мобильном приложении в наличии подробные офлайн-карты с возможным построением маршрутов на метро, автомобиле и наземном общественном транспорте, а также справочная информация по различным учреждениям и объектам (банки, банкоматы, аптеки, рестораны, такси и т.д.) с указанием часов работы и телефона. Пользователь может расширять справочник организаций, добавляя их в избранное.

Around Me - удобное мобильное приложение для поиска ближайших объектов инфраструктуры, например, автозаправок, аптек, автостоянок и пр. Имеется вкладка «Вблизи», которая выводит статьи из «Википедии» о ближайших к пользователю достопримечательностях.

Map Му Ride - приложение для велосипедистов, с помощью которого можно удобно планировать свой маршрут, просматривать маршруты других велосипедистов, собирать статистику своих поездок и делиться ею с друзьями.

Waze - навигатор для автомобилистов, в котором карты создаются совместными усилиями сообщества, приложение скачано более 50 млн раз.

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

Андрей Костенко: Тема доклада — создание собственных маленьких Google- или Яндекс-карт с использованием своих хранилищ и технологий без применения каких-то API от Google- и Яндекс-карт.

Свой картографический сервис я делал на основе открытых исходников. Честно скажу: у меня нет денег, чтобы покупать Oracle, MS SQL Server или даже Windows. Поэтому я использую только открытые технологии. Стоимость созданного мной проекта равна нулю. Я ничего не потратил.

Первый и закономерный вопрос: «Зачем я все это затеял?». У нас уже есть всем известные Google- и Яндекс-карты, у которых огромные возможности.

Давайте посмотрим, что мы можем получить, используя интерфейс программирования приложений (API), который предоставляет Google или Яндекс. Мы можем поставить точку и сказать: «Мы здесь». Отлично! Очень информативно. Но этого не всегда и хватает.

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

В Google есть полезная технология (не знаю, есть ли она в Яндексе) — это геокодинг. Это возможность по текстовому адресу (Красная Площадь, дом 1) найти географические координаты (широту и долготу), либо, наоборот, по широте и долготе найти адрес. Иногда это бывает полезным.

Давайте посмотрим, чего не может обеспечить API от Google и Яндекс-карт. Используя Яндекс, вы будете ограничены только планетой Земля. Google также предоставляет возможность увидеть на картах Луну и Марс. Но, к примеру, карту Средиземья там показать не получится.

Вы не можете модифицировать границы стран. Те данные, которые вам отдаются, — это одна большая картинка, с которой вы ничего не можете сделать. Например, мечту о воссоединении России с Украиной реализовать нельзя.

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

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

Для хранения данных я решил использовать PostGIS, который является бесплатным расширением к PostgrеSQL. MySQL тоже поддерживает работу с геометрическими данными. Но основной недостаток этого — платность MySQL.

Для чего используется PostGIS? Он позволяет нам добавлять геометрические типы данных (то, что мы в школе на геометрии изучали, — точки, линии, многоугольники и так далее) и оперировать с ними.

Если быть точным, то он добавляет стандартные типы данных: точка, ломаная и многоугольник. Для нашей карты этого достаточно. К примеру, точка — это город, линия — река или еще что-то, многоугольник — страна.

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

Кривые в PostGIS реализованы не лучшим образом, некоторые функции работать не будут. Лучше использовать либо хорошо "отточенные" многоугольники, либо потом делать преобразования в прямоугольный многоугольник (для этого в PostGIS есть специальная функция). С коллекциями то же самое. Если нужно найти максимальный икс для коллекции точек или многоугольников, PostGIS выдает неправильные данные.

Кажется, все просто — для стран многоугольники есть, линии и точки есть. Вот только Земля у нас круглая, даже чуть-чуть приплюснутая. А мониторы у нас плоские. Нам нужно данные с круглой Земли как-то показать на плоской карте.

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

Обычно для Google-карт и Яндекс-карт используется Меркаторова проекция. Она была изобретена в 15 или 16 веке Меркатором, который про компьютеры и телефоны знать просто не мог.

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

На самом деле, PostGIS тоже не так прост. Каждому типу данных (точка, многоугольник, линия и так далее) он присваивает ID проекции. Данные в координатах широты и долготы можно преобразовать в метры, используя Меркаторову проекцию. Потом я расскажу, как эти преобразования можно делать.

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

Специально для людей существует "Well-Known Text". Как и в школе на уроке геометрии, точка имеет координаты - x, y. Может быть и x, y, z.

Но "Well-Known Text" не дает нам понятия о том, в какой системе единиц заданы координаты. Мы не можем быть уверены, что в качестве единицы измерения используются метры.

Поэтому для того, чтобы присутствовали еще и единицы измерения, существует "Extended Well-Known Text", который используется в PostGIS. У него есть ID проекции. По ID проекции, по числу 4326 каждый образованный человек может сказать, что здесь находятся градусы. Теперь человек может все понять.

Как говорится, «что русскому хорошо, то немцу — смерть». Что для нас удобно (точка и красивые числа), то для компьютера — не очень удобно. Если для какой-то другой программы потребуется передать данные не в текстовом формате, а в бинарном, чтобы писать парсы, то надо будет воспользоваться EWKB. Он предназначен именно для передачи данных между бинарными приложениями.

Форматов вывода у PostGIS великое множество. Есть вывод в SVG, еще куча других типов вывода, о которых можно почитать в документации. Там иногда встречаются интересные вещи.

Перейдем к тому, что можно делать с точками, многоугольниками, всякими геометрическими объектами с помощью функций PostGIS.

ST_Contains. Самый простой вариант — проверить, находится ли точка в каком-то многоугольнике. Попробуйте мысленно представить, по какой формуле вы бы это вычисляли. Наверное, через 5 минут вам надоест. А PostGIS может определить, находится ли линия в каком-то многоугольнике, другой многоугольник внутри данного многоугольника. Это самое простое.

ST_Distance. Расстояние между двумя точками считается элементарно: корень из (∆х2+∆у2). Найти минимальное расстояние между двумя линиями или многоугольниками посложнее. PostGIS это тоже "умеет". Но если каждый многоугольник будет включать по 1000 точек, то иногда он будет работать медленно.

У меня в проекте это используется для того, чтобы человек, заходя в Сеть из какого-либо местоположения (из Владивостока или еще откуда-нибудь), мог видеть ближайшие к нему адреса. Их можно сортировать по расстоянию. Это работает вменяемое количество времени, довольно удобно — никаких формул писать не нужно.

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

У меня в проекте (в базе данных) используются широта и долгота, с которыми очень удобно работать. Для вывода на карту используются Меркаторовы проекции, которые отображают все объекты в плоском виде. Я пытался все эти формулы писать сам.

ST_Simplify. Иногда у вас бывает очень хороший геометрический объект, в котором много точек, но его нужно показать на картинке 100*100. Это будет работать очень медленно — картинка маленькая. Функция ST_Simplify по какому-то умному алгоритму упрощает геометрию, "выбрасывая" те точки, без которых не сильно изменится геометрия.

Можно запросто уменьшить количество точек в 3 раза, ускорить работу в 10-20 раз, при этом совершенно не изменив отображение. Параметр "tolerancy" как раз регулирует количество "выбрасываемых" точек. Минимальная и максимальная координата для объекта задаются просто — можно очертить его квадратной рамкой и так далее.

Я вспомнил еще про пару функций. Например, ST_Balance. Точка — это нематериальная сущность, у нее нет ширины, высоты и так далее. Ее нужно как-то показывать. Обычно вызывается функция ST_Balance, которая чертит вокруг нее кружок с заданным радиусом. Так как круг с помощью многоугольника отобразить не получится, она делает полигон из n точек, который внешне напоминает круг.

Еще я рассказывал про функцию, которая преобразовывает кривые и сплайны в многоугольники. Она тоже есть, я про нее почему-то забыл. В базе у нас карта есть — отлично. Но пользователям на сайте EWKT не показывают, и не дай Бог EWKB показывать. Бинарный формат точно не стоит. Нужно как-то пользователям это показать - графически и желательно странам.

Я для этих целей использую MapServer. Есть еще другие технологии вроде Mapnik и так далее. Мне хватает технологий MapServer.

Что он может предложить нашему проекту?

  • Он может нарисовать по геометрическим объектам карту, разукрасить эту картинку. Многоугольники с одним типом залить одним цветом, многоугольники с другим типом — другим.
  • MapServer "умеет" из коробки нарезать эту картинку на "плитку" (англ. tile) так, как это делает сервис "Карты Google" (по той же формуле, в том же виде).
  • Для объектов можно применить стили. В MapServer чуть ли не собственный CSS придумали (собственные иконки и так далее).
  • MapServer может подписывать объекты. Кто пытался это сделать сам, наверное, меня поймет. Найти центроид, всунуть туда текст, выровнять его — не очень удобно. MapServer сам это делает, причем даже в нарезанных картинках.
  • Помимо объектов PostGIS, MapServer умеет работать еще с кучей разных типов объектов (за что он мне и понравился).
  • Многое другое, что я сам пока не изучил подробно.

Существуют MapFile и MapServer. Если сравнить с SQL, то, насколько вы знаете, есть SQL и есть его процедуры. Это приблизительно то же самое.

MapFile — это декларативный файл, в котором мы описываем, что у нас есть такая-то карта с такими-то слоями, выбирается она таким-то образом, описывается такими-то стилями. Написав этот конфигурационный файл, мы получим хорошую нарезанную карту. Он поддерживает различные шрифты и цвета.

Если вам этого недостаточно (мне этого было достаточно), помимо этого файла есть еще MapScript. Он позволяет либо на С++, либо на Python написать скрипт для растеризации карты. Он позволит вам прочитать конфигурационный скрипт MapFile, что-то там поменять с помощью логики и отрендерить.

Почему я использовал Perl? Конечно, Excess-версия есть. Но при попытке забрать нужные данные мне в Perl возвращают "pointer" языка "Си" и пишут: «У нас до этого руки не дошли». То есть забрать полученные данные в Perl не получалось.

MapServer, конечно, хорошая штука. Но по умолчанию он стартует в CGI. Растеризация карт в CGI — это классно, но очень медленно. Поэтому первая вещь, которую стоит поднять на любой проект с MapServer, — это FastCGI. Как ни странно, он даже работает в FastCGI и с довольно неплохой скоростью.

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

Я забыл рассказать еще про одну особенность PostGIS. Он позволяет создавать индексы для геометрических столбцов, которые без полного последовательного сканирования таблицы позволяют посмотреть, находится ли какая-то точка в таблице.

К примеру, MapServer выбирает с карты не полностью всю информацию, а только ту, которая находится в нашей видимой части. Если я приблизил что-то с 20-кратным увеличением, то он выберет только тот прямоугольник, который мне нужно отобразить. Всю карту он трогать не будет. Для этого нужно создавать гистовый индекс, который все ускоряет.

Если вы все-таки решите написать свой сервис, я поделюсь парой интересных библиотек, которые будут вам полезны. Изначально сервис писался в не самом презентабельном виде. Растеризовалась SVG, которую я честно взял из Википедии, делались патчи и сохранялись в файлы.

Все это изначально писалось на языках Perl и Catalyst. Как только я начал иметь дело с геометрическими данными, я понял, что в Catalyst я хорошо разбираюсь, но все-таки лучше использовать Python.

Помимо библиотеки Gios, которая позволяет реализовать на Python то, что я вам рассказывал про PostGIS, у Python есть очень интересное расширение geo django. Помимо расширения ORM, которое позволяет вам работать с функциями нативно, помимо интеграции с Gios, который позволяет на Python пользоваться геометрическими объектами (точка, линия и так далее), она еще расширяет возможности админпанели. В админке можно редактировать геометрические контуры из JavaScript, перетаскивая линии и точки. Это бывает очень удобно.

OJR — это библиотека, которая преобразовывает различные типы данных. У вас карта может быть в одном формате ("shapefile" либо формат MySQL), а нужен другой. OJR поможет преобразовать данные в формат PostGIS.

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

Open Street Maps я сначала скачал, потом пытался загнать это в PostGIS. Занимает это приложение 140 гигабайт. Там присутствует практически вся информация о Москве (не знаю, как насчет регионов). Днные для крупных городов сравнимы с Яндекс-картами, Google-картами, - с векторной их частью.

Мировые границы (англ. World boundaries) — это уменьшенная часть сервиса с точностью до крупных городов, границ стран и так далее. Она занимает всего 50 мегабайт. Можно скачать ее, и карта мира у вас уже будет. Open Street Maps — очень хороший хороший и точный сервис. К сожалению, аэрофотосъемки с открытым исходным кодом я не нашел. Наверное, у Ричарда Столлмана все-таки не хватило денег, чтобы облететь на вертолете весь мир и сфотографировать его.

Собственно, с данными вот так. Это работает - на мой сервис можно посмотреть, поиграть с масштабом карт.

Кстати, в качестве JavaScript-версии я все-таки использую JavaScript от Google. С него можно убрать стандартные слои и применить свой, если хорошо постараться.

У меня все. Вопросы?

Вопросы:

Вопрос: — Сломался ты, наверное, когда делал свои формулы на итерационных эллиптических интегралах. Или не дошел до них? Хорошо когда есть векторные карты, и их надо растеризовать. А есть еще обратная задача: у нас есть растеризованная карта. Среди туристов популярны сканированные. Естественно, это нелегально. Но этот вопрос мы оставляем в стороне. Есть огромное количество карт, в системе координат Пулково 42 со всей нашей необъятной Родины. Каждая карта представляет из себя какой-то картографированный кусок поверхности нашей страны, у которого есть все четыре границы. Есть ли какой-то разумный способ залить эту карту в MapServer или куда-то еще, привязав к ней границы, чтобы потом можно было на эту карту поставить какую-то точку и сказать: «Мы здесь»? Андрей Костенко: — В MapServer — без проблем. Помимо работы с PostGIS, у него есть возможности работы и с растеризованными картами. Это даже проще сделать. Совершенно без проблем. Логику с использованием PostGIS вы можете "навесить" сверху. У меня приблизительно так и делается. Когда человек "тыцает" по какому-то месту (я не знаю, куда он по картинке "тыцает"), я по географическим координатам вычисляю страну. Это совершенно несложно, если что — могу подсказать. Вопрос: — В данном случае вы использовали данные с Open Street Maps в формате OSM или Shape? Андрей Костенко: — В формате OSM — это огромный xml-файл,который... Да, OSM. Вопрос: — Каким образом там была реализована привязка к геокоординатам? Например, той же Москвы. Была ли она там? Или вы потом вручную это делали? Андрей Костенко: — Я неделю убивал свой сервер, пытался засунуть это в PostGIS. После чего засунул, посмотрел: «Нет, мне этого слишком много». Скачал "World boundaries" в формате shapefile, их мне пока хватает. Вопрос: — Не совсем было понятно, в каком ключе идет работа с сервером. MapServer формирует сразу готовую картинку и отдает клиенту, или набор tile’ов на лету формирует? Или же tile’ы уже сформированы и хранятся на сервере? Андрей Костенко: — Есть много вариантов работы. Один из вариантов — сгенерировать картинку в каком-то масштабе. Второй вариант — сгенерировать набор tile’ов напрямую из PostGIS. Третий вариант — набор tile’ов с кэшированием. Вопрос: — Что было использовано вами в данном случае? Андрей Костенко: — Набор tile’ов. Вопрос: — Почему в качестве клиента вы не захотели использовать, например, OpenLayers? Андрей Костенко: — Если честно, сначала они использовались, но они не показались мне хорошим решением. Потом мне Google Клиент понравился, потому что когда я прокручиваю колесико, карта ко мне «приезжает». Вопрос: — Хотелось бы узнать по поводу всех этих оптимизаций внутри PostGIS. Во-первых, как там насчет 180-го меридиана? Там получается двоичный случай: плюс/минус. Поддерживаются ли они? Второй момент. Когда нам нужно прочертить кратчайшее расстояние — понятное дело, что это уже будет на нашей карте не прямая, а некоторая дуга. Как с этим обстоят дела? Андрей Костенко: — Насчет второго вопроса не очень уверен. Думаю, вам стоит посмотреть это. Насчет этого меридиана — в PostGIS в версии 1.4 или 1.5 появился новый тип данных, называется Geography. Он как раз решает эту проблему с переходом. У меня ее не возникло, поэтому все в Geometry используется. Вопрос: — Почему презентация не будет опубликована? Андрей Костенко: — Я попытаюсь это сделать. Просто когда я пытаюсь сохранить из Google Docs эту презентацию, появляется «java lang number point exception» — серверная ошибка Google. Я ее не могу ни скачать, ни распечатать — ничего. Она есть только в таком экземпляре - и все. Могу дать доступ.

Обожаю карты, могу рассматривать их часами, прокладывать маршруты, изучать рельеф или просто смотреть на изображения планеты, снятые из космоса. Хотя карты – это, конечно же, не просто развлечение; это важный инструмент, который используется в огромном количестве всевозможных профессий. За годы сёрфинга по интернету я набрал хороший список интересных картографических сервисов и в этой статье с удовольствием им поделюсь.

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

1. Google карты

Кто не знает про гугл карты? все! но некоторые функции почему-то не пользуются большой популярностью, а зря, они могут оказаться весьма полезными.

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

2. Карта времени

Сторонний сервис от Google который покажет как менялась наша планета за период с 1984 года по 2016. Находите любое место на планете, которое вам интересно и запускаете таймлапс, перед вами промелькнут 32 года наблюдения за планетой из космоса. Местами зрелище не самое оптимистичное: города разрастаются, всё больше отнимая у природы её территории, моря исчезают, тают ледники и всё это прямо на ваших глазах.

3. Карта на которой отмечен газон в вашем дворе

Если вы любите поизучать различные территории на картах и до сих пор не знаете про викимапию, то прямо сейчас для вас откроется новый мир. Wikimapia - сайт по принципу wiki (Как Википедия), где каждый пользователь может добавлять свои точки и области. Ресурс существует уже давно и на него нанесено огромное количество всевозможных объектов. На этой карте удобно смотреть границы хребтов, национальных парков, искать точные координаты вершин и даже небольших объектов. Тут можно найти лесные избы, мелкие неизвестные озёра и многое много другое. У популярных мест есть описания и фотографии, но в большинстве случаев - это просто отметки, чего впрочем вполне достаточно, чтобы изучить район, в который вы планируете прогуляться или узнать, какое название носит сквер возле вашего дома.

4. Сервис для планирования маршрутов

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

Одна из самых полезных функций для обладателей навигаторов – возможность скачать выбранный слой карты в формате jnx, – соответствующая кнопка находится слева внизу. Или же просто распечатать на принтере карту и маршрут, который вы себе нарисовали.

5. Сервис для планирования речных маршрутов

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

6. Маркированные тропы

Полезный сервис для любителей активного отдыха. Здесь есть несколько разделов: Hiking – пешие прогулки, Cycling – велопрогулки, Mtb – горный велосипед, Riding – конные маршруты, Skating – пригодится роллерам, а Slopes – покажет горнолыжные трассы. Большая часть материалов здесь про Европу, много маршрутов по Америке, но практически нет в других регионах.

7. Карты счастья

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

Smelly Maps – карта запахов .

Карта представляет и себя схему с обозначением запахов улиц. Информацию для составления карт создатели собирают, анализируя посты и фотографии в социальных медиа. Например, больше всего постов, сделанных на Тайм Сквер, описывают природу или еду. Городов в списке не так много, но посмотреть весьма интересно

Chatty maps – карта звуков .

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

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

8. Карта ДТП России

Карта далеко не развлекательного характера, на ней отмечены дорожно-транспортные происшествия за определённый период времени. Здесь можно проанализировать, какие трассы в России представляют наибольшую опасность для путешествий. Конечно не стоит изучив карту строго решить для себя не ездить по какой-либо трассе, лучше использовать эти данные, чтобы выбирать подходящее время суток и учитывать погодные условия на действительно опасных дорогах.

9. Морской трафик

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

10. Воздушный трафик

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

11. Карта загрязнения воздуха

Глобальное загрязнение воздуха частицами РМ2.5 (воздушный загрязнитель, в состав которого входят как твердые микрочастицы, так и мельчайшие капельки жидкостей). Это один из важных показателей загрязнения воздуха, за которым наблюдают учёные. Карта наглядно показывает сосредоточение этих частиц на территориях, где такой показатель измеряется.

12. Векторные карты для печати

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

13. Карта популярных точек съёмки

Два проекта фотографа Эрика Фишера (Eric Fischer) на сайте flickr.com.

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

На других картах отметки изображены уже тремя цветами. Красным обозначены места, в которых фотографии делают туристы, синим - фото сделанные местными, а жёлтым - места, где фотографии делают и те и другие. Чтобы подробнее рассмотреть эти карты придётся их скачать, нажав на стрелочку справа внизу, выбрав нужное разрешение.

14. Карта ретро фотографий

Проект скорее о фотографиях, чем о картах, но тоже весьма интересен. Здесь вы найдёте старинные фотографии в любых уголках мира, привязанные к местам на карте, где они были сделаны. Быть может вы найдёте древнюю фотографию улицы, на которой сейчас живёте.

15. Палеонтологическая карта

Онлайн-база данных, предоставляющая информацию о местообнаружении, датировке и классификации ископаемых останков животных, растений и микроорганизмов. Это огромная объемная база данных, являющаяся коллективным проектом исследователей. Естественно всё это размещено на интерактивной карте мира.

16. Настоящие размеры государств

На картах мира сферическая поверхность проецируется на плоскость, поэтому с их помощью не получается объективно сравнивать сразу все территории. Не дает этого сделать и глобус. В итоге люди воспринимают размеры территорий неправильно. Самый яркий пример - нереально огромные размеры Гренландии: на картах кажется,что она в четыре раза больше Австралии, но в действительности она в три раза меньше ее (2 135 337 кв.км. против 7 592 594 кв.км). Этот сайт наглядно покажет вам, как искажаются территории на общепринятых картах. Вводите в строке поиска название государства и перетаскиваете её к любой стране. Посмотрите как сильно меняются масштабы по мере удаления от экватора, а когда вам в очередной раз скажут, что не могут понять почему Гренландия остров, а Австралия материк, покажите им этот сайт.

17. Карта пунктов приёма вторсырья

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

Мусор - одна из самых страшных проблем экологии земли, человечество ежегодно производит миллиарды тонн мусора и решение может быть только одним - полная его переработка и повторное использование. Сравнительно недавно об этом стали задумываться, но великие дела всегда начинаются с простых шагов, так, каждый из нас уже сегодня может помочь экологии земли. Всё что для этого нужно - это сортировка и сдача мусора в специализированных местах. Таких мест пока не так много, но даже о них не все знают. Проект Recyclemap от Greenpeace поможет в этом!

18. Карта маршрутов по Норвегии

Планируете посетить Норвегию и погулять там пешком? ut.no - это самый полезный сайт по пешим маршрутам Норвегии. Конечно перевод на английский и русский языки только с помощью гугл переводчика, но интерфейс сайта прост и интуитивно понятен, особенно раздел карт. Просто выбираете район, в котором вы планируете погулять, находите его на карте и смотрите все маршруты, отмеченные здесь. Каждый маршрут имеет небольшое описание с километражем, фотографиями и GPS треком, который можно скачать.

19. Старые карты

На этом сайте собрано просто гигантское количество старых печатных карт со всего мира. Для начала введите в поисковой строке название города или региона который вас интересует, после этого вы увидите справа список карт доступных для этой местности. Здесь можно найти образцы самых первых карт, со времён, когда ещё не было электроники и все исследования проводились лишь простыми человеческими исследованиями и зарисовками местности. Любую карту можно открыть в максимально-доступном размере и сохранить себе для изучения истории.

20. Маркированные маршруты России

Проект российских блогеров, решивших промаркировать маршруты в нашей огромной стране. Маркировкой троп занимаются волонтёры по всей России в соответствии с требованиями проекта, а затем выкладывают на сайте для того, чтобы мы с вами могли им пользоваться! Отличная идея и начало её реализации, ведь культура пешего туризма, трекинга и хайкинга, как говорят за рубежом, у нас только зарождается и проект rutrail этому очень сильно способствует.

21. Интерактивная метеокарта

Классная карта метеоданных, на ней наглядно изображены важные показатели: такие как ветер, его направление и скорость порывов, атмосферное давление, осадки и влажность воздуха. Также можно посмотреть карту снежного покрова и увидеть, какая часть нашей планеты сейчас укрыта белым одеялом. Внизу есть временная шкала для выбора дня прогноза. А если нажать на кнопку «пуск», вы увидите, как будут двигаться циклоны и антициклоны и в целом, как будут меняться метеорологические условия

22. Карта гроз

На этой карте показаны отметки, где ударила молния в реальном времени. Отметка остаётся на карте в течении нескольких часов и меняет цвет в зависимости от давности раската грозы. Так, например, белая отметка означает, что молния ударила буквально в эти минуты, а красная говорит о том что гроза была около часа назад. Интересно, что специальные грозопеленгаторы, установленные по всему миру, в большей степени - дело рук энтузиастов, и даже вы сами можете собрать специальное устройство, подключить к интернету и отправлять данные на этот сервис. Соответствующая инструкция есть на форуме сервиса. Очень интересный сайт для любителей поснимать грозу, я с другом регулярно пользуюсь им, чтобы попробовать запечатлеть молнию на фотографии.

23. Карта прогноза северного сияния

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

24. Карта бюджетных авиакомпаний

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

25. Карта цен на авиабилеты

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

26. Экологические конфликты

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

27. Карты Trekkingmania

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

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