Dynamische Parameterübergabe an einen WMS Layer

Hallo Zusammen,

ich möchte gerne meiner SQL View im Geoserver die Bouding Rect Koordinaten mit geben die meinen Viewport in OpenLayers bereitstellt.

Allerdings gibt er in der URL immer wieder nur die Anfangs Koordinaten mit.

Hat jemand eine Idee ?

In meinem Beispiel wäre es

map.getExtent().transform(proj_900913, proj_4326).left

Wenn ich das über die Konsole ausführe dann kriege ich immer die neuen Koordinaten …

function addOrderHouseLayer() {
	houses_layer = new OpenLayers.Layer.WMS(
		"MI_Areas:OrderHouses - Tiled", "http://SMI-WEB-B03:8080/geoserver/MI_Areas/wms",
		{
			LAYERS: 'MI_Areas:OrderHouses',
			//STYLES: '',
			format: 'image/png',
			viewparams:'left:' + map.getExtent().transform(proj_900913, proj_4326).left,
			tiled: true,
			tilesOrigin: map.maxExtent.left + ',' + map.maxExtent.bottom,
			transparent: true,
			visibility: false
		},
		{
			buffer: 0,
			displayOutsideMaxExtent: true,
			isBaseLayer: false,
			yx: { 'EPSG:4326': true },
			visibility: false
		}
	);
	map.addLayer(houses_layer);
}

eine ganz wage:
ich bin es von allen Openlayers.Layer.* so gewohnt, dass OL immer bbox als Argument weiterleitet.
Und laut Doku kannst du bei OpenLayers.Layer.WMS angeben, WIE er bbox verwenden soll (encodeBBOX) aber nicht OB er das machen soll. Daraus schliesse ich, dass er immer BBOX mit übergibt. Du musst nur mal schauen, was der WMS-Server “sieht”.

Wie schon gesagt, reine Spekulation.

Gruss
walter

p.s. letztendlich “bastelt” OL einen URL zusammen in dem der Request an den WMS steht. Den mußt du halt checken.

Ich blende miene WMS-Layer immer mit “singleTile: true” ein, dann holt sich OL den ganzen Ausschnitt. Umwandlung ins Wunschkoordinatensystem der Datenbank mache ich dann ggf. mit SQL.

Das da z.B.

new OpenLayers.Layer.WMS(
  "Debug: Routinggraph",
  "http://wms.dianacht.de/cgi-bin/mapserv6?map=../maps/routing.map",
  {layers:'kanten,knoten', format:"agg"}, 
  {projection: new OpenLayers.Projection("EPSG:900913"), 
   numZoomLevels:19 ,
   isBaseLayer:false,
   singleTile: true});

Führt zu dieser URL:

/cgi-bin/mapserv6?map=../maps/routing.map&LAYERS=kanten%2Cknoten&FORMAT=agg&
  SERVICE=WMS&VERSION=1.1.1&
  REQUEST=GetMap&
  STYLES=&
  SRS=EPSG%3A900913&
  BBOX=1257257.4524066,6107160.9217406,1276032.2974766,6118167.8538122&
  WIDTH=1965&
  HEIGHT=1152 

Grüße, Max