Функционально Locus и Osmand почти идентичны, там есть отличия по расширенному функционалу. У osmand больше настроек для включения-выключения различных объектов векторной карты, у Locus мощнее работа по редактированию и анализу GPX-треков. Osmand умеет показывать разные наборы POI, а Locus умеет писать треки, добавляя в них данные со всевозможных спортивных фитнес-датчиков, типа пульса и каденса.
Конструктивно Locus развивался как растровая картосмотрелка, к которой потом в качестве одной из "растровых карт" прикрутили библиотеку MapsForge, которая на входе работает с собственными БД c вырезками из OSM и файлами картостилей, а на выходе даёт приложению растровую картинку и в целом с точки зрения API не сильно отличается от библиотек для просмотра растровых карт. Так что там и сейчас, при выборе карты, которая будет отображаться, можно выбрать из множества растровых онлайн-карт и равнозначной с ними встроенной векторной карты. Собственного движка для роутинга там тоже нет, вместо этого приложение требует установки на телефон движка Brouter Offline (который идёт со своими картами OSM, которые надо загружать отдельно!), и потом общается с этим движком через API, отправляя в него профили роутинга для каждого сегмента и получая в ответ полную последовательность точек проложенного маршрута.
Osmand развивался по другой схеме. Это приложение с самого начала построено вокруг собственных БД с векторными картами. Картостили, движок, БД с картами, собственный движок роутинга - полностью заинтегрированы в приложение и являются неотъемлемой его частью. Это даёт приложению очень большой потенциал в плане того "что мы хотим отображать, таская из этой БД, и как мы это будем отображать". Нам доступны POI (они берутся из той же базы) и роутинг, даже с учётом рельефа (дорожный граф и высоты дорог хранятся в той же БД). Нам доступен даже адресный поиск. Да, османд постепенно оброс функционалом: записью и показом треков, деревом POI, роутингом и адресным поиском, даже онлайн-маячком. В конце концов там даже растровые карты появились. Но в основе это собственные векторные базы OSM и картостили для их отображения, а всё остальное добавлено поверх.
Обе программы имеют высокий порог вхождения, но по разному. Osmand имеет отвратительный UI, у них долгое время не было своего дизайнера по интерфейсам (с моей точки зрения и сейчас нет, поэтому 80% всех сообщений об ошибках у них в чате - это, извините, интерфейсные ляпы). интерфейс рос как получится, когда кому-то из программистов приходила новая интересная идея, он прикручивал её в программе куда в голову взбредёт, и не очень советовался с коллегами. О пользовательской эргономике там долгое время вообще никто не задумывался, а сейчас им просто страшно лезть в этого монстра для капитальной переделки, плюс продолжает доминировать мысль, что "лучше мы ещё какой новый функционал прикрутим, чем будем такой ерундой как эргономика заниматься". Поэтому когда ты покупаешь Osmand, он приходит тебе со всем своим функционалом сразу весь, но если ты не знаешь, про какое-то из его умений, ты годами не догадаешься, где эту функцию искать или включать.
У Локуса другая фишка. У него божественный интерфейс, он красив как бог, линии на картах сглаженные, карты миленькие, у-тю-тю, но чтобы добиться сопоставимого с османдом функционала нужно знать, какие независимые приложения нужно ставить и как их с локусом сопрягать. Надо знать, где брать карты для формата mapsforge, где брать профили роутинга для brouter offline, где брать кастомные подборки онлайн-карт и т.п. И надо знать, чем растровые карты отличаются от векторных, потому что при работе с локусом разница между этими картами совершенно не очевидна.
Османд по функциональности совпадает с локусом.....
Спасибо поржал.
Имхо перпендикулярные проги :)