Удаленный SLD стиль для Mapserver

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
merc
Активный участник
Сообщения: 109
Зарегистрирован: 29 июн 2011, 16:36
Репутация: 1

Удаленный SLD стиль для Mapserver

Сообщение merc »

Всем привет!
Никак не получается прикрутить стиль из удаленного SLD файла к нужному мне слою.
Подставлял в ссылкуhttp://server/cgi-bin/mapserver.exe.... ... ld.xml&...
Также прописывал в мап-файле

Код: Выделить всё

"wms_sld_url" "http://server2/path/to/sld.xml"
 "wms_sld_body" "AUTO"
"ows_sld_enabled"  "true"
Но эффекта никакого, выдает тот стиль что прописан поумолчанию в мапфайле CLASS ...END
Подскажите куда копать?

P.S SLD-стиль доступен по 80 порту, также проверялся на работоспособность с geoserver
Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: Удаленный SLD стиль для Mapserver

Сообщение Mavka »

Добавьте в map-файл:

Код: Выделить всё

CONFIG "MS_ERRORFILE" "/tmp/dbg.log"
DEBUG 5
При использовании http://server/mapserver?...&SLD=http:// ... to/sld.xml&... и включенной отладке должен сохраняться временный map-файл с примененными стилями.

На всякий случай проверьте в файле SLD правильность тэга Name:

Код: Выделить всё

<sld:NamedLayer>
<se:Name>mylayer</se:Name>

P.S. Приведите заголовок своего стиля (до <sld:UserStyle>)
лангольеры под окном жрали время ом-ном-ном
merc
Активный участник
Сообщения: 109
Зарегистрирован: 29 июн 2011, 16:36
Репутация: 1

Re: Удаленный SLD стиль для Mapserver

Сообщение merc »

Спасибо mavka. Вот что выдают логи:

Код: Выделить всё

Thu Sep 29 14:18:57 2011].479000 CGI Request 1 on process 4880
[Thu Sep 29 14:18:58 2011].322000 msApplySLD(): Map file after SLD was applied /tmp/4e844612_1310_1._sld.map[Thu Sep 29 14:18:58 2011].322000 msWMSLoadGetMapParams(): enabling non-square pixels.
[Thu Sep 29 14:18:58 2011].322000 msDrawMap(): kicking into non-square pixel preserving mode.
[Thu Sep 29 14:18:58 2011].338000 msDrawMap(): WMS/WFS set-up and query, 0.016s
[Thu Sep 29 14:18:58 2011].697000 msDrawMap(): Layer 0 (moscow-roads-l), 0.359s
[Thu Sep 29 14:18:58 2011].697000 msDrawMap(): Drawing Label Cache, 0.000s
[Thu Sep 29 14:18:58 2011].697000 msDrawMap() total time: 0.375s
[Thu Sep 29 14:18:58 2011].728000 msSaveImage() total time: 0.031s
[Thu Sep 29 14:18:58 2011].728000 mapserv request processing time (msLoadMap not incl.): 1.249s
[Thu Sep 29 14:18:58 2011].728000 msFreeMap(): freeing map at 0228EFD8.
Файл стиля выложил тут: http://pastebin.com/qQJq47r1
Во временном файле в части стиля выдает то же что и в базовом файле:
P.S 1)Должен ли я определять группы для стиля CLASSGROUP....NAME...GROUP...?
2)Расширение у файла стиля должен быть sld или xml? Обязательно ли добавлять в теги файла <sld:... NamedLayer? Тут такого я не нашел http://mapserver.org/ogc/sld.html
Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: Удаленный SLD стиль для Mapserver

Сообщение Mavka »

1. Нет, это не нужно.
2. Расширение не имеет значения, любое.
3. Тэг sld не нужен, потому что вы его объявили как дефолтовый namespace:
и все что без ns, автоматически считается "sld:".

Поправил ошибки, документ теперь валидный:

Код: Выделить всё

<?xml version="1.0" encoding="UTF-8"?>
<StyledLayerDescriptor version="1.0.0"
xmlns="http://www.opengis.net/sld"
xmlns:ogc="http://www.opengis.net/ogc"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.0.0/St ... riptor.xsd">

<NamedLayer>
<Name>style_osm_roads</Name>
<UserStyle>
<Name>Line</Name>
<FeatureTypeStyle>
<Rule>
<ogc:Filter>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>HIGHWAY</ogc:PropertyName>
<ogc:Literal>trunk</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
<LineSymbolizer>
<Stroke>
<CssParameter name="stroke">#a8daa8</CssParameter>
<CssParameter name="stroke-width">2</CssParameter>
<CssParameter name="stroke-linejoin">round</CssParameter>
<CssParameter name="stroke-linecap">round</CssParameter>
</Stroke>
</LineSymbolizer>
</Rule>
</FeatureTypeStyle>
</UserStyle>
</NamedLayer>
</StyledLayerDescriptor>

Я просил уточнить содержимое NamedLayer. Судя по логу вы запрашиваете слой "moscow-roads-l", а в стиле его называете "style_osm_road". Они обязаны быть одинаковыми.

P.S. Форум поломал строку...
лангольеры под окном жрали время ом-ном-ном
Ответить

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя