[OpenLayers-Users] Loading WMC layers at overlays?
Bart van den Eijnden (OSGIS)
bartvde at osgis.nl
Sun Aug 10 10:49:37 EDT 2008
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
More information about the Users
mailing list