ThinkGeo.com    |     Blog    |     Wiki    |     Support

Using Google Maps as a Base Layer is extremly slow and erratic

The slow part of this problem is based on:

  • The “Tiles” obviously fill in one-by-one (a video would show this better)
  • When debugging the App I see quite a few “hill climbing, change max number of threads” calls. There are very few of these calls when I use Bing and I also notice a big difference between the different Google PictureFormats i.e. Jpeg has very few of these calls; Png has very many

The erratic part of this problem can be seen in this screenshot:

And here is the relevant code (also note my comments about the results returned by the different PictureFormats):

Note: I am using a GoogleMaps Layer so that I can attach my API key to the web request.

Hi Michael,

Please refer the following points about your questions:

  1.   The default tile type of layer overlay is MultiTile, so the tiles obviously fill in one-by-one.
    
  2.   Map draws tiles with multi-thread. When you quickly zoom in map, map will create a lot of thread to draw tiles, so the max number of threads will change bigger. But don’t worry. After drawing the tiles, the threads will be closed.
    

We create a sample to test google maps, but we cannot reproduce your problem that the different picture formats cause difference result. The vs output shows the same things between the different picture formats. The picture format is only used when send request and save tile, it is impossible that the picture format causes app slow.

The google maps is slow and erratic which is caused by a bad internet connect. You can set the tile cache to resolve it. Please refer the following code:
GoogleMapsLayer googleMapsLayer = new GoogleMapsLayer();
googleMapsLayer.TileCache = new FileBitmapTileCache(@“mnt/sdcard/MapSuiteSampleData/”, “GoogleMapsTileCache”);

Thanks,