Линейная штриховка Geoserver
-
- Новоприбывший
- Сообщения: 12
- Зарегистрирован: 09 янв 2013, 09:19
- Репутация: 0
Линейная штриховка Geoserver
Возможна штриховка полигонов сложными составными линиями в Geoserver SLD?
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Линейная штриховка Geoserver
Что вы понимаете под "сложными составными линиями"? Приведите графический пример и поясните подробнее, что именно вы хотите получить.
Редактор материалов, модератор форума
-
- Новоприбывший
- Сообщения: 12
- Зарегистрирован: 09 янв 2013, 09:19
- Репутация: 0
Re: Линейная штриховка Geoserver
Вот, например:Александр Мурый писал(а):Что вы понимаете под "сложными составными линиями"? Приведите графический пример и поясните подробнее, что именно вы хотите получить.
http://gis.rkomi.ru/arcgis/rest/service ... 44&f=image
Или заливка полигона линейной штриховкой в QGIS.
-
- Активный участник
- Сообщения: 153
- Зарегистрирован: 02 авг 2014, 18:29
- Репутация: 24
- Откуда: Москва
Re: Линейная штриховка Geoserver
Вот здесь посмотрите: 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 пикселя...
Во-первых, если вам нужна штриховка в одну сторону, а не крест-накрест, то понадобится не
<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 пикселя...
-
- Новоприбывший
- Сообщения: 12
- Зарегистрирован: 09 янв 2013, 09:19
- Репутация: 0
Re: Линейная штриховка Geoserver
Это не линейная штриховка, а имитация линейной штриховки с помощью символа косая черта. В вашем примере пунктир будет сбиваться в местах соединения slash символов. Я уже не говорю о том, что многие виды линейных штриховок просто не реализуемы таким способом: чередующиеся косые линии разного типа, наклон линии под разными углами, а не только 45 градусов, и т.п.Алексей Борисов писал(а): <WellKnownName>shape://slash</WellKnownName>
<CssParameter name="stroke-dasharray"></CssParameter>
То, о чем вы говорите, я давно реализовал с помощью: 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
Нужно будет писать свой плагин или найти готовый.
-
- Гуру
- Сообщения: 1195
- Зарегистрирован: 23 апр 2011, 10:32
- Репутация: 205
- Откуда: Ульяновск
Re: Линейная штриховка Geoserver
А чем плоха заливка SVG? Даже сайт есть для генерации http://www.imagico.de/map/jsdotpattern.php
-
- Новоприбывший
- Сообщения: 12
- Зарегистрирован: 09 янв 2013, 09:19
- Репутация: 0
Re: Линейная штриховка Geoserver
Попробуйте с помощью SVG сделать сложную линейную штриховку.freeExec писал(а):А чем плоха заливка SVG? Даже сайт есть для генерации http://www.imagico.de/map/jsdotpattern.php
Опять же в указанном Вами инструменте нет паттернов для линейной штриховки. Может я не до конца что-то понял конечно.
Кто сейчас на конференции
Сейчас этот форум просматривают: Semrush [Bot] и 10 гостей