Рендер OpenStreetMap на GPU или Galileo Offline Maps v3.2.12 [iOS]

Позволю себе апнуть вопрос из начала темы.
Приложение отлично работает на iOS, хочется и под Android. За год наметился прогресс в данном направлении?

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

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

Пишите нам на info@galileo-app.com c темой письма “Хочу быть бета-тестером” и указанием следующей информации:

  1. Какое у вас iOS устройство?
  2. Какая прошивка?
  3. Где вы находитесь?
  4. Как часто пользуетесь приложением и в каких целях?

Из-за ограничений Apple в тестировании могут участвовать только пользователи с устройствами iOS8 и выше.

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

В процессе записи трека, когда смотрю текущее местоположение, иконки POI (в моем случае гостиницы) не двигаются вместе к картой, а висят в одном месте вместе со стрелкой местоположения.
В какой момент это происходит не понял. См скриншоты:

Видели эту проблему. Пробуем выловить и поправить, пока проблема именно с вылавливанием. Т.к. четкой последовательности действий для ее воспроизведения нету.

а нельзя ли вас попросить добавить в источники какие-нибудь тайлы с отображаемыми подъездами?

В Galileo есть поддержка пользовательских источников карт. Можете добавить сами тот, которого не хватает. Хоть спутник или гибрид даже.

Подробности в документации: https://galileo-app.ru/manual.html#raster_maps

отлично, спасибо!

я еще заметил что онлайновый мапник у меня совсем не онлайновый :frowning: кеш удален, настоено на “актуально”, а показывает старое (на осм.орг показывает уже новое)

Уже некоторое время Galileo поддерживает загрузку пользовательского стиля из папки общих файлов.

Механизм прост:

  1. Скачиваете текущую версию стиля с https://github.com/molind/GalileoMapStyle
  2. Редактируете стиль и меняете в нем что-то под свои нужды
  3. Заливаете новый файл стиля в папку Общие Файлы приложения Galileo
  4. Перезапускаете приложение и смотрите что получилось
  5. Переходите к п.2 до полного удовлетворения

Пару нюансов:

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

Детали будут появляются тут и на github по мере написание более подробной документации по нашей реализации MapCSS.

Ничоси. Вот так живешь и не знаешь.
Спасибо. :3

Где взять getUMap?

https://getyourmap.com/

Спасибо.

В примерах Черногория.
Совпадение? Я так не думаю!

UPD:
А можно ли добавить свои кнопочки и маркеры на карту (под андроидом)?

Кнопочки например для скачивания нужного куска карты, для зума.
Маркеры я так понимаю добавяются через GLMapVectorObject с определенным стилем, как отловить нажатие на маркер?

Или со всякими такми вопросами на почту?

Конечно на почту. :slight_smile: evgen@getyourmap.com

Ну просто в почте ответ на вопрос получу я, а так он будет более ли менее публичен.
Что для апи и типичных юзкейсов скорее плюс.

Я не верю в пользу форумов в качестве документации. Если будут какие-то частые вопросы - это будет знак что надо писать FAQ или подумать о рефакторе API.

Кто-то разобрался как менять цвет дорог?
В скриншоте конечно все понятно, есть цвета, иконка. Но там речь идет о точке POI. А вот в дорогах вообще ничего не ясно.
Как найти нужный тип дороги? Где прописан цвет, тип линии, толщина? Например
Вот, например

line|z13-[highway=road] Что тут где? Хорошо бы хоть какую-то краткую инфу как менять.

Вот пример сложного случая, на нем опишу все детали


line|z10-[highway=secondary]{
	width: eval( zlinear(11, 1.3pt,2pt,2pt,2pt,max(3pt, metric(any(tag(lanes),2)*2)) ));
	color: #EB8;
	z-index: 2;

	linecap: round;	
}
line|z14-[highway=secondary]{
	color: #FC9;

	casing-color: #EB8;
	casing-width: 1pt;
}

line|z10-[highway=secondary],

line значит, что нам нужна именно линия,

|z10- говорит что правило надо применять только на 10 уровне зума и ниже. Могло бы быть z5-10 т.е.5-10 зум или z-10, все что до 10-го зума включительно. Т.е. интервал с большей границей, с обеими или с меньшей границей.

[highway=secondary] - это фильтр по тэгу-значению. Их может быть несколько. Если значение тэга числовое, можно использовать мат. операции [highway=secondary][layer<0] для всех тоннелей, к примеру.

теперь разберемся с тем что внутри.

**width: eval( zlinear(    11, 1.3pt,2pt,2pt,2pt,max(3pt, metric(any(tag(lanes),2)*2)) ));**

самая страшная часть устанавливает ширину линии. до 11-го зума включительно ширина должна быть 1.3pt (поинты переводятся в пиксели с учетом плотности пикселей экрана устройства, на старом iPad - это 1.3 пикселя, на iPad 3 и позже это уже 2.6 пикслей и т.д.) и дальше ,2pt,2pt,2pt - это ширина для 12,13,14-го зума. Т.е. линия станет толще с 11 до 12 зума, потом будет постоянной толщины 12-13-14 и дальше max(3pt, metric(any(tag(lanes),2)*2)) будет увеличиваться пропорционально толщине дороги в метрах, причем с учетом числа полос. Выглядит страшно, но работает красиво.

color: #EB8; - короткая запись цвета #EEBB88, устанавливаем цвет дороги

z-index: 2; приоритет прорисовки линии. т.е. если будет линия, у которой z-index: 1, или z-index не будет указан и мы будем считать его равным 0, то такая линия будет рисоваться под нашей линией. Установление z-index полезно для перекрестков, чтобы крупная дорога закрашивала перекресток своим цветом.

linecap: round; в конце линии рисовать круглое закругление.

line|z14-[highway=secondary]{
	color: #FC9;

	casing-color: #EB8;
	casing-width: 1pt;
}

дальше дорога становится чуть светлее, основной цвет заливки #FFCC99, а для обводки используем тот цвет, который использовали раньше #EEBB88 и устанавливаем обводке толщину 1 поинт.

Это что касается обычных дорог, теперь о пунктирах.

line|z15-[highway=footway],
line|z15-[highway=path],
line|z15-[highway=cycleway],
line|z15-[highway=bridleway]
{
    	width: eval( zlinear(	16,3pt,4pt ) );
	dashes-width: eval( zlinear(	16, 1pt,2pt ) );
	galileo-fast-draw:true;
	dashes:4,4,4,4;
}	

line|z15-[highway=path],
line|z15-[highway=bridleway] {
	dashes-color: #FEFEFE;
}
line|z15-[highway=footway]
{
	dashes-color: #bd9692;
}
line|z15-[highway=cycleway] {
	dashes-color: #6876e1;
	dashes:2,2,2,2;
}

В dashes мы задаем 4 числа, сумма которых должна быть равна степени двойки. 4, 8, 16, 32, любой. Цифры эти - это размер штришков в нашем пунктире. чем меньше число - тем короче штришок. Так пешеходная дорожка - это 4,4,4,4 а мелкие штришки ступенек - это 2,2,2,2. Штрих пунктир будет к примеру 6,4,2,4.

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

galileo-fast-draw:true; Говорит системе использовать быструю прорисовку на основе линий (GL_LINE), а не медленную, на основе треугольников (GL_TRIANGLE_STRIP).

И еще есть хорошая новость: Карты Galileo доступны под Android, пока только карты. Остальные функции в процессе разработки. Скоро появится еще офлайн поиск. Дальше - больше.

https://play.google.com/store/apps/details?id=com.bodunov.galileo