[Xastir] Announcing tile support for OSM

Tom Hayward esarfl at gmail.com
Tue Jul 27 20:17:50 EDT 2010


On Tue, Jul 27, 2010 at 17:00, Jeremy McDermond <mcdermj at xenotropic.com> wrote:
> On Jul 27, 2010, at 4:53 PM, Curt, WE7U wrote:
>
>> On Wed, 28 Jul 2010, James Cameron wrote:
>>
>>> Are the http requests streamed in one connection, or are there multiple
>>> connections?  Are the multiple connections fired simultaneously or are
>>> they queued one by one?
>>>
>>> The reason I ask is that several users are on high latency connections,
>>> such as satellite or commercial wireless "broadband", and a tiling
>>> implementation that makes multiple requests pays the latency penalty
>>> many times.
>
> I don't think the real question is whether they're simultaneous, but whether the HTTP request can be pipelined.  That way you can request multiple tiles in one TCP connection and save the TCP setup costs over a high latency connection.
>

I had the same questions and went looking through the code for
answers. Indeed the tiles are requested serially. Each tile download
is delegated to fetch_remote_file() in fetch_remote.c. This function
uses libcurl or wget. I think a new helper function would be required
to support multiple downloads via one connection.

Latency is a killer for this feature. My connection is pretty good,
but it appears the server latency is pretty bad. Two parallel
connections instead of the serial requests would probably speed things
up greatly. I might try to implement this, but it might take me a
while to figure out threading in C. I know exactly how I would do it
in Python :)

Despite the latency, tile support has sped things up a lot. I'm really
liking this feature. Once the tiles are cached, map panning is very
speedy!

Tom KD7LXL



More information about the Xastir mailing list