I finally got to where I wanted to bring this application: you are now able to provide a path and rip all the tiles from google maps along this path.
The GUI is still somewhat primitive but it does give you the possibility to:
- Navigate to a certain point by providing a name
- Set the type of tile you want to view
- Zoom in and out of this point
- Drag the map to reveal neighbouring tiles
- Set a ripping radius
- Set a ripping zoom level
- Set the tile-type you want to download
- Provide a path along which to download alll the tiles
Following is a small manual on how to use the application.
The applications user interface has four main areas:
- The viewing area into which the tiles are displayed.
- The area into which the properties for viewing tiles retrieved from google maps are set: the Google Server area
- The area into which the properties for viewing tiles retrieved from a local folder are set: the File Server area
- The area with controls for setting the properties for ripping tiles from the Google server to a local folder: the Google Ripping area
Viewing tiles from Google Maps: the Google Server area
For viewing tiles served by Google maps you must provide following data
- First, select the type of tile in the zoomfactor of those tiles.
- Second, type in a location in the “location” textbox and hit the “Get” button
- If multiple locations correspond with the text you gave, the combobox is filled with those locations and youn can select one of them.
If everything went right, you should see the tiles served by Google Maps in the viewing area. Depending of the type of tile selected, these will be Map or Satelite tiles. You have to be a bit patient is the user interface locks up because the retrieving of the tiles is dne in the user interface thread.
Next you can hold the left button mouse down on the viewing area and drag the mouse to pan the tiles.
Downloading tiles from Google Maps to your computer: the Google Ripping area
This is actually why I started this project: to be able to enter a path along which the tiles from Google Maps are downloaded.
For entering the path you do the following:
- Select a radius for the path. The path will have a width of twice this radius.
- Press the “Start Recording” button.
- Double click inside the viewing area on the points that you would like on the path.
- Press the “Stop Recording” button.
You will see a visual cue in the form of a transparent red line covering the area that will be ripped.
Now that you have entered the path, you can specify the parameters to use for ripping the tiles on the path:
- Enter the zoom factor of the tiles
- Enter the type of tiles you want to download.
- Enter the folder into which to download the tiles.
You can now press the “Start ripping” button and the downloading of the tiles will start. As a visual cue you will see transparent green squares appear for each tile that was downloaded. If a tile for some reason could not be downloaded a red square will appear.
Viewing downloaded files: the File Server area
For viewing files downloaded to your computer you must provide following data:
- The name of the folder where the tiles are saved.
Once you provided the name of the folder, the application will get the first tile in this folder and retrieve neighbouring tiles to fill the complete viewing area.
You can again hold the left button mouse down on the viewing area and drag the mouse to pan the tiles.
Hope you enjoy the application.
Next on my list of whiches is (in no particular order):
- A GPS layer giving you the ability to navigate using the downloaded tiles.
- A more beautiful GUI.
- An AJAX-ified user interface (allthough it may become Silverlight too).
The code in this post is no longer available. You can find the latest release of the code and binaries on this page dedicated to the offline maps application.
 Bilinear interpolation
 Writing XML Documents
 XmlWriter.WriteBase64 Method
 Bitmap to a bytearray
 Building Your Own Enumerator To Use With The foreach Construct
 Calculate distance, bearing and more between two Latitude/Longitude points
 How do you convert a string into an enum?
19 november 2007: Original article
23 december 2007: New version of the application. Removed version originally refernced in thia post.