一般:
是否有可能以不同的樣式從一個單一的WMS查詢一些WMS功能基礎上,定製列表過濾器或其他參數?特別
:
在WMS查詢,返回的功能集合的光柵(即風格的紅色圓點點),
我希望的GeoServer到differrently風格(藍點)的確定只是一個特徵與WMS發送HTTP-REQ參數要求
保持其他集合中的默認風格
並避免使用兩根WMS的重疊:
造型由WMS請求參數
回答
一個更快的(也可能是更容易)的方式比@ FMBA的建議是使用默認顏色和第二時間過濾和高亮風格兩次請求層,一旦。您可以在一個請求中執行此操作,也可以發出兩個請求,以便瀏覽器可以緩存默認圖層並僅重新獲取高光。
對於它看起來像第一個請求:
http://....../wms?service=wms&.....&layers=dots,dots&styles=,highlight&cql_filter=INCLUDE;INTERSECT(the_geom,%20POINT%20(-74.817265%2040.5296504))
這就要求層(點)兩次,一次用默認的樣式(或者你可以在這裏使用一個命名樣式太),然後用突出風格。最後,你必須提供兩個過濾器(第一個只是返回所有內容)。
而在第二個,你會像往常一樣添加另一個圖層。
這絕對比我的更好更簡單的解決方案! ;) – Fbma
太棒了,你剛剛擊中它! – aleclofabbro
@iant:原Q中的例子可能會引起誤解,導致«selected»風格與«unselected»風格相同,是否適用於不同的形狀或僅與兩個wms重疊?[編輯Q進一步澄清] – aleclofabbro
您可以同時使用這兩個過濾器和變量替換。 你SLD可能是這樣的:
<?xml version="1.0" encoding="ISO-8859-1"?>
<StyledLayerDescriptor version="1.0.0"
xsi:schemaLocation="http://www.opengis.net/sld StyledLayerDescriptor.xsd"
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">
<!-- a Named Layer is the basic building block of an SLD document -->
<NamedLayer>
<Name>default_point</Name>
<UserStyle>
<!-- Styles can have names, titles and abstracts -->
<Title>Default Point</Title>
<Abstract>A sample style that draws a point</Abstract>
<FeatureTypeStyle>
<Rule>
<Name>rule1</Name>
<Title>Red Square</Title>
<PointSymbolizer>
<Graphic>
<Mark>
<WellKnownName>square</WellKnownName>
<Fill>
<CssParameter name="fill">#FF0000</CssParameter>
</Fill>
</Mark>
<Size>6</Size>
</Graphic>
</PointSymbolizer>
</Rule>
<Rule>
<Name>rule2</Name>
<Title>Blue Square</Title>
<ogc:Filter>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>name</ogc:PropertyName>
<ogc:Function name="env">
<ogc:Literal>element</ogc:Literal>
</ogc:Function>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
<PointSymbolizer>
<Graphic>
<Mark>
<WellKnownName>square</WellKnownName>
<Fill>
<CssParameter name="fill">#0000FF</CssParameter>
</Fill>
</Mark>
<Size>6</Size>
</Graphic>
</PointSymbolizer>
</Rule>
</FeatureTypeStyle>
</UserStyle>
</NamedLayer>
</StyledLayerDescriptor>
看到,我們在「ENV」參數使用稱爲「元素」(如我們在SLD中定義)的參數(在請求結束)至極,你可以用「name_yo_want_to_filter」的屬性「名」的值賦給在WMS請求的值,因此只有特徵將呈現爲藍色,像這樣:
http://your_geoserver/wms?LAYERS=your_layer&STYLES=&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&SRS=EPSG%3A25830&BBOX=177329.45520721,4198063.2254456,177681.24924735,4198495.164411&WIDTH=417&HEIGHT=512&env=element:name_yo_want_to_filter
記住,「FID '不會是一個有效的參數,因爲它通常是隱藏的,所以geoserver不會接受它的'PropertyIsEqualTo'過濾器。
編號:http://docs.geoserver.org/latest/en/user/styling/sld-extensions/substitution.html 編號:http://docs.geoserver.org/latest/en/user/styling/sld-reference/filters.html
好吧, @iant的aswer真的很適合我的特定問題,但是+1也適用於您的非常有用的提示! – aleclofabbro
- 1. GET請求路由參數
- 2. MouseWheelZoom後延遲WMS請求
- 3. 從屬性路由請求參數
- 4. 泛型參數的構造器需求?
- 5. 請求參數
- 6. jmeter jdbc請求參數類型
- 7. symfony2獲取路由參數(控制器參數vs請求)
- 8. 路由請求到基於路由參數的控制器
- 9. facebook請求參數
- 10. MPI_Isend請求參數
- 11. python請求參數
- 12. JSF請求參數
- 13. 請求URL參數
- 14. 請求參數未在POST請求
- 15. 帶請求參數的RestTemplate GET請求
- 16. Redis的造型由數
- 17. 添加一個數組作爲請求參數與改造2
- 18. 快速路由器GET請求console.log顯示未定義的請求參數
- 19. 如何在Laravel 5表單請求中使用請求路由參數?
- 20. 構造函數注入路由參數
- 21. 鑄造類型參數
- 22. JavaScript構造參數類型
- 23. 構造與泛型參數
- 24. Facebook「贊」請求參數無
- 25. 得到請求參數
- 26. 字符串參數請求
- 27. SpringMVC請求參數轉換
- 28. Alamofire請求參數爲空
- 29. 請求網址參數
- 30. 請求參數和PHPDoc的
正如[http://docs.geoserver.org/stable/en/user/styling/sld-working.html]中所述:「可以使用SLD_BODY =樣式直接在WMS GetMap GET請求中提供SLD文檔參數,SLD XML必須是URL編碼的「,對於您來說它是否是一個有效的場景,通過適當的過濾器爲每個請求動態創建SLD? – Fbma
@Fbma我認爲這將全球重新設置圖層,我編輯我的Q,因爲它可能不清楚.. – aleclofabbro
好吧,我明白了......重疊可以通過設置第一個過濾器作爲第二個的否定;) – aleclofabbro