[ka-Map-users] Kamap removeMapLayer
Stéphane RIFF
stephane.riff at cerene.fr
Fri Sep 7 04:24:43 EDT 2007
Hi,
Yes for me it seems to work well, I haven't see anything wrong until now.
Maybe someone else can try it.
Best regards,
Stéphane
Paul Spencer wrote:
> Hi Stéphane,
>
> Is this working for you? We are looking at a 1.1 release soon and I
> would like to include this in it.
>
> Paul
>
> On 6-Sep-07, at 8:38 AM, Stéphane RIFF wrote:
>
>> Hi,
>>
>> I have made a workaround for the kaLegend draw() function.
>> I don't know if it's totally ok but it seems to work.
>>
>> Can you have look and tell me if you see some problem so I can
>> improve it ?
>>
>> Here is the draw function :
>> Remove the line with "--" and add the ones with "++"
>>
>> /**
>> * legend.draw( szContents )
>> *
>> * render the contents of a legend template into a div
>> */
>> kaLegend.prototype.draw = function() {
>> /*modificato da kappu non trova url corretto se non lo metto anche
>> qui*/
>> this.urlBase = this.kaMap.server;
>> this.urlBase += (this.urlBase!=''&&this.urlBase.substring(-1)!
>> ='/')?'':'/';
>>
>> var oMap = this.kaMap.getCurrentMap();
>>
>> this.expanders = [];
>> this.queryCBs = [];
>>
>> if (this.domObj.childNodes.length == 0) {
>> this.domObj.appendChild(this.createHeaderHTML());
>> }
>>
>> var aLayers = oMap.getAllLayers();
>> -- for (var i=(aLayers.length-1);i>=0;i--) {
>> -- if (aLayers[i].kaLegendObj == null) {
>> -- this.createLayerHTML( aLayers[i] );
>> -- } else {
>> -- try{this.domObj.removeChild( aLayers[i].kaLegendObj );}
>> -- catch(e){};
>> -- }
>> -- }
>> ++ var childs = this.domObj.childNodes;
>> ++ for (var i=(childs.length-1);i>=0;i--) {
>> ++ if(childs[i].className == "kaLegendLayer") {
>> ++ try{this.domObj.removeChild( childs[i] );}
>> ++ catch(e){};
>> ++ }
>> ++ }
>>
>> for (var i=(aLayers.length-1);i>=0;i--) {
>> ++ this.createLayerHTML( aLayers[i] );
>> this.domObj.appendChild( aLayers[i].kaLegendObj );
>> }
>>
>> if (this.kaMap.isIE4) {
>> for(var i=0; i<this.queryCBs.length; i++) {
>> this.queryCBs[i].checked = this.queryCBs[i].oLayer.visible;
>> }
>> }
>> return;
>> };
>>
>> Thanks,
>> Hope this help.
>>
>> Stephane
>>
>> Paul Spencer wrote:
>>
>>> this appears to be a bug in kaLegend draw() method, it rebuilds
>>> the legend based on the layers in the map but in doing so it only
>>> removes legend entries for layers that are in the map - so once a
>>> layer is removed, and draw is called (through KAMAP_LAYERS_CHANGED
>>> event), the legend entry will not be removed.
>>>
>>> Patches welcome.
>>>
>>> Cheers
>>>
>>> Paul
>>>
>>> On 31-Aug-07, at 10:57 AM, Stéphane RIFF wrote:
>>>
>>>> Hi,
>>>>
>>>> I use the removeMapLayer but I have a problem.
>>>> With addMapLayer, the layer is added to the legend too but with
>>>> removeMapLayer the layer isn't remove from legend.
>>>>
>>>> Can someone tell me how to remove a layer from the legend ?
>>>>
>>>> Thanks
>>>> Steff
>>>> _______________________________________________
>>>> ka-Map-users mailing list
>>>> ka-Map-users at lists.maptools.org
>>>> http://lists.maptools.org/mailman/listinfo/ka-map-users
>>>
>>>
>>>
>>> +-----------------------------------------------------------------+
>>> |Paul Spencer pspencer at dmsolutions.ca |
>>> +-----------------------------------------------------------------+
>>> |Chief Technology Officer |
>>> |DM Solutions Group Inc http://www.dmsolutions.ca/ |
>>> +-----------------------------------------------------------------+
>>>
>>>
>>>
>>>
>>>
>>>
>>
>
> +-----------------------------------------------------------------+
> |Paul Spencer pspencer at dmsolutions.ca |
> +-----------------------------------------------------------------+
> |Chief Technology Officer |
> |DM Solutions Group Inc http://www.dmsolutions.ca/ |
> +-----------------------------------------------------------------+
>
>
>
>
>
>
More information about the ka-Map-users
mailing list