#postgis #geoserver #sld
#postgis #геосервер #sld
Вопрос:
Я пытаюсь настроить стиль sld на Geoserver, который ссылается на столбец в представлении PostGIS «Тип маршрута». Я хотел бы иметь пробелы в именах столбцов, поскольку моя цель — создать удобные для пользователя представления для всех моих пространственных данных. С sld ниже я получаю сообщение об ошибке. Я пробовал заменять пробел на amp;nbsp;
amp;#160;
, но <![CDATA[Property Name]]>
ни один из них не решает проблему.
Возможно ли иметь пробелы в propertyName?
<?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/StyledLayerDescriptor.xsd">
<NamedLayer>
<Name>Truck Routes and Restrictions</Name>
<UserStyle>
<Title>Truck Routes and Restrictions</Title>
<FeatureTypeStyle>
<Rule>
<Name>Designated Municipal Truck Route</Name>
<ogc:Filter>
<ogc:PropertyIsLike wildCard="*" singleChar="." escape="!">
<ogc:PropertyName>Route Type</ogc:PropertyName>
<ogc:Literal>*Designated Municipal Truck Route*</ogc:Literal>
</ogc:PropertyIsLike>
</ogc:Filter>
<LineSymbolizer>
<Stroke>
<CssParameter name="stroke">#006600</CssParameter>
<CssParameter name="stroke-width">3</CssParameter>
</Stroke>
</LineSymbolizer>
</Rule>
</FeatureTypeStyle>
</UserStyle>
</NamedLayer>
</StyledLayerDescriptor>
Ответ №1:
Как я прочитал здесь PropertyName
, должно быть доступно для получения службой веб-функций. И затем я прочитал, как запросить WFS propertyName, содержащий круглые скобки, где я прочитал, что все элементы такого типа должны соответствовать именованию элементов XML, которое не допускает никаких пробелов.
Таким образом, вы не можете использовать пробел в PropertyName
. Вы должны использовать «мои имена столбцов» таким образом, чтобы ваши пользователи не могли видеть.
Комментарии:
1. Кроме того, если «мои имена столбцов» означают столбцы SQL, вы можете использовать view для изменения имен столбцов для ваших пользователей
2. Спасибо. В итоге я использовал «необработанный набор данных», который имеет имена полей без пробелов в качестве «слоя отображения». Это означает, что все стили sld основаны на этих именах столбцов (которые никогда не содержат пробелов). Для каждого «необработанного набора данных» создается представление с красиво отформатированными именами столбцов (включая пробелы). Это представление используется только для запросов GetFeatureInfo для отображения всплывающих окон с именами полей в удобном формате, в то время как необработанный набор данных отображает стилизованные географические объекты.
3. Приятно слышать, что я помог 🙂