TL,DR:
Doing some performance testing on the loading time of bing maps in one of our products that uses MapSuite WPF Desktop Edition I discovered that tiles requests are hitting an outdated bing server (ecn.{subdomain}.tiles.virtualearth.net). Getting the tiles from the new ak.dynamic.{subdomain}.tiles.virtualearth.net would result in a significant performance improvement due to a much shorter response time of the new service.
Extended version:
In January last year Bing Maps changed their tiles delivery system to be on-demand, to achieve significant response time improvements:
social.msdn.microsoft.com/Forums/en-US/618e5f6c-7222-446f-b738-7f57a2e2b592/new-url-templates-for-bing-maps-tiles?forum=bingmapsservices
The article shows that with the new system the tiles should be retrieved from ak.dynamic.{subdomain}.tiles.virtualearth.net instead of ecn.{subdomain}.tiles.virtualearth.net.
It’s easy to verify, by using the following sample application provided by Microsoft and a traffic capture application (e.g. Fiddler) that the tiles come from ak.dynamic.{subdomain}.tiles
w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html
>
<
head
>
<
title
>Map<!–</code–>
title
>
<
meta
http-equiv
=
“Content-Type”
content
=
“text/html; charset=utf-8”
/>
<
script
type
=
“text/javascript”
src
=
"<a href="ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=7.0">ecn.dev.virtualearth.net/map...ashx?v=7.0</a>"
><!–</code–>
script
>
<
script
type
=
“text/javascript”
>
var map = null;
function getMap()
{
map = new Microsoft.Maps.Map(document.getElementById(‘myMap’), {credentials: ‘BING_KEY_HERE’, disablePanning :false });
}
<!–</code–>
script
>
<!–</code–>
head
>
<
body
onload
=
“getMap();”
>
<
div
id
=
‘myMap’
style
=
“position:relative; width:1000px; height:800px;”
><!–</code–>
div
>
<!–</code–>
body
>
<!–</code–>
html
>
Using the latest Wpf Desktop Edition 8 build (8.0.0.147) instead the tiles are still downloaded from ecn.{subdomain}.tiles
I did a performance test, with multiple tiles and multiple downloads of the same tile and here are my results:
Requests to ecn.tX.tiles - average loading time (ms)
Requests to ak.dynamic.tX.tiles - average
loading time (ms)
First request
547.2
283.2
Successive requests
51.86
12.67
Attached you can find the detailed loading time of a typical tile request from both ecn and ak.dyinamic.
So my question is: could you confirm which of the two servers ThinkGeo hits?Also, is this a bug or is there any plan to update the API calls considering the evident performance improvements that can be achieved?
Thanks in advance.