Арабские метки не отображаются правильно в Geoserver - PullRequest
1 голос
/ 27 мая 2019

У меня установлен геосервер с Tomcat, и текстовые надписи отображаются неправильно. Где я могу установить арабскую кодировку в Geosever? в QGIS маркировка выглядит хорошо, но когда я публикую ее в геосервере, я получаю эту проблему.

[labeling in geoserver] 1

labeling in QGIS

Файл формы Вот СЛД:

   <?xml version="1.0" encoding="UTF-8"?>
<sld:StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:sld="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml" version="1.0.0">
    <sld:UserLayer>
        <sld:LayerFeatureConstraints>
            <sld:FeatureTypeConstraint/>
        </sld:LayerFeatureConstraints>
        <sld:UserStyle>
            <sld:Name>sea</sld:Name>
            <sld:Title/>
            <sld:IsDefault>1</sld:IsDefault>
            <sld:FeatureTypeStyle>
                <sld:Name>group 0</sld:Name>
                <sld:FeatureTypeName>Feature</sld:FeatureTypeName>
                <sld:SemanticTypeIdentifier>generic:geometry</sld:SemanticTypeIdentifier>
                <sld:SemanticTypeIdentifier>simple</sld:SemanticTypeIdentifier>
                <sld:Rule>
                    <sld:Name>default rule</sld:Name>
                    <sld:PolygonSymbolizer>
                        <sld:Fill>
                            <sld:CssParameter name="fill">#1B9E77</sld:CssParameter>
                            <sld:CssParameter name="fill-opacity">0.5</sld:CssParameter>
                        </sld:Fill>
                        <sld:Stroke>
                            <sld:CssParameter name="stroke">#1B9E77</sld:CssParameter>
                        </sld:Stroke>
                    </sld:PolygonSymbolizer>
                    <sld:TextSymbolizer>
                        <sld:Label>
                            <ogc:PropertyName>ARABIC</ogc:PropertyName>
                        </sld:Label>
                        <sld:Font>
                            <sld:CssParameter name="font-family">Arial</sld:CssParameter>
                            <sld:CssParameter name="font-size">12.0</sld:CssParameter>
                            <sld:CssParameter name="font-style">normal</sld:CssParameter>
                            <sld:CssParameter name="font-weight">bold</sld:CssParameter>
                        </sld:Font>
                        <sld:LabelPlacement>
                            <sld:PointPlacement>
                                <sld:AnchorPoint>
                                    <sld:AnchorPointX>0.5</sld:AnchorPointX>
                                    <sld:AnchorPointY>0.5</sld:AnchorPointY>
                                </sld:AnchorPoint>
                            </sld:PointPlacement>
                        </sld:LabelPlacement>
                        <sld:Fill>
                            <sld:CssParameter name="fill">#000000</sld:CssParameter>
                        </sld:Fill>
                        <sld:VendorOption name="spaceAround">2</sld:VendorOption>
                    </sld:TextSymbolizer>
                </sld:Rule>
            </sld:FeatureTypeStyle>
        </sld:UserStyle>
    </sld:UserLayer>
</sld:StyledLayerDescriptor>

1 Ответ

0 голосов
/ 01 июня 2019

Наиболее распространенной проблемой является то, что вы неправильно установили кодировку символов, проверьте страницу магазина:

enter image description here

С моими тестовыми данными я получаю этос настройкой «windows-1250»

enter image description here

Переключение на (в моем случае) правильный «UTF-8» дает это, что лучше.

enter image description here

И, наконец, использование «лучшего» шрифта, чем Arial (Trocchi), заполняет как китайские, так и арабские символы.

enter image description here

Обновление

Поэтому эксперименты с вашим шейп-файлом и SLD и поиск в Google "набора арабских символов Windows" привели меня к настройкеНабор символов DBF хранилища данных Shapefile установлен на «Windows-1256», что, кажется, работает.

enter image description here

...