Карты на стол: как выбрать поставщика географических карт для мобильного приложения
У вас есть отличная идея для мобильного приложения. Дизайнеры уже продумывают элементы интерфейса, вы мысленно читаете положительные отзывы на популярных сайтах, в уме прикидываете статью на Хабре. Будущее прекрасно и пестрит как минимум 4,5 звездами в Google Play и AppStore. Ах да, осталась мелочь: выбрать поставщика карт. Но когда начнете вертеть эту мелочь и так, и эдак, то станет понятно, что монетка не упала орлом или решкой, а стала на ребро.
От чего зависит выбор картографического сервиса? Кажется, что все просто: приложение для России? Берем карты Яндекса. Направляем взгляд на Запад? Google maps в помощь. Или так: для Android подойдут гугловские карты, так как все равно на эти смартфоны предустанавливают (пока) продукты Google. Проще? Да. Выгоднее и логичнее? Нет.
Чтобы определиться с провайдером карт, нужно учесть много параметров. И хотя переменных выходит предостаточно, попробуем вывести несколько правил, на базе которых сделать выбор проще.
В первую очередь смотрите на свой продукт, а не на предложения геосервисов.
О чем вы
Самый важный пункт — функциональность, которую вы собираетесь реализовывать. Что будет делать приложение? Для чего ему карта? Просто отметить адреса магазинов или указать проезд к салону красоты это одно. А если все действия пользователя завязаны на маршрутах и поиске по координатам — совсем другой разговор.
Например
В питерском Институте дизайна и урбанистики захотели гулять интересно, а не кратчайшим путем, и разработали сервис Sight Safari. Мобильное приложение пока что на стадии разработки. А вот история появления веб-сервиса наглядно поясняет, почему карты от Google и Яндекса не их метод и как бороться с недочетами карт с открытым кодом.
Далеко не все сервисы поддерживают работу в офлайн-режиме и роутинг. Не все позволяют наносить на свои карты пользовательские данные. Наконец, у кого-то карты растровые, а кто-то предлагает векторные с большим потенциалом для масштабирования.
Сюда же можно отнести вопрос о смартфоне: на каких аппаратах будет установлено ваше приложение? Если не слишком мощных, то возможно вам стоит обратить внимание не на гигантов с обширными функциями (например, карты от Google могут загружаться дольше, чем сможет выдержать без нервов владелец простого телефона с небольшой памятью), а на что-то более специфичное.
Также стоит помнить, что если ваша функциональность строится на базе карт, то в лице провайдера лучше найти партнера, а не мелкую побочную детальку. Чтоб в один непрекрасный день весь контроль над критичной частью инфраструктуры не пошел в туман вместе с изменениями в условиях использования API карт.
Где вы
«А сегодня мы попробуем завоевать мир» — говорила лабораторная мышь Брейн в сериале о себе, любимой, и не такой амбициозной мышке Пинки. Если вас одолевают те же мысли, то переходите к просмотру карт вживую: какая детализация по странам? А на каких языках названия? Если приложение установят на iPhone в Колумбии, то сможет пользователь найти нужный дом в Арауке, а в Сан-Андреасе кликнуть на маркер, вызвать окошко с информацией и прочитать описание на креольском?
Вполне вероятно, что ваша география упирается не в страны, а в города или даже поселки городского типа. Тогда стоит сравнить один и тот же пункт с точки зрения разных картографов. Возможно, у кого-то в селе Новые Балуйки прописаны улицы, а кто-то грешит серыми областями, но у вас ведь приложение для покупок в новобалуйских магазинах.
Например
Польский веб-сервис по поиску лекарств в аптеках GdziePoLek работал на Google Maps, стабильно и без вопросов. Но в июне 2018 года владельцы получили письмо от Google, где их уведомляли об изменениях на платформе и в условиях использования. Новые реалии GdziePoLek не устроили. Пришлось искать другого поставщика карт. На удивление, альтернатива не такая плохая: аптека в небольшом городке Констанцине (23 тысячи жителей на 2006 год) выглядит достойно не только у Google.
(Источник: блог стартапа)
Проверьте, какие карты предпочитают пользователи в нужных вам ареалах. Привычка — страшная вещь: вы можете сделать наикрутейшую маршрутизацию, красочные слои с кучей информации, а пользователям будет неудобно перестраиваться. И вот уже идут отказы от приложения.
Сколько у вас денег
Не все карты одинаково бесплатны. В примере о польском стартапе речь как раз о деньгах: в их случае тариф $0,5 для коммерческого использования увеличился до $7 (в 14 раз). Показать человеку, где купить валерьянки, стало обходиться дорого. Сыграла роль и новая система оплаты, pay-as-you-go: при постоплате GdziePoLek потеряли возможность планировать расходы.
Впрочем, здесь есть один щекотливый момент: если у вашего приложения много загрузок, количество пользователей растет не по дням, а по часам, а денег на оплату карт нет — что вы сделали не так в своей маркетинговой стратегии?
Сколько вы берете денег
Если ваше приложение можно свободно скачивать и кто угодно может в нем зарегистрироваться — поздравляем, вы прекрасны и получаете карты бесплатно от любого провайдера, даже от ведущих игроков. В противном случае (например, если у вас платное приложение для бухгалтеров) придется использовать коммерческую лицензию. И здесь стоит четко понимать, какую долю в вашей функциональности занимают карты и сколько обращений к ним со стороны пользователя будет в месяц.
Например
При использовании коммерческой лицензии Here maps вы заплатите $449 за месяц, если купите пакет Pro. А ваши пользователи смогут совершить до миллиона транзакций с картой.
Под транзакциями Here подразумевает запрос к серверу. Но случай с картами особый: если идет запрос к карте, неважно, спутник это или карта дорог, за одну транзакцию засчитывается 15 запросов к серверу. Запрос при геокодировании засчитывается за одну транзакцию. Полный перечень вариантов транзакций здесь.
У вас нативное или гибридное приложение
Карты — это функциональность, которая реализуется на стороне смартфона. Поэтому если у вас нативное приложение для одной или обеих платформ, то вам нужны специалисты по Java/Kotlin и/или Objective-C/Swift. Если же в планах выпустить на рынок гибрид, то привлекать знатоков нативных языков не потребуется.
Большинство провайдеров поддерживают как iOS, так и Android, и стараются создавать подробные гайды для разработчиков. Так что достать API карт для желаемой платформы не проблема.
Google Maps
Ты не ты, когда не прочитал документацию от Google. Примеры кода, библиотеки, SDK — найти можно все. Разработчикам предлагается воспользоваться инструментом для подбора API, на случай, если вы не уверены, какой интерфейс для проекта нужен.
Жарким летом 2018-го разработчикам представили Google Maps Platform — мощный сервис, объединивший 18 инструментов в три категории: «Карты», «Маршруты» и «Места». Пользоваться платформой можно как условно-бесплатно (в пределах $200), так и платно. Полный прайс здесь, но лето не случайно было таким жарким: есть и страница, где объясняется, как пользоваться прайсом и расшифровывать счета — видимо, далеко не всем новая система оплаты показалась прозрачной.
Несмотря на путаницу в тарифах и не всем приглянувшиеся обновления платформа постоянно развивается, встраивает в карты что-то новое. Например, на конференции в мае 2018-го анонсировали режим дополненной реальности: наводишь камеру на улицу и видишь карточки мест, расположенных рядом, названия собственно улицы, строишь маршрут прямо на асфальте. Разработчики добавили в презентацию, как говорится, for fun помощника — лисицу, которая показывает, куда идти.
(Источник: Jeff Chiu / AP / Scanpix / LETA)
Обратите внимание
С 11 июня для доступа к услугам Google Maps Platform разработчикам требуется действующий ключ API и платежный аккаунт на Google Cloud Platform. Даже если вам многого не надо и все ваши действия вписываются в кредит на 200 долларов.
Яндекс.Карты
Не в противовес Google Maps Platform, но близко к тому Яндекс показывает Yandex MapKit. Сервис позволяет интегрировать карты в мобильные приложения для Android и iOS. Карты будут работать как в онлайн-режиме, так и в офлайне.
Это многофункциональный и прозрачный в части оплаты инструмент: даёт возможность встроить в приложение практически любую функцию «Яндекс.Карт», от поиска адресов до прокладки маршрута с учетом строящихся домов. Полный прайс здесь.
Обратите внимание
Yandex MapKit можно использовать бесплатно или на коммерческой основе. Общее число запросов к геокодеру, маршрутизатору и панорамам в сутки не должно превышать 25 тысяч для бесплатного использования.
(Источник: Яндекс)
Платных версий две: стандартная и расширенная. Лицензия дается на год, а ее стоимость зависит от назначения приложения, его возможностей и количества запросов к приложению в сутки.
OpenStreetMap
Набирающий все большую популярность сервис с открытым кодом, «Википедия карт». Данные создаются и вносятся силами участников сообщества. Прогремел по СМИ как отличный вариант «crisis mapping», когда в 2010 году после землетрясения на Гаити тысячи пользователей занялись актуальной картой региона с учетом изменившегося рельефа и нанесением точек, где пострадавшие могут получить помощь.
Карты OpenStreetMap построены на базе картографической JS-библиотеки Leaflet. Основная цель сообщества мапперов OSM — это не столько отрисовка карты, сколько создание базы данных на ее основе и наполнение точек информацией. Поэтому на базе OSM можно создать множество интересных карт: велосипедные маршруты, карты курортов с достопримечательностями и так далее.
Эти карты бесплатные, но есть свои тонкости технического характера (например, ограничение на количество запросов геокодирования в секунду к серверу OSM). Плюс неудобство могут доставить все «прелести» сетевого проекта.
Например
Тег highway=unspecified в OSM означает не «дорога неизвестного типа», а конкретный тип дороги по европейской классификации. У него предполагается наличие пешеходной обочины или тротуара. Но многие пользователи присваивают этот тег любой неизвестной дороге, в результате приложения с навигацией на основе OSM строят здесь пешие маршруты. А дорога-то может быть только для авто.
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 Эрик Гундерсен в одном из интервью сказал: «Если делаешь технологии для машин, то плотно общайся с автомобильными инженерами. <...> По сути, мы делаем карты не для людей, а для роботов. Они спроектированы с учетом возможностей автомобильных сенсоров, радаров и других систем.»
Here
Геолокационная платформа, основанная Nokia (сейчас принадлежит консорциуму, в который входят компании Audi AG, BMW Group, Daimler AG, Intel, Navinfo, NVIDIA, Pioneer, Bosh, Continental). Покрытие удовлетворительное, в том числе в России. Но карты в нашей стране, однако, не страдают подробностями: вы можете проложить маршрут, увидеть номера домов, однако POI (point of interest, достопримечательности, магазины, офисы, заправки и так далее) часто оказываются неактуальными. Поэтому если ваше приложение будет ориентировано на пешеходов или поиск организаций (особенно в небольших городах), Here в России не ваш провайдер.
А вот для водителей и логистических сервисов 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: детализация карт в Европе на высоте.
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, зашли в бар. Или ресторан. Или, возможно, это заправка.)
TomTom
TomTom — компания из Нидерландов, которая прочно обосновалась на рынке навигаторов в странах Евросоюза и Северной Америки. Благодаря покупке в 2008 году поставщика навигационных карт Tele Atlas имеет отличное покрытие.
Этот провайдер дает 2500 транзакций в день бесплатно. Далее придется платить по факту использования, от $25. Для коммерческих приложений и логистических бизнесов лицензия обойдется в сумму от $199.
Обратите внимание
TomTom отметилась в сотрудничестве с Apple: «яблочная компания» выбрала карты TomTom для навигационного приложения собственной разработки на iOS 6. И продлевает соглашения по сей день. Угадайте, чьи карты таким образом были заменены в далеком 2012 году? Верно — Google.
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 сменит вид деятельности и займется выпуском детских книг. Но пока что имеем такую картину.
3. И как это работает?
Допустим, вы задумали приложение из лучших ностальгических побуждений. Было бы отлично, если в любом городе России на карте выводился список песен, где поется о городе или достопримечательностях. «Замечательный мужик / Меня вывез в Геленджик» или «В Питере пить» от одного известного исполнителя вам захотелось увековечить на карте. Точки вы планируете ставить либо в туристическом центре города, либо в каком-нибудь популярном у горожан месте. Приложение конечно же будет бесплатным — вам ничего не жалко для народа.
Приложение для России, западный рынок вы не рассматриваете. Число обращений к карте вряд ли будет огромным — вы понимаете, что приложение рассчитано не на массовое и не на ежедневное использование, хотя в период отпусков количество скачиваний может увеличиться. Из личных предпочтений вы захотели сделать приложение для Android-смартфонов.
Ваши действия? Вам вполне подойдет точность и детализация карт от Яндекса и Google. 2ГИС тоже ваш провайдер. Однако вы хотите ставить балун (всплывающее окно с любым HTML-содержимым) на какое-то интересное место, о котором, возможно, не знают официальные справочники. А может, и самостоятельно дополнять карту на радость пользователям. Значит, ваш выбор — OSM. Удачи!
Например
В практике Umbrella IT чаще всего фигурируют карты от Google. Такой выбор обусловлен удобством использования и кастомизации, а также богатым функционалом. Однако бывают ситуации, когда заказчику требуется что-то особое. Таким стал случай с приложением, от которого требовалась работа в офлайне и хорошая детализация карты для чекинов, но в том регионе карты от Google показывали только большие города. И как чекиниться в небольшом поселке, если на карте вместо него унылый серый многоугольник? Так что мы приняли решение использовать OSM
Обратить внимание на Google. Для вашего приложения важна стабильность работы карт, детальность в небольших городах. И главное — возможность отслеживать груз. А вот работа с картами в офлайне не сильно влияет на выбор: вашим пользователям не потребуется загружать тяжелые карты на свои смартфоны, смотреть названия улиц — главное видеть точку, в которой сейчас находится груз.
Если же вы рассматриваете другого провайдера, то держите в голове следующее: для приложений по мониторингу транспорта/людей/еще чего-то любой поставщик карт предоставляет свои услуги платно. Даже если у вас свободно распространяемое бесплатное приложение, а количество обращений к карте не превышает лимиты для бесплатных тарифов.
Фото: Freepik