我正在使用带有geoserver的openlayer。
我想创建将viewparams发送到geoserver图层的矢量图层, 使用WMS可以轻松完成此操作。
然而我这样做:
var newLayer = new OpenLayers.Layer.Vector('layer',
{
strategies: [new OpenLayers.Strategy.Fixed({preload: true})]
, projection: new OpenLayers.Projection("EPSG:4326")
,protocol: new OpenLayers.Protocol.HTTP({
url:"/geoserver/ows?service=WFS&version=2.4.0&request=GetFeature&typeName=WG:layer&maxFeatures=50&outputFormat=json&viewparams=UID:"+id,
format: new OpenLayers.Format.GeoJSON()
}),
styleMap: new OpenLayers.StyleMap({
'default': new OpenLayers.Style(null, {
rules: [
new OpenLayers.Rule({
symbolizer: {
graphic: false,
label: "name",
labelSelect: true,
fontStyle: 'italic'
}
})
]
})
})});
这是可行的,但问题是功能投影错误。!
虽然我在其他wms图层上使用相同的投影。 问题是:
1- OpenLayers.Protocol.HTTP
或
2 - OpenLayers.Projection("EPSG:4326")
还有另一种方法可以在不使用HTTP协议的情况下发送param吗?