Карты на стол: как выбрать поставщика географических карт для мобильного приложения

--eijezr8ttasqntlzjrgrmznac.png
У вас есть отличная идея для мобильного приложения. Дизайнеры уже продумывают элементы интерфейса, вы мысленно читаете положительные отзывы на популярных сайтах, в уме прикидываете статью на Хабре. Будущее прекрасно и пестрит как минимум 4,5 звездами в Google Play и AppStore. Ах да, осталась мелочь: выбрать поставщика карт. Но когда начнете вертеть эту мелочь и так, и эдак, то станет понятно, что монетка не упала орлом или решкой, а стала на ребро.

От чего зависит выбор картографического сервиса? Кажется, что все просто: приложение для России? Берем карты Яндекса. Направляем взгляд на Запад? Google maps в помощь. Или так: для Android подойдут гугловские карты, так как все равно на эти смартфоны предустанавливают (пока) продукты Google. Проще? Да. Выгоднее и логичнее? Нет.

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


В первую очередь смотрите на свой продукт, а не на предложения геосервисов.

О чем вы


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

Например
В питерском Институте дизайна и урбанистики захотели гулять интересно, а не кратчайшим путем, и разработали сервис Sight Safari. Мобильное приложение пока что на стадии разработки. А вот история появления веб-сервиса наглядно поясняет, почему карты от Google и Яндекса не их метод и как бороться с недочетами карт с открытым кодом.

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

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

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

Где вы


«А сегодня мы попробуем завоевать мир» — говорила лабораторная мышь Брейн в сериале о себе, любимой, и не такой амбициозной мышке Пинки. Если вас одолевают те же мысли, то переходите к просмотру карт вживую: какая детализация по странам? А на каких языках названия? Если приложение установят на iPhone в Колумбии, то сможет пользователь найти нужный дом в Арауке, а в Сан-Андреасе кликнуть на маркер, вызвать окошко с информацией и прочитать описание на креольском?

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

Например
Польский веб-сервис по поиску лекарств в аптеках GdziePoLek работал на Google Maps, стабильно и без вопросов. Но в июне 2018 года владельцы получили письмо от Google, где их уведомляли об изменениях на платформе и в условиях использования. Новые реалии GdziePoLek не устроили. Пришлось искать другого поставщика карт. На удивление, альтернатива не такая плохая: аптека в небольшом городке Констанцине (23 тысячи жителей на 2006 год) выглядит достойно не только у Google.
e9xngsazfv_gv9o2yocvzg5jskm.jpeg
(Источник: блог стартапа)

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

Сколько у вас денег


Не все карты одинаково бесплатны. В примере о польском стартапе речь как раз о деньгах: в их случае тариф $0,5 для коммерческого использования увеличился до $7 (в 14 раз). Показать человеку, где купить валерьянки, стало обходиться дорого. Сыграла роль и новая система оплаты, pay-as-you-go: при постоплате GdziePoLek потеряли возможность планировать расходы.

Впрочем, здесь есть один щекотливый момент: если у вашего приложения много загрузок, количество пользователей растет не по дням, а по часам, а денег на оплату карт нет — что вы сделали не так в своей маркетинговой стратегии?

Сколько вы берете денег


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

Например
При использовании коммерческой лицензии Here maps вы заплатите $449 за месяц, если купите пакет Pro. А ваши пользователи смогут совершить до миллиона транзакций с картой.
Под транзакциями Here подразумевает запрос к серверу. Но случай с картами особый: если идет запрос к карте, неважно, спутник это или карта дорог, за одну транзакцию засчитывается 15 запросов к серверу. Запрос при геокодировании засчитывается за одну транзакцию. Полный перечень вариантов транзакций здесь.

У вас нативное или гибридное приложение


Карты — это функциональность, которая реализуется на стороне смартфона. Поэтому если у вас нативное приложение для одной или обеих платформ, то вам нужны специалисты по Java/Kotlin и/или Objective-C/Swift. Если же в планах выпустить на рынок гибрид, то привлекать знатоков нативных языков не потребуется.

