[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