GeoWebCache, встроенный в GeoServer, не генерировал некоторые тайлы в некоторых масштабах. При этом в geoserver.log появлялось сообщение об ошибке:
Экспериментально выяснилось, что в некоторой таблице (egko.specterr_txt) в базе данных PostGreSQL/PostGIS в поле textstring в начале строки присутствуют символы новой строки '\n'. При этом в соответствующем файле стиля specterr_txt.sld была ссылка на это поле
После выполнения скрипта в pgAdmin III
всё заработало!
Самым трудоёмким оказался поиск слоя с ошибкой в группе слоёв (Layer Groups). Мне помог Quantum GIS 1.7.0-Wroclaw, который умеет работать и с WMS, и со слоями GeoWebCache. Он сразу открывает окно с ошибкой при добавлении кривого WMS слоя. Оказалось, что из 31 слоя, присутствующего в группе, ошибка была в предпоследнем слое. Естественно, я добавлял слои последовательно, не догадался начать с конца списка.
ERROR [geoserver.ows] -
java.lang.IllegalArgumentException:
Zero length string passed to TextLayout constructor.
<Label>
<ogc:PropertyName>textstring</ogc:PropertyName>
</Label>
UPDATE egko.specterr_txt SET textstring=regexp_replace(textstring, E'\n', '')
WHERE textstring like E'\n%';
Самым трудоёмким оказался поиск слоя с ошибкой в группе слоёв (Layer Groups). Мне помог Quantum GIS 1.7.0-Wroclaw, который умеет работать и с WMS, и со слоями GeoWebCache. Он сразу открывает окно с ошибкой при добавлении кривого WMS слоя. Оказалось, что из 31 слоя, присутствующего в группе, ошибка была в предпоследнем слое. Естественно, я добавлял слои последовательно, не догадался начать с конца списка.
Комментариев нет:
Отправить комментарий