Большинство провайдеров поддерживают как iOS, так и Android, и стараются создавать подробные гайды для разработчиков. Так что достать API карт для желаемой платформы не проблема.


tvd_r2hvjpevquo3tkorbw3ef6u.jpeg

Google Maps


Ты не ты, когда не прочитал документацию от Google. Примеры кода, библиотеки, SDK — найти можно все. Разработчикам предлагается воспользоваться инструментом для подбора API, на случай, если вы не уверены, какой интерфейс для проекта нужен.

Жарким летом 2018-го разработчикам представили Google Maps Platform — мощный сервис, объединивший 18 инструментов в три категории: «Карты», «Маршруты» и «Места». Пользоваться платформой можно как условно-бесплатно (в пределах $200), так и платно. Полный прайс здесь, но лето не случайно было таким жарким: есть и страница, где объясняется, как пользоваться прайсом и расшифровывать счета — видимо, далеко не всем новая система оплаты показалась прозрачной.

Несмотря на путаницу в тарифах и не всем приглянувшиеся обновления платформа постоянно развивается, встраивает в карты что-то новое. Например, на конференции в мае 2018-го анонсировали режим дополненной реальности: наводишь камеру на улицу и видишь карточки мест, расположенных рядом, названия собственно улицы, строишь маршрут прямо на асфальте. Разработчики добавили в презентацию, как говорится, for fun помощника — лисицу, которая показывает, куда идти.

9rdljjsb3ib-1klls5dw4cck0t4.jpeg
(Источник: Jeff Chiu / AP / Scanpix / LETA)

Обратите внимание
С 11 июня для доступа к услугам Google Maps Platform разработчикам требуется действующий ключ API и платежный аккаунт на Google Cloud Platform. Даже если вам многого не надо и все ваши действия вписываются в кредит на 200 долларов.

6nbdql8z3ojpxpsf9smztatq_w0.jpeg

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


Не в противовес Google Maps Platform, но близко к тому Яндекс показывает Yandex MapKit. Сервис позволяет интегрировать карты в мобильные приложения для Android и iOS. Карты будут работать как в онлайн-режиме, так и в офлайне.

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

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

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

rys3wusgov8vjdmve94mnyim2vu.jpeg

OpenStreetMap


Набирающий все большую популярность сервис с открытым кодом, «Википедия карт». Данные создаются и вносятся силами участников сообщества. Прогремел по СМИ как отличный вариант «crisis mapping», когда в 2010 году после землетрясения на Гаити тысячи пользователей занялись актуальной картой региона с учетом изменившегося рельефа и нанесением точек, где пострадавшие могут получить помощь.

Карты OpenStreetMap построены на базе картографической JS-библиотеки Leaflet. Основная цель сообщества мапперов OSM — это не столько отрисовка карты, сколько создание базы данных на ее основе и наполнение точек информацией. Поэтому на базе OSM можно создать множество интересных карт: велосипедные маршруты, карты курортов с достопримечательностями и так далее.

Эти карты бесплатные, но есть свои тонкости технического характера (например, ограничение на количество запросов геокодирования в секунду к серверу OSM). Плюс неудобство могут доставить все «прелести» сетевого проекта.

Например
Тег highway=unspecified в OSM означает не «дорога неизвестного типа», а конкретный тип дороги по европейской классификации. У него предполагается наличие пешеходной обочины или тротуара. Но многие пользователи присваивают этот тег любой неизвестной дороге, в результате приложения с навигацией на основе OSM строят здесь пешие маршруты. А дорога-то может быть только для авто.

1yvmc5ya2dm-s9yj8prg7i831bk.jpeg

Mapbox


Этот сервис можно назвать своеобразной «оберткой» над OSM, что дает отличную детализацию картам. К тому же Mapbox в новостных сводках часто называют наиболее энергично развивающимся картографическим сервисом.

Например
Компания Urbica выпустила AR-приложение: можно посмотреть 3D-версии знаковых зданий Санкт-Петербурга в дополненной реальности. За базу взяли карты от Mapbox из-за активного развития SDK для Unity (платформа для разработки 3D-игр).

Стоимость использования, как и у большинства конкурентов, формируется исходя из количества запросов к карте за период времени. Расценки можно увидеть здесь. Есть возможность использовать бесплатно, если в месяц у вас будет до 50 тысяч: активных пользователей, запросов на геокодирование, запросов направлений. Если картой через ваше приложение воспользовалось больше людей и сформировано больше запросов, то придется заплатить $0,5 за каждых 500 пользователей и тысячу запросов по системе pay-as-you-go.

Конечно, если у вас платное приложение, то смотрите на коммерческую лицензию: упомянутый выше pay-as-you-go со всеми его расценками плюс $499 в месяц.

Сноска
CEO Mapbox Эрик Гундерсен в одном из интервью сказал: «Если делаешь технологии для машин, то плотно общайся с автомобильными инженерами. <...> По сути, мы делаем карты не для людей, а для роботов. Они спроектированы с учетом возможностей автомобильных сенсоров, радаров и других систем.»

rdoldga9dcln126r7-anwgafzrm.jpeg

Here


Геолокационная платформа, основанная Nokia (сейчас принадлежит консорциуму, в который входят компании Audi AG, BMW Group, Daimler AG, Intel, Navinfo, NVIDIA, Pioneer, Bosh, Continental). Покрытие удовлетворительное, в том числе в России. Но карты в нашей стране, однако, не страдают подробностями: вы можете проложить маршрут, увидеть номера домов, однако POI (point of interest, достопримечательности, магазины, офисы, заправки и так далее) часто оказываются неактуальными. Поэтому если ваше приложение будет ориентировано на пешеходов или поиск организаций (особенно в небольших городах), Here в России не ваш провайдер.

cro5wjniycrxmjaced8cx-zx6z0.jpeg

А вот для водителей и логистических сервисов Here может стать хорошим решением. Карты Here есть в авто от Audi, BMW, Daimler. Да и покупали автопроизводители Here как базу для работы над системами автопилотирования, что вылилось в проект HD Live Map. В блоге компании на Medium, в частности, рассказывается, как при помощи API для маршрутизации грузовиков максимально упрощать путь автомобильного парка.

Безусловным плюсом Here можно назвать триал-период в 90 дней. Разработчики особо обращают внимание, что ключ на 90 дней дается без отправки своих платежных данных в Here (этакий легкий кивок в сторону Google с их требованием показать вашу кредитку, даже если вы рассчитываете никогда не выходить за пределы лимита в $200).

Если вы планируете сделать свое приложение платным, то — сюрприз! — Here позволяет делать это на freemium-тарифе. Yes, that’s fine with us — написано в FAQ. А вот за что придется платить, подробно можно узнать здесь.

Обратите внимание
Если ваша задача — точный поиск по адресам в ЕС, изучите Here: детализация карт в Европе на высоте.

iuqkegz5l2bg2dficuzxdl91qna.jpeg

2ГИС


Отечественный картографический сервис с детализацией до заборов. Открытый код как и у OSM, и та же JS-библиотека Leaflet в основе. Подробная база данных по России и не только. Особенно радуют сведения из справочников 2ГИС по местным компаниям, поэтому платформа пригодится тем, кто ориентирует приложения на пешеходов или каталоги фирм: ваши пользователи смогут легко найти нужный офис или достопримечательность на карте. Однако тут стоит быть внимательным — проверьте заранее, актуальна ли в нужном городе справочная информация, все ли POI нанесены на карту.

Сервис условно-бесплатный — всё то же использование API только для свободно скачиваемых открытых приложений.

Обратите внимание
2ГИС сотрудничает с компанией Apple: в приложение Карты на iOS были встроены данные об организациях в 290 городах, фотографии заведений и отзывы на них. Возможно, это поможет российским поклонникам Apple не попасть в ситуацию как в анекдоте, кочующем по форумам картографов на Западе:
A priest, a rabbi and a monk using Apple Maps walk into a bar, maybe it«s a restaurant, or possibly a gas station. (Священник, раввин и монах, используя карты Apple, зашли в бар. Или ресторан. Или, возможно, это заправка.)

yonxde-z4wembw2grlkimqm2eoy.jpeg

