Thursday 22 September 2011

Fuck Google Maps Offline III

This is to replace two previous my posts "Maps Offline with Tile Viewer (part II)" and "How to browse Google Maps offline"

A few years ago I wrote my own tile viewer for viewing Google Maps tiles. Then I created a quite elaborate system for downloading tiles from Google servers. That all failed miserably. For the viewer I did not have much time for full application development. For the downloader I found that Google cleverly fights with such smart-asses like me. All in all I figured out that the simplest solutions are often the best. And below is the way I found practical for all my needs.

You need:
0 Working Internet Explorer (IE), if you are using Unix OS run it in Virtual machine
1. iegmsas console program
2. SAS.Planet (optional if you have your own tile viewer)
3. TrueCrypt (optional if you do not intent work with Tbytes of volumes)

Starting from the bottom up.

3. TrueCrypt is a program, which easily create a virtual hard drive. This program is necessary for the cache because if you have above 10-20 Gb of tiles moving the cache around becomes impractical. Instead TrueCrypt has all your cache in one file. If you are just starting creating you cache you can ignore this point at all and worry about it later.

2. SAS.Planet is a nice but crooked program for viewing and handling tiles. Its advantage is that it is the best program that exists, quite reliable, and with impressive functionality. A big disadvantage is that it is written in Russian and English version is way not too intuitive and user friendly. [Maybe it is done intentionally.] I am using the English version. It is very satisfactory once you get used to it. This program has its own built-in downloader for different map services including Google maps. But it does not work reliably because as I mentioned above Google knows about little fuckers and tries to prevent this kind of activity.

1. iegmsas is a simple console program which reads IE cache and steals tile files from there. You can download C++ source code here http://mazonka.com/bin/iegmsas.cpp or Windows executable here http://mazonka.com/bin/iegmsas.exe

* iegmsas takes two optional arguments N and T with default values 1 and 300 as
iegmsas 1 300
N is a number to check the IE cache; 0 for infinite loop;
T is the time delay between cache cheking

* iegmsas tries to read the directory HOMEDRIVE\HOMEPATH\Local Settings\Temporary Internet Files\
Which is correct on XP, but different on other Windows like Win7
To change the default path create a file 'iegmrip.in' and write in it a line
' C:\Documents and Settings\Davy\Local Settings\Temporary Internet Files\'
No quote marks. Mind 2 spaces at the front. Fix the user name and the cache path.

* iegmsas creates two directories 'cache' and 'gm' where tiles are copied. The first directory stores the tiles in the format for SAS.Planet. The second directory 'gm' stores the tiles in the format for OMTileViewer. So basically files are duplicated in these directories. The only important difference is that only 'gm' directory is checked by iegmsas before copying new tiles. So if you remove 'gm' directory iegmsas will copy all tiles from IE cache.

0. IE can be left with arrow key pressed if you press an arrow key and the press Alt or another key not releasing the arrow key. If you need a more elaborate navigation send me e-mail, and I will send you programs which make IE navigate in more complex way, for example, follow the roads.

No comments: