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

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

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

1. Ваше приложение


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

О чем вы


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

Например
В питерском Институте дизайна и урбанистики захотели гулять интересно, а не кратчайшим путем, и разработали сервис 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 карт для желаемой платформы не проблема.

2. Ваш провайдер





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 году после землетрясения на Гаити тысячи пользователей занялись актуальной картой региона с учетом изменившегося рельефа и нанесением точек, где пострадавшие могут получить помощь.

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

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

Например
Тег highway=unclassified в 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


4. Бонус: что делать, если вы перевозите грузы


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

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

Фото: Freepik

Комментарии (40)


  1. argonavtt
    08.10.2018 20:52
    +2

    Имхо mapbox и openStreamMap(Leaflet) самые удобные для разработки.


    1. Tsvetik
      09.10.2018 07:33

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


    1. freeExec
      09.10.2018 23:11

      Строго говоря наоборот: данные OpenStreetMap, визуализация Mapbox/Leaflet. Поэтому разработчик контактирует только с Mapbox/Leaflet. Притом технически в них можно отображать что угодно, хоть гуглояндекс, но правда они этого не разрешают.


  1. sshikov
    08.10.2018 21:40

    >Карты OpenStreetMap построены на базе картографической JS-библиотеки Leaflet.
    Думаете вы, но нет (с)


  1. Imbecile
    08.10.2018 21:49

    А где в сравнении Бинг?


    1. xKiMaNx
      09.10.2018 14:40

      Если открыть Бинг и посмотреть справа снизу, то можно увидеть, что там HERE и OSM


      1. pfg21
        09.10.2018 15:46

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


    1. elena_umbrellait
      09.10.2018 17:19

      Мы описывали тех провайдеров, с которыми так или иначе сталкивались. Бингу не повезло :) Carto, Maps.Me опять же… Можем заняться Part 2 :)


  1. Wiemo
    09.10.2018 09:41

    Есть ещё CARTO


    1. Tsvetik
      09.10.2018 10:33

      У них вообще заманчивые сервисы, но ничего бесплатного кроме 30-дневного пробного периода я у них не нашел


  1. Tsvetik
    09.10.2018 10:31

    Статья вообще ни о чем, а таблица возможностей и подавно.


  1. eps
    09.10.2018 10:32

    У вас много понамешано с OSM и MapBox.


    • MapBox продаёт тайлы с данными OSM, поэтому покрытие и точность у них совпадают.


    • стандартные Leaflet-тайлы OSM бесплатны только для разработчиков. Они — ребята маленькие и серверов у них на всех не хватит



    данные OSM бесплатны и открыты для всех. А тайлы — нет



    Обратить внимание на Google. Для вашего приложения важна [...] детальность в небольших городах.

    Покрытие малых российских городов от Here или Google — это несерьёзно. В наших малых городах есть только OSM, (и то, если кто-нибудь из сообщества их отрисовал).


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


    1. Zverik
      09.10.2018 15:57

      Небольшая поправка: стандартные тайлы — это изображения, распространяемые на условиях обычной лицензии CC-BY-SA. С ними можно делать что угодно в рамках лицензии. Серверы не резиновые, это да, но если вы не условный фейсбук, то вам хватит. Вопрос тут не в лицензии, а в условиях использования: то есть, «не для всех», а не «для никого».

      Подробнее про лицензирование тайлов писал в канале штосма.


  1. psinetron
    09.10.2018 10:38

    Раньше использовал Google Maps, но в последнее время они сильно затянули гайки. Тех лимитов, что сейчас имеются просто не хватает на нормальное приложение. Дальше — огромные цены. Про Яндекс-карты совсем говорить не хочется, там цены заряжают уж совсем космические. Понятно, что всем кушать хочется, но даже если карты используются как вспомогательный элемент в приложении — они напрочь убивают всю рентабельность. Единственный выход использовать OSM и поддерживать свой тайловый сервер.
    MapBox — очень крутые, но во всех приложениея, в которых я их использовал — 99.99% баги именно в их *.so библиотеках. Приятные карты, но очень сырые библиотеки
    Все это ИМХО


    1. elena_umbrellait
      09.10.2018 17:29

      Во многих обзорах, которые мы читали во время поиска инфы для статьи, часто упоминался именно этот способ — OSM+свой сервер. Заманчиво, в общем-то… Хотя нужно просчитать, во сколько это обойдется.


      1. psinetron
        09.10.2018 17:42

        Мне, к сожалению, пришлось столкнуться с этим на своем опыте. Но на самом деле не все так сложно. Как правило карта не нужна мировая, поэтому на сервере достаточно иметь одну страну/регион. Да и докеровские сборки уже имеются. В принципе метод очень самодостаточный. Однако данный способ хорош только для тайлов.
        Все еще имеются две большие проблемы:
        1. Поиск маршрута. И если забить на актуализацию карт, то у гигантов (гуг и яша) есть преимущество в виде данных о пробках. Благодаря этим данным маршруты строятся гораздо интереснее. Но если делать запросы на маршрут — очень быстро упрешься в лимиты. Если делать навигатор не для городских автомобильных дорог, то можно воспользоваться данными OSM для построения маршрутов на своем сервере
        2. Геокодирование. И если с обратным геокодированием справляется nominatim (его можно так же поставить на свой сервер) то вот поиск по адресу сильно удручает. А если вам нужно все сделать красиво с автоподсказками, то в лимит упретесь моментально. Вот к этой проблеме разумного решения я так и не нашел :(


        1. JediPhilosopher
          09.10.2018 18:20

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


  1. linux_id
    09.10.2018 10:59

    Имхо 2ГИС и Яндекс.Карты самые удобные для разработки.


  1. vlivyur
    09.10.2018 11:44

    Для вашего приложения важна стабильность работы карт, детальность в небольших городах
    Серьёзно? Детальность в небольших городах у них максимум до центральной дороги. Иногда, конечно, бывают детальные небольшие города, с областными центрами уже вроде как везде в порядке, но райцентр райцентру рознь. Где-то детально, где-то не очень. Ну и не стоит ожидать что дорога, которой уже год как пользуются, будет отмечена у них, даже если вы в DC или DC2. А уж какими огородами они могут водить может убедиться любой пользователь Uber.
    И в сравнительной таблице Покрытие, Детализация, Детализация на уровне зданий, Актуализация информации в столбце для GMaps — враньё. Особенно в России. Равно как и для OSM (кроме Актуализация информации — тут всё честно). Особенно был удивлён что у GMaps Актуализация информации лучше, чем у ДубльГИС — ДубльГИС за неделю проверят и внесут изменения, в отличие от.
    для приложений по мониторингу транспорта/людей/еще чего-то любой поставщик карт предоставляет свои услуги платно
    Это тоже не всегда и может быть бесплатно и офлайново. Например, на базе того же OSM, если будете сами генерировать карты.


    1. cVoronin
      09.10.2018 16:07

      > Актуализация информации в столбце для GMaps — враньё. Особенно в России
      Могу сказать конкретно за Новоуральск, Гугл и Яндекс. Так вот, Гугл наш город знает куда лучше, чем Яндекс — особенно это актуально стало в контексте замены Uber (который использовал гугло-карты) на Яндекс-такси.


      1. elena_umbrellait
        09.10.2018 17:25

        Особенно был удивлён что у GMaps Актуализация информации лучше, чем у ДубльГИС — ДубльГИС за неделю проверят и внесут изменения, в отличие от.

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


  1. mOlind
    09.10.2018 13:09

    OpenStreetMap не бесплатный. Ну или бесплатный только для маленьких приложений. Как только приложение начнет создавать ощутимую нагрузку на тайл-сервера — его могут забанить. Так банили Pokemon GO, что вынудило их искать другого провайдера тайлов уже после запуска.

    Карты OpenStreetMap построены на базе картографической JS-библиотеки Leaflet.
    Это совсем не правда. Leaflet очень популярная JS-библиотека для интерактивных карт. Но OpenStreetMap на ней не основан и к мобильным приложениям она отношения не имеет ну совсем.

    В описании цен Mapbox написано, что вы должны переходить на Commercial план, если у вас платное приложение и вы платите за запросы данных. А в мобильных приложениях (речь в статье ведь именно о них) стоимость зависит от montly active users и платным приложениям не обязательно переходить на Commercial тарифный план.

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

    Мы разрабатываем приложение Galileo Офлайн Карты и фреймворк GLMap — компонент карт для мобильных приложений, который работает офлайн. По своему опыту могу сказать, что для того чтобы OSM работал офлайн надо пройти длинный путь начиная от сырых данных node, way, relation. Отфильтровать лишнее и сжать данные в бинарный формат, который можно будет удобно парсить. Где-то эти данные хостить. И как-то давать пользователям их скачивать. Потом к этим бинарным данным надо применить стиль, чтобы на выходе получились полигоны, линии, точки, текст с определенными параметрами прорисовки. И затем в нужном порядке все нарисовать и расставить текст. OpenStreetMap заканчивается на node, way, relation + теги описывающие данные.

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


    1. vlivyur
      09.10.2018 13:43

      OpenStreetMap всё ж бесплатен. OSM это про данные, а не тайлы. А вот тайлы могут быть платными.


      1. mOlind
        09.10.2018 14:07

        Согласен. И на этом моменте надо делать акцент. Доступ к тайлам описан в Tile Usage Policy.

        OpenStreetMap data is free for everyone to use. Our tile servers are not.


        1. pfg21
          09.10.2018 15:41

          мысль чтобы всякие там левые лишнего тайл-серверы не напрягали попытались сформулировать, но получилось откровенно говоря херово.
          тайлики тягаются в том числе и через большое количество прокси-сервероов CDN-сети, ни один из которых не принадлежит и даже не оплачивается осмф, хотя и работают с их сильного согласия.
          Да и писать «Our tile servers» надо очень осторожно, ведь есть еще и несколько отдельных от OSMF рендер-серверов, которые также не получают бабла от осмф, но работают в общем потоке раздачи тайликов, бесплатно и бескорыстно.
          в общем думать и думать как создавшуюся ситуацию появления большого интереса к осм правильно разрулить и получить от нее преференции, а не рубить сук, на котором сидишь.
          тайлики будут свободны для всеобщего применения — это древняя основная реклама осм и от нее никуда не деться.


    1. elena_umbrellait
      09.10.2018 16:21

      Это совсем не правда. Leaflet очень популярная JS-библиотека для интерактивных карт. Но OpenStreetMap на ней не основан и к мобильным приложениям она отношения не имеет ну совсем.

      Благодарю, сделаю апдейт


  1. JediPhilosopher
    09.10.2018 13:35

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

    Могу еще добавить немного по своему опыту:

    1) У OpenStreetMap есть некоторые проблемы с доступностью и стабильностью. Я в своем проекте использую Overpass API для пакетной загрузке сырых данных (т.е. не тайлов, а полигонов и геометрии). Зеркала время от времени умирают или начинают адово тормозить. А главное зеркало overpass-api.de у нас ВНЕЗАПНО заблокировано Роскомпозором. Пытался тут договориться в ИТМО чтобы у нас сделали свое зеркало — была бы неплохая пиар-история для университета. Но пока все на уровне слов только.
    Так же конечно все минусы коллективной разработки, то что вы процитировали и про что я рассказывал в своей статье. Стандартизация хромает на обе ноги. Для тайлов это наверное не существенно, а вот для машинной обработки данных карт — проблемно. Например народ не любит размечать теги landuse (тип использования территории: жилая, промышленная, торговая и т.п.), что очень мешает. Скоро сделаю еще один пост про OSM, как я тут на Варламова работал и тулзу одну картографическую пилил, там я по камням данных OSM нагулялся вдоволь.

    2) Геокодирование. Вот с этим вообще большая проблема. Для небольших хобби-проектов (которым сейчас и является Sight Safari) абсолютно неподъемны стоимости платных доступов к апи гугла или яндекса. Геокодер OSM — Nominatim — совершенно тупой и ужасный, годится только для поиска четко структурированных адресов и совершенно не подходит для обработки произвольного пользовательского ввода. Еще и адовые ограничения на 1 запрос в секунду (хотите больше — поднимайте свой инстанс, что опять же приличные затраты т.к. ему там ресурсов дофига нужно). Ищет черт знает как при этом. Еще и отваливается постоянно, то ему надо юзер-агента правильного передавать (дефолтные агенты хттп библиотек не годятся, их сразу банят), то паузу между запросами побольше сделать, то еще хз что ему не нравится.
    Более того, использовать геокодеры гугла и яндекса можно только на картах самого гугла и яндекса. Т.е. я не могу брать данные карты из OSM и рисовать поверх них точки на основе поиска адресов, взятых из яндекса.
    Вот тут приятным сюрпризом оказался HERE Maps. Я про них раньше почти не слышал, у нас они как-то не очень популярны. Однако случайно наткнулся в интернете в ответе на вопрос «где взять бесплатный геокодер». Имеют бесплатный план с количеством запросов вполне достаточным для небольшого проекта. По России неплохо ищут, во всяком случае по крупным городам, по мелким не проверял. При этом, что важно, не имеют таких драконовских ограничений на отображение данных.


    1. elena_umbrellait
      09.10.2018 13:46

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


  1. pfg21
    09.10.2018 15:30

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


    1. eps
      09.10.2018 15:36

      Тогда и OSM Foundation Tile Usage Policy надо переделать тоже


      1. pfg21
        09.10.2018 15:45

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


    1. mOlind
      09.10.2018 16:34

      Тайлы свободны. Но OSMF оставляют за собой право забанить слишком активных пользователей. И при разработке платного приложения этот сценарий надо учитывать до запуска, а не после, когда приложение уже забанили, как это было с Pokemon GO.

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


  1. pfg21
    09.10.2018 16:15

    UITcom будьте внимательны в своих тезисах. в осм нет тега «highway=unspecified» есть «highway=unclassified» т.е. дорога неклассифицированная. смысл появляется если понять систему классификации английских дорог с которой она и была срисована ^)


    1. elena_umbrellait
      09.10.2018 16:42

      /посыпала голову пеплом/ благодарю, поправлю


    1. JediPhilosopher
      09.10.2018 18:22

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


  1. den_admin
    09.10.2018 18:56

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


    1. labfranep
      09.10.2018 23:55

      Есть стиль под мапник XML и частично под Carto.CSS. Как выглядит, можно посмотреть вот тут.


      1. den_admin
        10.10.2018 08:53

        Да, очень похоже, только, к сожалению, сам файл со стилями недоступен.


        1. labfranep
          10.10.2018 12:31

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


  1. TechnoMag
    09.10.2018 19:20

    Мда… Т.е. для нативной разработки под Android с картами все плохо…