TomTom


TomTom — компания из Нидерландов, которая прочно обосновалась на рынке навигаторов в странах Евросоюза и Северной Америки. Благодаря покупке в 2008 году поставщика навигационных карт Tele Atlas имеет отличное покрытие.

Этот провайдер дает 2500 транзакций в день бесплатно. Далее придется платить по факту использования, от $25. Для коммерческих приложений и логистических бизнесов лицензия обойдется в сумму от $199.

Обратите внимание
TomTom отметилась в сотрудничестве с Apple: «яблочная компания» выбрала карты TomTom для навигационного приложения собственной разработки на iOS 6. И продлевает соглашения по сей день. Угадайте, чьи карты таким образом были заменены в далеком 2012 году? Верно — Google.

nkl288i-tp3z2vo-ybeb0hjjg9i.jpeg

Mapfit


Этот провайдер от имени его CEO обещает более точные карты, чем у тех же Mapbox и OSM. И стоимость ниже, чем у Google до введения новой системы оплаты.

Commmunity, Growth, Scale — три тарифных плана для разных целей, от бесплатного Community до $1499 в месяц по тарифу Scale, рассчитанному на масштабные приложения. Бесплатное использование возможно только в некоммерческих целях. В тарифе Community допускается до 50 тысяч загрузок карты в месяц. Полная стоимость здесь.

Обратите внимание
На сайте Mapfit в разделе FAQ есть пункт о миграции с карт любого другого провайдера, где обещают инструкцию на GitHub. На момент написания этого материала ссылка вместо пошагового гайда выдавала грустную ошибку 404. Однако в документации есть инструкция о переходе с конкретно Google maps.

LeafLet и OpenLayers


Если вы хотите независимости практически в абсолюте, то придется постараться. Вы можете развернуть собственную карту на базе OSM на своем сервере, с блэкджэком и нужными опциями — и все благодаря библиотекам Leaflet и OpenLayers.

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

А если покороче?


Для удобства сравнения мы свели самые важные данные по провайдерам в одну картинку. За максимальную оценку взяли »+++», за минимальную »+». Как видите, на момент написания этого материала провайдеры (в целом) идут примерно в одной линии. Конечно, всё может измениться в один момент: мапперы из OSM внезапно перестанут пополнять карты, Google сменит вид деятельности и займется выпуском детских книг. Но пока что имеем такую картину.

3hzysgrm2u7v2fohfl4yyex1qys.png

3. И как это работает?


Допустим, вы задумали приложение из лучших ностальгических побуждений. Было бы отлично, если в любом городе России на карте выводился список песен, где поется о городе или достопримечательностях. «Замечательный мужик / Меня вывез в Геленджик» или «В Питере пить» от одного известного исполнителя вам захотелось увековечить на карте. Точки вы планируете ставить либо в туристическом центре города, либо в каком-нибудь популярном у горожан месте. Приложение конечно же будет бесплатным — вам ничего не жалко для народа.

Приложение для России, западный рынок вы не рассматриваете. Число обращений к карте вряд ли будет огромным — вы понимаете, что приложение рассчитано не на массовое и не на ежедневное использование, хотя в период отпусков количество скачиваний может увеличиться. Из личных предпочтений вы захотели сделать приложение для Android-смартфонов.

Ваши действия? Вам вполне подойдет точность и детализация карт от Яндекса и Google. 2ГИС тоже ваш провайдер. Однако вы хотите ставить балун (всплывающее окно с любым HTML-содержимым) на какое-то интересное место, о котором, возможно, не знают официальные справочники. А может, и самостоятельно дополнять карту на радость пользователям. Значит, ваш выбор — OSM. Удачи!

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


Обратить внимание на Google. Для вашего приложения важна стабильность работы карт, детальность в небольших городах. И главное — возможность отслеживать груз. А вот работа с картами в офлайне не сильно влияет на выбор: вашим пользователям не потребуется загружать тяжелые карты на свои смартфоны, смотреть названия улиц — главное видеть точку, в которой сейчас находится груз.

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

Фото: Freepik

© Habrahabr.ru