Страница 1 из 1

SVG маленького размера

Добавлено: 15 июн 2022, 12:19
qwerty123
Здравствуйте.
У нас на фирме есть собственная самописная ГИС-система, которая писалась до 2006 года.
На данный момент в данной ГИС-системе есть много проектов, которые необходимо перенести в QGIS.
Столкнулся с проблемой, в QGIS не получается отобразить SVG маркер размером 7 x 5 px, хотя в нашей ГИС-системе он отображается нормально. С крупными маркерами проблем нет. Предполагаю, что это связано с тем, что QGIS сглаживает SVG.
Подскажите, пожалуйста, как в QGIS вывести маркер такого размера?
Скриншот маркера из самописной ГИС-системы (7x5.png) и скриншот маркера в QGIS (7x5 QGIS.png) прикрепляю.

Re: SVG маленького размера

Добавлено: 15 июн 2022, 12:49
AlexRomantsov
Здравствуйте. А лучше сам маркер svg прикрепите. В SVG есть нюансы

Re: SVG маленького размера

Добавлено: 15 июн 2022, 15:37
qwerty123
AlexRomantsov писал(а):
15 июн 2022, 12:49
Здравствуйте. А лучше сам маркер svg прикрепите. В SVG есть нюансы
В самописной ГИС-системе маркеры хранятся не в SVG, а в текстовом файле, который содержит описание маркера. Я написал конвертер, который конвертирует текстовый файл в SVG.
Прикрепляю оба файла.
Меня интересует вопрос, как можно доработать мой SVG файл, чтобы в QGIS нормально выводился маркер 7x5 px

Re: SVG маленького размера

Добавлено: 15 июн 2022, 18:23
AlexRomantsov
Сделайте в svg параметрические размеры:
<polygon points="1,1 67,1 67,45 1,45 1,1" stroke="#000000" fill="#FFFFFF" stroke-width="param(outline-width)"/>
<polyline points="23,1 23,45" stroke="#000000" fill="none" stroke-width="param(outline-width)"/>
<polyline points="45,1 45,45" stroke="#000000" fill="none" stroke-width="param(outline-width)"/>
В этом варианте у Вас получится настраивать толщину линий маркера SVG прямо в QGIS:
svg_param.jpg
svg_param.jpg (27.54 КБ) 1693 просмотра
Ну и подберите настройки по вкусу.

Re: SVG маленького размера

Добавлено: 15 июн 2022, 18:50
gamm
Случайно попал по кнопке палец вниз, а отменить невозможно ...

Re: SVG маленького размера

Добавлено: 15 июн 2022, 22:42
qwerty123
Огромное спасибо, не знал что так можно, удалось уменьшить маркер до нужного размера.
Но виден эффект сглаживания линий, из-за которого маркер расплывается.
Возможно ли избавиться от данного эффекта?
В параметрах QGIS, в разделе "отрисовка" убрал галочку с "Рисовать сглаженные линии", но эффекта никакого.

Re: SVG маленького размера

Добавлено: 16 июн 2022, 04:41
AlexRomantsov
А из интереса, проверьте картинку на соседнем компе с монитором с другим разрешением.
Еще тропинки: можно в маркере SVG нарисовать эту решётку не линиями, а полигональными фигурами, с заливкой и с обводкой нулевой толщины.
Есть также альтернатива - создать библиотеку из шрифтовых (TTF/OTF) маркеров. Там не просто все на старте, шрифты это другая вселенная, но рендеринг в ГИС "букв" шрифтов TTF/OTF как маркеров идет по другим алгоритмам, качество картинки принципиально другое, и на экране и при печати, и что существенно - тысяча таких решёток из глифов TTF/OTF в окне карты QGIS выведется примерно в 2-3 раза быстрее, чем та же тысяча из маркеров SVG.

Re: SVG маленького размера

Добавлено: 16 июн 2022, 06:45
AlexRomantsov
qwerty123 писал(а):
15 июн 2022, 22:42
Огромное спасибо, не знал что так можно, удалось уменьшить маркер до нужного размера.
Остальные свойства фигур SVG также можно делать параметрическими, управляемыми из ГИС:
fill="param(fill)"
fill-opacity="param(fill-opacity)"
stroke="param(outline)"
stroke-opacity="param(outline-opacity)"
stroke-width="param(outline-width)"
Может пригодится, в SVG маркерах.