[OpenLayers-Users] Loading WMC layers at overlays?

bartvde at osgis.nl bartvde at osgis.nl
Mon Aug 11 03:13:22 EDT 2008


Hi Joost,

first question:

for (var i=0; i<context.layers.length;i++) {
  var layer = context.layers[i];
  layer.params.TRANSPARENT = 'TRUE';
}

Second question:

You can pass in an existing map object like:

map = format.read(response.responseText, {map: map});

Best regards,
Bart

>
> I didn't realize that I could merge with an existing map object.  How
> would
> one do that?  Arnd, I did try to loop over the layers in the context
> before
> I added them to my map oject but I can't seem to access any of the
> properties.  How do I access the transparent property/parameter?
>
> Thanks for helping me out with this.
>
>
> Bart van den Eijnden wrote:
>>
>> Hi Arnd,
>>
>> you're absolute right. I didn't see that Joost was not merging the
>> context with an existing map object, like I am doing, in which case you
>> don't have that kind of control.
>>
>> Best regards,
>> Bart
>>
>> Arnd Wippermann wrote:
>>> Why not loop over context.layers before adding the layers?
>>>
>>> Arnd Wippermann
>>>
>>> -----Ursprüngliche Nachricht-----
>>> Von: users-bounces at openlayers.org [mailto:users-bounces at openlayers.org]
>>> Im
>>> Auftrag von Bart van den Eijnden (OSGIS)
>>> Gesendet: Samstag, 9. August 2008 12:04
>>> An: jvanulde
>>> Cc: users at openlayers.org
>>> Betreff: Re: [OpenLayers-Users] Loading WMC layers at overlays?
>>>
>>> Hi Joost,
>>>
>>> unfortunately there is no easy way to override this at the moment in
>>> OL,
>>> see
>>> also:
>>>
>>> http://trac.openlayers.org/ticket/1513
>>>
>>> What you can do is loop over your layers and then set
>>> layer.params.TRANSPARENT to 'true', but it might be too late since the
>>> layer
>>> will have actually been drawn already.
>>>
>>> Otherwise change the default WMS parameters of OpenLayers,
>>>
>>>     /**
>>>      * Constant: DEFAULT_PARAMS
>>>      * {Object} Hashtable of default parameter key/value pairs
>>>      */
>>>     DEFAULT_PARAMS: { service: "WMS",
>>>                       version: "1.1.1",
>>>                       request: "GetMap",
>>>                       styles: "",
>>>                       exceptions: "application/vnd.ogc.se_inimage",
>>>                       format: "image/jpeg"
>>>                      },
>>>
>>> to e.g. format "image/png" and transparent "true".
>>>
>>> Best regards,
>>> Bart
>>>
>>> jvanulde wrote:
>>>
>>>> Hi Bart,  thanks for that as I think I am half way there now.  The
>>>> only issue now is that the layers are not transparent.  They are
>>>> coming from Mapserver as PNG's.  Here is my code:
>>>>
>>>>         OpenLayers.IMAGE_RELOAD_ATTEMPTS = 2;
>>>>         OpenLayers.Util.onImageLoadErrorColor = "transparent";
>>>>
>>>>         var layerOptions = {
>>>>             isBaseLayer: false,
>>>>             singleTile: true,
>>>>             buffer: 0,
>>>>             ratio: 1
>>>>             };
>>>>
>>>>         var format = new OpenLayers.Format.WMC({'layerOptions':
>>>> layerOptions});
>>>>         var map, context;
>>>>
>>>>         function initMap()
>>>>         {
>>>>             // parse wmc into context object
>>>>             var wmc = document.getElementById('<%= hidWMC.ClientID
>>>> %>').value;
>>>>             context = format.read(wmc, {map: map});
>>>>
>>>>             // construct a map given the context
>>>>             var mapOptions = {
>>>>                 maxExtent: context.bounds,
>>>>                 projection: context.srs
>>>>                 };
>>>>
>>>>             map = new OpenLayers.Map("map", mapOptions);
>>>>
>>>>             var baseLayerOptions = {
>>>>                 isBaseLayer: true,
>>>>                 displayInLayerSwitcher: false
>>>>                 };
>>>>
>>>>             var fake = new OpenLayers.Layer('fake', baseLayerOptions);
>>>>             map.addLayer(fake);
>>>>
>>>>             map.addLayers(context.layers);
>>>>             map.addControl(new OpenLayers.Control.LayerSwitcher());
>>>>             map.zoomToMaxExtent();
>>>>         }
>>>>
>>>> Is there a way to make the layers transparent now that I have loaded
>>>> them?
>>>>
>>>
>>>
>>>> I think the problem is elsewhere but need some pointers on where to
>>>> look.  I have loaded the context in another viewer and the layers come
>>>> in as expected.
>>>>
>>>>
>>>>
>>>> Bart van den Eijnden wrote:
>>>>
>>>>
>>>>> Hi Joost,
>>>>>
>>>>> you can pass layerOptions to the Format.WMC constructor in order to
>>>>> do this. Code example:
>>>>>
>>>>> mapfish.OGCUtil.readWMC = function(map, response, noZoom) {
>>>>>     var format = new OpenLayers.Format.WMC({layerOptions:
>>>>> {isBaseLayer:
>>>>> false, singleTile: true, buffer: 0,ratio: 1}});
>>>>>
>>>>>     // remove all layers except the baselayer
>>>>>     for (var i = map.layers.length-1; i >= 0; i--) {
>>>>>         if (!map.layers[i].isBaseLayer) {
>>>>>             map.removeLayer(map.layers[i], false);
>>
>>>>>         }
>>>>>     }
>>>>>
>>>>>     map = format.read(response.responseText, {map: map});
>>>>>     ...
>>>>> }
>>>>>
>>>>> Best regards,
>>>>> Bart
>>>>>
>>>>>
>>>>>
>>>>>> Thanks John, that works.  Now I need to know how to convert all of
>>>>>> the layers in my WMC to overlay's.  Any ideas?
>>>>>>
>>>>>> -----Original Message-----
>>>>>> From: John Pulles [mailto:john.pulles at gmail.com]
>>>>>> Sent: Wed 06/08/2008 2:49 PM
>>>>>> To: Van Ulden, Joost
>>>>>> Cc: users at openlayers.org
>>>>>> Subject: Re: [OpenLayers-Users] Loading WMC layers at overlays?
>>>>>>
>>>>>> 2008/8/6 jvanulde <jvanulde at nrcan.gc.ca>
>>>>>>
>>>>>>
>>>>>>
>>>>>>> Is this possible?  I want to add a fake base layer and load all the
>>>>>>> WMC layers as overlays.  Any ideas on how one would go about doing
>>>>>>>
>>> this?
>>>
>>>>>>>
>>>>>>>
>>>>>> You can add a fake base layer with
>>>>>>
>>>>>> map.addLayer(new OpenLayers.Layer('None', {isBaseLayer: true}));
>>>>>>
>>>>>> Regards,
>>>>>> John
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>> --
>>>>>>> View this message in context:
>>>>>>> http://www.nabble.com/Loading-WMC-layers-at-overlays--tp18859376p18
>>>>>>> 859376.html Sent from the OpenLayers Users mailing list archive at
>>>>>>> Nabble.com.
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Users mailing list
>>>>>>> Users at openlayers.org
>>>>>>> http://openlayers.org/mailman/listinfo/users
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> _______________________________________________
>>>>>> Users mailing list
>>>>>> Users at openlayers.org
>>>>>> http://openlayers.org/mailman/listinfo/users
>>>>>>
>>>>>>
>>>>>>
>>>>> _______________________________________________
>>>>> Users mailing list
>>>>> Users at openlayers.org
>>>>> http://openlayers.org/mailman/listinfo/users
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> Bart van den Eijnden
>>> OSGIS, Open Source GIS
>>> bartvde at osgis.nl
>>> http://www.osgis.nl
>>>
>>> _______________________________________________
>>> Users mailing list
>>> Users at openlayers.org
>>> http://openlayers.org/mailman/listinfo/users
>>>
>>>
>>>
>>>
>>
>>
>> --
>> Bart van den Eijnden
>> OSGIS, Open Source GIS
>> bartvde at osgis.nl
>> http://www.osgis.nl
>>
>> _______________________________________________
>> Users mailing list
>> Users at openlayers.org
>> http://openlayers.org/mailman/listinfo/users
>>
>>
>
> --
> View this message in context:
> http://www.nabble.com/Loading-WMC-layers-at-overlays--tp18859376p18921083.html
> Sent from the OpenLayers Users mailing list archive at Nabble.com.
>
> _______________________________________________
> Users mailing list
> Users at openlayers.org
> http://openlayers.org/mailman/listinfo/users
>





More information about the Users mailing list