[OpenLayers-Dev] unnecessary method invocations ...

Paul Spencer pspencer at dmsolutions.ca
Fri Sep 28 03:30:53 EDT 2007


Okay, I finally realized where I went wrong about this.  I misread a  
line of code ...  I now grok what you were intending and withdraw my  
objection to using removeExcessTiles :)

However, your suggestion to revisit whether or not we should support  
switching from tiled to singleTile is still a valid point that we  
should discuss.  Chris indicated this afternoon that he's not sure we  
should support that as a use case.  Now that I understand the code a  
bit better, I am ambivalent about this particular use case.

Looking forward to hacking with you tomorrow

Cheers

Paul

On 27-Sep-07, at 7:36 AM, Paul Spencer wrote:

> Thanks for the feedback Erik :)  I'm not worried about getting this  
> stuff into 2.5, since it is already awesome.  These are just minor  
> tweaks.
>
> I would like to spend a couple of minutes talking to you about  
> first question if you have some time today.  I am not sure I quite  
> understand how calling removeExcessTiles will do anything after you  
> have changed the grid array to have only one tile in it.  It seems  
> that you should call it *before* resetting the array to facilitate  
> switching from tiled to single, otherwise you will end up with a  
> bunch of tiles that have nothing pointing to them.
>
> Cheers
>
> Paul
>
> On 26-Sep-07, at 11:03 PM, Erik Uzureau wrote:
>
>> Hi Paul what a great email from you -- it's cool to know that  
>> someone else
>> is looking through the guts of this stuff. Your comments are very  
>> welcome.
>> i am responding inline below....
>>
>> On 9/26/07, Paul Spencer <pspencer at dmsolutions.ca> wrote:
>>> I'm starting to look at the impact of modifying rendering in
>>> singleTile layers to not clear the existing tile until the new tile
>>> arrives.  As I try to grok the code related to this, I'm running  
>>> into
>>> a couple of things I think are unnecessary.  My understanding of the
>>> code is still perhaps too limited to understand if the following are
>>> extraneous or not, but I thought I would throw it out there and see
>>> if others can explain why they are necessary:
>>>
>>> At the end of initSingleTile in Grid.js, there is a call to:
>>>
>>> this.removeExcessTiles(1,1);
>>>
>>> This seems unnecessary to me as several lines before, this.grid is
>>> set to an empty array and exactly one new tile is added to it.  It
>>> does not seem to me that this.grid can contain any more than one  
>>> tile
>>> at the point removeExcessTiles is called and therefore this is pure
>>> overhead (not much, I grant).
>>
>> So I believe the reason I put that in there was for the case where  
>> you
>> have a gridded layer and you switch it mid-operation to a single- 
>> tile layer.
>> I vaguely remember thinking at some point that we should support that
>> case. Of course, realistically, that's pretty absurd. As you say,  
>> though,
>> at least at this point, the overhead is pretty minimal.
>>
>> If we can all agree that switching the 'singleTile' variable mid- 
>> run is NOT
>> something that we want to support, then I think we could safely  
>> remove
>> that. I think the best route for that sort of change is a 2.6  
>> ticket with the
>> simple patch (note that it will probably break tests, so we'll  
>> have to update
>> that too).
>>
>>>
>>> In Tile.js moveTo, this.clear() is called prior to calling this.draw
>>> (), which also calls this.clear().  It seems calling this.clear in
>>> moveTo is unnecessary.  This is not quite true because there is a
>>> code path involving the redraw variable where this.draw() is not
>>> called and so the clear would need to be done in the alternate path.
>>> Of course, if you are moving a layer and not redrawing it, should  
>>> you
>>> clear it?
>>
>> This is a great find and something that I actually squeezed my head
>> over quite a bit just last week with a MetaCarta single-tiled  
>> application
>> that I'm building. Ran into the same exact problem as I'm sure you  
>> are, that
>> the tile gets cleared, then the request goes out and the map is  
>> blank while
>> you wait for the new data to load. clearly not ideal.
>>
>> Chris helped me think this one through a few times and yes I think  
>> you're
>> totally right. The clear definitely does *not* need to be in  
>> there. The clear()
>> belongs *immediately* before the actual drawing happens and nowhere
>> else.
>>
>> The case you bring up about the 'redraw' option is a good one too  
>> and but
>> it turns out that's only used to facilitate the spiralTileLoad()
>> function.... which
>> is to say that the tiles which are moved but not drawn are almost  
>> all drawn
>> after all tiles have been moved.
>>
>> I meant to make a ticket for this but then ended up finding a
>> different workaround
>> in my application and forgot to get to it.
>>
>> I've opened
>> http://trac.openlayers.org/ticket/1017
>>
>> and put a patch in there. Unfortunately, the 2.5 release is pretty
>> much on its way out the door, so this will also have to wait for 2.6.
>> :-(
>>
>> Erik
>>> Discussion invited :)
>>>
>>> Cheers
>>>
>>> Paul
>>>
>>> +-----------------------------------------------------------------+
>>> |Paul Spencer                          pspencer at dmsolutions.ca    |
>>> +-----------------------------------------------------------------+
>>> |Chief Technology Officer                                         |
>>> |DM Solutions Group Inc                http://www.dmsolutions.ca/ |
>>> +-----------------------------------------------------------------+
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Dev mailing list
>>> Dev at openlayers.org
>>> http://openlayers.org/mailman/listinfo/dev
>>>
>
> +-----------------------------------------------------------------+
> |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 Dev mailing list