Я загрузил карту OSM в виде файлов из (http://download.geofabrik.de/asia/nepal.html
), и у меня есть несколько файлов форм, таких как дороги, здания, землепользование и т. Д.
Я хочу опубликовать эти файлы на своем геосервере, и у меня нет проблем. Я легко могу это сделать. Теперь проблема заключается в создании SLD для каждого типа. Я скачал различные SLD, доступные в Интернете. Но удачи пока нет. Каждый раз, когда я использую любой из этих SLD, я не могу просмотреть свой слой. Сообщение об ошибке выглядит так:
Запрошенный стиль нельзя использовать с этим слоем. Стиль определяет атрибут landuse, а слой: main: landuse
У меня есть 4 столбца в моих атрибутах в файле формы (fid, osm_id, name, type).
А мой SLD выглядит так:
<?xml version="1.0" encoding="utf-8"?>
<StyledLayerDescriptor xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ogc="http://www.opengis.net/ogc" xmlns="http://www.opengis.net/sld" version="1.0.0">
<NamedLayer>
<Name>landuse_overlay</Name>
<UserStyle>
<Name>landuse_overlay</Name>
<FeatureTypeStyle>
<Rule>
<ogc:Filter xmlns="http://www.opengis.net/ogc">
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>landuse</ogc:PropertyName>
<ogc:Literal>military</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
<MaxScaleDenominator>750000</MaxScaleDenominator>
<PolygonSymbolizer>
<Fill>
<GraphicFill>
<Graphic>
<ExternalGraphic>
<OnlineResource xlink:href="/var/lib/geoserver_data/Test/rogue_symbols/military_red_hz2.png"/>
<Format>image/png</Format>
</ExternalGraphic>
</Graphic>
</GraphicFill>
</Fill>
</PolygonSymbolizer>
<LineSymbolizer>
<Stroke>
<CssParameter name="stroke-opacity">0.329</CssParameter>
<CssParameter name="stroke-width">3</CssParameter>
<CssParameter name="stroke">#ff5555</CssParameter>
</Stroke>
</LineSymbolizer>
</Rule>
<Rule>
<Filter xmlns="http://www.opengis.net/ogc">
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>leisure</ogc:PropertyName>
<ogc:Literal>nature_reserve</ogc:Literal>
</ogc:PropertyIsEqualTo>
</Filter>
<MinScaleDenominator>50000</MinScaleDenominator>
<MaxScaleDenominator>750000</MaxScaleDenominator>
<PolygonSymbolizer>
<Fill>
<GraphicFill>
<Graphic>
<ExternalGraphic>
<OnlineResource xlink:href="/var/lib/geoserver_data/Test/rogue_symbols/nature_reserve5.png"/>
<Format>image/png</Format>
</ExternalGraphic>
</Graphic>
</GraphicFill>
</Fill>
</PolygonSymbolizer>
<LineSymbolizer>
<Stroke>
<CssParameter name="stroke-opacity">0.5</CssParameter>
<CssParameter name="stroke-width">1</CssParameter>
<CssParameter name="stroke">#66cc33</CssParameter>
<CssParameter name="strok-dasharray">5 2</CssParameter>
</Stroke>
</LineSymbolizer>
<TextSymbolizer>
<Label>
<ogc:PropertyName>name</ogc:PropertyName>
</Label>
<Halo>
<Radius>5</Radius>
<Fill>
<CssParameter name="fill">#ffffff</CssParameter>
</Fill>
</Halo>
<Fill>
<CssParameter name="fill">#66cc33</CssParameter>
</Fill>
<VendorOption name="autoWrap">60</VendorOption>
</TextSymbolizer>
</Rule>
<Rule>
<ogc:Filter xmlns="http://www.opengis.net/ogc">
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>leisure</ogc:PropertyName>
<ogc:Literal>nature_reserve</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
<MaxScaleDenominator>50000</MaxScaleDenominator>
<PolygonSymbolizer>
<Fill>
<GraphicFill>
<Graphic>
<ExternalGraphic>
<OnlineResource xlink:href="/var/lib/geoserver_data/Test/rogue_symbols/nature_reserve6.png"/>
<Format>image/png</Format>
</ExternalGraphic>
</Graphic>
</GraphicFill>
</Fill>
</PolygonSymbolizer>
<LineSymbolizer>
<Stroke>
<CssParameter name="stroke-opacity">0.5</CssParameter>
<CssParameter name="stroke-width">3</CssParameter>
<CssParameter name="stroke">#66cc33</CssParameter>
<CssParameter name="stroke-dasharray">5 2</CssParameter>
</Stroke>
</LineSymbolizer>
</Rule>
<Rule>
<ogc:Filter xmlns="http://www.opengis.net/ogc">
<ogc:And>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>boundary</ogc:PropertyName>
<ogc:Literal>national_park</ogc:Literal>
</ogc:PropertyIsEqualTo>
<ogc:PropertyIsNull>
<ogc:PropertyName>leisure</ogc:PropertyName>
</ogc:PropertyIsNull>
</ogc:And>
</ogc:Filter>
<MaxScaleDenominator>1000000</MaxScaleDenominator>
<PolygonSymbolizer>
<Fill>
<CssParameter name="fill">#08a136</CssParameter>
<CssParameter name="fill-opacity">.3</CssParameter>
</Fill>
</PolygonSymbolizer>
<LineSymbolizer>
<Stroke>
<CssParameter name="stroke">#66cc33</CssParameter>
</Stroke>
</LineSymbolizer>
</Rule>
<Rule>
<Filter xmlns="http://www.opengis.net/ogc">
<Or>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>leisure</ogc:PropertyName>
<ogc:Literal>park</ogc:Literal>
</ogc:PropertyIsEqualTo>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>leisure</ogc:PropertyName>
<ogc:Literal>recreation_ground</ogc:Literal>
</ogc:PropertyIsEqualTo>
</Or>
</Filter>
<MaxScaleDenominator>750000</MaxScaleDenominator>
<PolygonSymbolizer>
<Fill>
<CssParameter name="fill-opacity">0.6</CssParameter>
<CssParameter name="fill">#b6fdb6</CssParameter>
</Fill>
</PolygonSymbolizer>
<LineSymbolizer>
<Stroke>
<CssParameter name="stroke-opacity">0.5</CssParameter>
<CssParameter name="stroke-width">1</CssParameter>
<CssParameter name="stroke">#66cc33</CssParameter>
<CssParameter name="strok-dasharray">5 2</CssParameter>
</Stroke>
</LineSymbolizer>
<TextSymbolizer>
<Label>
<ogc:PropertyName>name</ogc:PropertyName>
</Label>
<Halo>
<Radius>5</Radius>
<Fill>
<CssParameter name="fill">#ffffff</CssParameter>
</Fill>
</Halo>
<Fill>
<CssParameter name="fill">#66cc33</CssParameter>
</Fill>
<VendorOption name="autoWrap">60</VendorOption>
</TextSymbolizer>
</Rule>
<Rule>
<ogc:Filter xmlns="http://www.opengis.net/ogc">
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>landuse</ogc:PropertyName>
<ogc:Literal>quarry</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
<MaxScaleDenominator>750000</MaxScaleDenominator>
<PolygonSymbolizer>
<Fill>
<GraphicFill>
<Graphic>
<ExternalGraphic>
<OnlineResource xlink:href="/var/lib/geoserver_data/Test/rogue_symbols/quarry2.png"/>
<Format>image/png</Format>
</ExternalGraphic>
</Graphic>
</GraphicFill>
</Fill>
</PolygonSymbolizer>
<LineSymbolizer>
<Stroke>
<CssParameter name="stroke-opacity">0.329</CssParameter>
<CssParameter name="stroke-width">.5</CssParameter>
<CssParameter name="stroke">#829495</CssParameter>
</Stroke>
</LineSymbolizer>
</Rule>
<Rule>
<Filter xmlns="http://www.opengis.net/ogc">
<PropertyIsEqualTo>
<PropertyName>landuse</PropertyName>
<Literal>vineyard</Literal>
</PropertyIsEqualTo>
</Filter>
<MinScaleDenominator>100000</MinScaleDenominator>
<MaxScaleDenominator>750000</MaxScaleDenominator>
<PolygonSymbolizer>
<Fill>
<CssParameter name="fill">#abdf96</CssParameter>
</Fill>
</PolygonSymbolizer>
</Rule>
<Rule>
<Filter xmlns="http://www.opengis.net/ogc">
<PropertyIsEqualTo>
<PropertyName>landuse</PropertyName>
<Literal>vineyard</Literal>
</PropertyIsEqualTo>
</Filter>
<MaxScaleDenominator>100000</MaxScaleDenominator>
<PolygonSymbolizer>
<Fill>
<GraphicFill>
<Graphic>
<ExternalGraphic>
<OnlineResource xlink:href="/var/lib/geoserver_data/Test/rogue_symbols/vineyard.png"/>
<Format>image/png</Format>
</ExternalGraphic>
</Graphic>
</GraphicFill>
</Fill>
</PolygonSymbolizer>
</Rule>
<Rule>
<ogc:Filter xmlns="http://www.opengis.net/ogc">
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>landuse</ogc:PropertyName>
<ogc:Literal>orchard</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
<MaxScaleDenominator>250000</MaxScaleDenominator>
<PolygonSymbolizer>
<Fill>
<GraphicFill>
<Graphic>
<ExternalGraphic>
<OnlineResource xlink:href="/var/lib/geoserver_data/Test/rogue_symbols/orchard.png"/>
<Format>image/png</Format>
</ExternalGraphic>
</Graphic>
</GraphicFill>
</Fill>
</PolygonSymbolizer>
<LineSymbolizer>
<Stroke>
<CssParameter name="stroke-opacity">0.5</CssParameter>
<CssParameter name="stroke-width">3</CssParameter>
<CssParameter name="stroke">#abd190</CssParameter>
</Stroke>
</LineSymbolizer>
</Rule>
<Rule>
<ogc:Filter xmlns="http://www.opengis.net/ogc">
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>landuse</ogc:PropertyName>
<ogc:Literal>industrial</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
<MaxScaleDenominator>500000</MaxScaleDenominator>
<PolygonSymbolizer>
<Fill>
<CssParameter name="fill">#beb8c1</CssParameter>
</Fill>
</PolygonSymbolizer>
</Rule>
<Rule>
<ogc:Filter xmlns="http://www.opengis.net/ogc">
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>landuse</ogc:PropertyName>
<ogc:Literal>reservoir</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
<MaxScaleDenominator>500000</MaxScaleDenominator>
<PolygonSymbolizer>
<Fill>
<CssParameter name="fill">#b5d0d0</CssParameter>
</Fill>
</PolygonSymbolizer>
</Rule>
<Rule>
<ogc:Filter xmlns="http://www.opengis.net/ogc">
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>leisure</ogc:PropertyName>
<ogc:Literal>sports_centre</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
<MaxScaleDenominator>250000</MaxScaleDenominator>
<PolygonSymbolizer>
<Fill>
<CssParameter name="fill">#64c397</CssParameter>
</Fill>
</PolygonSymbolizer>
</Rule>
</FeatureTypeStyle>
</UserStyle>
</NamedLayer>
</StyledLayerDescriptor>
Может ли кто-нибудь сказать мне, что я здесь делаю не так ???
AJ