[Users] legendpanel refresh problem
Andreas Hocevar
ahocevar at opengeo.org
Wed Feb 16 00:47:21 CET 2011
Hi,
what version of GeoExt are you working with? Maybe you should just update to the latest trunk version. Because we have exactly the same use case in our applications, and it works without any problems.
You should never need to trigger a legend update, it is always triggered automatically with a mergeNewParams or refresh(true) on the layer.
Regards,
Andreas.
On Feb 15, 2011, at 18:25 , Chris Kelley wrote:
> Hi Andreas, thanks for your response.
>
> Step (2) in my explanation is a server-side redraw of the SLD applied to the viewed layer, after which I do call layer.redraw(true) -- should have been more explicit on that. Then step (3) occurs automatically due to the layer redraw command.
>
> I copied the code from change ticket #406 into my WMSLegend.js file, and this appears to have fixed the legend caching I reported. That's a big step forward on the problem and I appreciate the suggestion.
>
> It seems the patch is necessary but not sufficient though, for even with this patch the legend will only update once the zoom-level is changed after a layer redraw command, whereas the map updates immediately.
>
> I need to be able to trigger a legend refresh immediately any time a user requests an SLD update for a viewed layer, without requiring the user to manually trigger other events. A kludge for this is to clone the current bounds, zoom to max extent, and then zoom back to the cloned bounds. This is extra server traffic though that I would prefer not to have.
>
> Do you have any advice on this?
>
> Thanks,
> Chris
>
>
> On Tue, Feb 15, 2011 at 2:24 AM, Andreas Hocevar <ahocevar at opengeo.org> wrote:
> Hi,
>
> What do you mean by 2. and 3.? You should call layer.redraw(true) to reload the layer.
>
> If you do so, then you may be running into http://trac.geoext.org/ticket/406, which is fixed on trunk already, but was broken in 1.0.
>
> Regards,
> Andreas.
>
>
>> Am 15.02.2011 03:29 schrieb "Chris Kelley" <iamchriskelley at gmail.com>:
>>
>>
>> Hi,
>>
>> This is my first post to the GeoExt Users forum. The short question is whether you can manually trigger a legendpanel refresh or update event in javascript. The explanation is provided below.
>>
>> Explanation:
>> I have a webpage that includes a GeoExt mappanel and legendpanel that pull information from a geoserver instance on the same machine, and works perfectly for layers with static styles. I've added a form and some PHP scripts (called via AJAX) to allow the user to update the SLD file (e.g. changing the color scheme). The mappanel worked fine after adding layer.redraw(true). I don't know how to force a legendpanel update, and furthermore the legendpanel currently shows some unwanted caching.
>>
>> As an example:
>> 1. I load a map at a given zoom level
>> 2. I trigger a server-side redraw of the SLD (using the Geoserver Rest API)
>> 3. The webpage correctly redraws the map with the new SLD
>> 4. I zoom further in on the map, and the legendpanel updates properly
>> 5. I zoom back to the zoom level I was at when the SLD was updated, and the legend REVERTS to the previous legend (although the map continues to render properly).
>>
>> I'd appreciate any help with this. Let me know if it requires any further explanation.
>>
>> Best,
>> Chris
>>
>>
>> _______________________________________________
>> Users mailing list
>> Users at geoext.org
>> http://www.geoext.org/cgi-bin/mailman/listinfo/users
>>
>
>
--
Andreas Hocevar
OpenGeo - http://opengeo.org/
Expert service straight from the developers.
More information about the Users
mailing list