x

Dynamische Parameterübergabe an einen WMS Layer


  1. Dynamische Parameterübergabe an einen WMS Layer · Maj0rrush (Gast) · 28.02.2013 15:09 · [flux]

    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);
    }
    

    • Re: Dynamische Parameterübergabe an einen WMS Layer · wambacher (Gast) · 28.02.2013 15:33 · [flux]

      Maj0rrush wrote:

      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 ?

      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.


    • Re: Dynamische Parameterübergabe an einen WMS Layer · maxbe (Gast) · 28.02.2013 15:48 · [flux]

      Maj0rrush wrote:

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

      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