Обновление MapSurfer.NET

Интересное наблюдение, перечитал инструкцию, оказывается поведение описано для разных случав.

Последнее замечание имо следует уточнить т.к. забыт text-upright (который может перевернуть текст на 180 градусов!!!) и видимо допущена опечатка в указании параметра (у placement-type нет значений line), т.е. перефразировать:
With “line” text-placement placement-type, a positive text-dy value displaces text in its up direction. Иначе говоря подпись должна касаться линии своей нижней частью вне зависимости от выбранного (автоматически) направления.

issue 2016-08-09 11:30

Не работают назначения текста-константы


[surface="asphalt"] { text-name: "'асфальт'"; }
[surface="asphalt"] { text-name: 'асфальт'; }

Пробовал все сочетания кавычек, включая сдвоенные, как описано тут https://www.mapbox.com/tilemill/docs/guides/styling-labels/

Спасибо за багрепорт. Указанную ошибку уже устранил. Новую версию можно скачать с сайта или воспользоваться функцией автоматического обновления в MapSurfer.NET Studio.

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


[surface!=null][smoothness!=null][surface=~"^(asphalt|concrete|compacted|fine_gravel|gravel|stone|pebblestone|paved|concrete:plates|^paving_stones.*)$"][smoothness=~"^(horrible|very_horrible|impassable)$"][highway=~"^(motorway_link|trunk|trunk_link|primary|primary_link|secondary|secondary_link|tertiary|tertiary_link|unclassified|residential|living_street|pedestrian)$"]

Я что-то могу поправить, или выход только - разворачивать в фильтры без regexp ?

А насколько велика выборка из данных? Интересует количество фильтрируемых объектов. Эту статистику можно глянуть в панели “Статистика рендеринга”.

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

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

issue 2016-08-17 15:21 MSK

Runge
У меня не получается задавать толщину линий line-width меньше 1.0.

Меняю значения от 0.4 до 1.0 - линия выглядит одинаковой, чуть превысив значение например до 1.1 - толщина начинает меняться. Это ограничения редактора стиля и GDI, или внутренние проверки отрубают значения < 1 ?

(added)
Обнаружил такое поведение


[highway="track"] {
	line-color: black;
	line-width: 0.4;                        // в Studio рендерится ширина 0.4 пикселя
//	line-dasharray: 12.0, 2.0;
}


[highway="track"] {
	line-color: black;
	line-width: 0.4;                        // в Studio рендерится ширина 1 пиксель
	line-dasharray: 12.0, 2.0;
}

Вы правы, библиотека GDI не умеет рисовать линии тоньше 1 пикселя. Это относится и к сплошным и к штрихпунктирным линиям. Однако, в Мапсерфере имеется обходной вариант, который с помощью библиотеки Fog позволяет рисовать сплошные линии толщиной меньше 1. Связка GDI+Fog реализована в рендерере GDI.
Для корректной работы с тонкими линиями я советую попробовать рендерер Cairo. Его можно активировать в свойствах проекта. Но для этого вам понадобится новая сборка Мапсерфера, ссылку на которую я вышлю отдельно в письме.

Постоянно пропадают куски 3Д-домиков: http://openstreetmap.ru/#map=17/56.79562/60.51075&layer=S

не обязательно куски и не обязательно 3д http://openstreetmap.ru/#map=16/55.7595/37.5942&layer=S

Увы Мапсёрфер совсем не юзабельный, больше года не рендерятся огромные куски карты.

Что есть — то есть, запущен (в плохом смысле слова), к сожалению.

Runge когда можно будет ожидать нормальную работу рендера?

Mapsurfer Studio последней версии отказывается ставиться, т.к. инсталлятор пытается скачать VC++ 2015 Update 3 по «мёртвой» ссылке с сайта Microsoft, натыкается на 404-ю ошибку и прекращает процесс. Ручная установка VC++ по актуальной ссылке ничего не меняет. Пора бы обновить инсталлятор

Убрал галочку напротив VC++ в инсталляторе и установил. Но возникла другая бяка: новый мапсёрфер начисто не видит GDAL, установленного в пакете же с ним. Установка отдельно упомянутого на предыдущей странице gdal-201-1600-x64-core тоже результата не дала. Куда копать?

Runge

Может наивный вопрос, скажите если мы используем для рендеринга Windows API, будет ли какой-то выигрыш если установить в сервер нормальную видеокарту ?

Т.е. вопрос разбивается на два подвопроса

  • будет ли прирост в Studio
  • будет ли прирост в сервисе MSN

Вопросы не первостепенной важности т.к. судя по статистике в Studio непосредственно рендеринг занимает всего 25% времени, но всё же… немного тут, немного там - уже оптимизация ))

PS: когда тестировал alaCarte, там у Cairo около 40% всего времени отнимает сжатие для PNG через zlib

Под Windows, MapSurfer.NET использует графическую библиотеку GDI+, которая, насколько я знаю, никакого аппаратного ускорения не поддерживает. Сейчас я все больше смотрю в сторону кросплатформенной библиотеки SkiaSharp, основанной на Skia от Google. Эта библиотека на порядок быстрее уже устаревшей GDI+, к тому же имеет поддержку OpenGL. К сожалению, проект SkiaSharp довольно молодой и некоторые вещи нужные для рендеринга карте в нем реализованны.

Прироста не будет.

Для ускорения могу еще посоветовать не использовать линии толщиной менее 1 пикселя. В этом случае рендеринг осуществляется другой библиотекой Fog. Из-за текущей реализации данные сначала копируются в объекты GDI+, а потом из них копируются в Fog, что ведет к увеличению времени рендеринга.
Еще я бы посоветовал использовать SSD и более аккуратнее подготавливать запросы к базе данных, отбрасывая излишние данные, не используемые в ваших стилях.

Да, спасибо, SSD с самого начала, SQL запросы сейчас оптимизирую (выкидываю площади и длины менее 2 пикселов и пр.)

А вот упрощение геометрии ST_Simplify() на стороне PostGIS дало обратный эффект, запросы стали дольше раз в пять. В общем надо всё тщательно выверять - что делать на стороне базы данных, а что оставить рендеру.

Например на Чепечк Макс заранее прогонял данные через ST_Simplify() для каждого мелкого зума и создавал таблицы. Не буду врать, но вроде говорил об ускорении ренедера на порядок.

Ныне для упрощения на стороне базы рекомендуют скорее ST_RemoveRepeatedPoints c расстоянием в нужное количество пикселей (мапник умеет в запросах плейсхолдер :pixel_height: для конвертации масштаба) - его сложность куда меньше, чем ST_Simplify, а эффекта приносит сравнимо.

www.mapsurfernet.com/

Очень жаль проект. Лично я перегорел на каком-то этапе т.к. не хватало мелкого функционала (разворота SVG-иконок), хотя потратил на стили, базы, дизайн иконок около года. Может и вернулся бы к нему - уж очень удобный и наглядный редактор картостилей.