Линейная штриховка Geoserver

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
vaneyev
Новоприбывший
Сообщения: 12
Зарегистрирован: 09 янв 2013, 09:19
Репутация: 0

Линейная штриховка Geoserver

Сообщение vaneyev » 05 май 2017, 17:05

Возможна штриховка полигонов сложными составными линиями в Geoserver SLD?

Александр Мурый
Гуру
Сообщения: 5040
Зарегистрирован: 26 сен 2009, 16:26
Статьи: 3
Проекты: 5/1
Репутация: 712
Ваше звание: званий не имею
Откуда: Москва

Re: Линейная штриховка Geoserver

Сообщение Александр Мурый » 06 май 2017, 13:00

Что вы понимаете под "сложными составными линиями"? Приведите графический пример и поясните подробнее, что именно вы хотите получить.
Редактор материалов, модератор форума

vaneyev
Новоприбывший
Сообщения: 12
Зарегистрирован: 09 янв 2013, 09:19
Репутация: 0

Re: Линейная штриховка Geoserver

Сообщение vaneyev » 07 май 2017, 09:59

Александр Мурый писал(а):Что вы понимаете под "сложными составными линиями"? Приведите графический пример и поясните подробнее, что именно вы хотите получить.
Вот, например:
http://gis.rkomi.ru/arcgis/rest/service ... 44&f=image

Или заливка полигона линейной штриховкой в QGIS.

Алексей Борисов
Активный участник
Сообщения: 135
Зарегистрирован: 02 авг 2014, 18:29
Репутация: 21
Откуда: Москва

Re: Линейная штриховка Geoserver

Сообщение Алексей Борисов » 10 май 2017, 09:32

Вот здесь посмотрите: http://docs.geoserver.org/stable/en/use ... ching-fill.
Во-первых, если вам нужна штриховка в одну сторону, а не крест-накрест, то понадобится не
<WellKnownName>shape://times</WellKnownName>, а
<WellKnownName>shape://slash</WellKnownName>. Ну или backslash, если мне не изменяет память.
Во-вторых, между тегами <Stroke> и </Stroke> вам нужно будет добавить
<CssParameter name="stroke-dasharray"></CssParameter>,
и там поиграть со значениями. Значения задавать в формате
A B C D...,
где A — длина первого штриха,
B — длина первого разрыва между штрихами,
C — длина второго штриха,
D — длина второго разрыва между штрихами и так далее. Например,
<CssParameter name="stroke-dasharray">10 3</CssParameter>
— это штрих 10 пикселей, разрыв 3 пикселя, опять штрих 10 пикселей, опять разрыв 3 пикселя...

vaneyev
Новоприбывший
Сообщения: 12
Зарегистрирован: 09 янв 2013, 09:19
Репутация: 0

Re: Линейная штриховка Geoserver

Сообщение vaneyev » 11 май 2017, 15:12

Алексей Борисов писал(а): <WellKnownName>shape://slash</WellKnownName>
<CssParameter name="stroke-dasharray"></CssParameter>
Это не линейная штриховка, а имитация линейной штриховки с помощью символа косая черта. В вашем примере пунктир будет сбиваться в местах соединения slash символов. Я уже не говорю о том, что многие виды линейных штриховок просто не реализуемы таким способом: чередующиеся косые линии разного типа, наклон линии под разными углами, а не только 45 градусов, и т.п.

То, о чем вы говорите, я давно реализовал с помощью: http://docs.geoserver.org/maintain/en/u ... rgins.html
Оформленную мной карту можно посмотреть здесь:
https://geo.rkomi.ru/viewer/show/34

Также штриховку любой сложности можно оформить с помощью SVG. Но это все очень трудоемкие костыли. Хотелось бы, чтобы это было реализовано непосредственно в синтаксисе SLD. Похоже что сейчас таких возможностей попросту нет, и неизвестно будет ли это когда-нибудь сделано.

Есть задумка сделать линейную штриховку через:
http://docs.geoserver.org/maintain/en/u ... tions.html
Нужно будет писать свой плагин или найти готовый.

freeExec
Гуру
Сообщения: 553
Зарегистрирован: 23 апр 2011, 10:32
Проекты: 1
Репутация: 76
Откуда: Ульяновск

Re: Линейная штриховка Geoserver

Сообщение freeExec » 11 май 2017, 15:34

А чем плоха заливка SVG? Даже сайт есть для генерации http://www.imagico.de/map/jsdotpattern.php

vaneyev
Новоприбывший
Сообщения: 12
Зарегистрирован: 09 янв 2013, 09:19
Репутация: 0

Re: Линейная штриховка Geoserver

Сообщение vaneyev » 11 май 2017, 15:51

freeExec писал(а):А чем плоха заливка SVG? Даже сайт есть для генерации http://www.imagico.de/map/jsdotpattern.php
Попробуйте с помощью SVG сделать сложную линейную штриховку.
Опять же в указанном Вами инструменте нет паттернов для линейной штриховки. Может я не до конца что-то понял конечно.

Ответить

Вернуться в «Веб-картография»