Offline Maps: A new version (bugfix) and update of the base URL’s

I just posted release 1.4.1 of my OfflineMaps application.

There was an error in the 1.4.0 verszion which prohibited the downloading of tiles, which is what the application is all about.

I also noted that Google updated their base-URL’s, so if you download the above version, start by updating the base-URL’s.

You can download it on the project page

Hope you enjoy it !!

Offline Maps: Added automatic URL updating – version 1.4.0

I released version 1.4.0 of the application last weekend.

What’s changed

Not much actually, but I think that what did change will make the application more usefull.

It is now possible to change the base-URL used by the Google Server for obtaining the tiles. Google has the habbit of changing those URL’s quite frequently. And allthough nothing fundamentally changed about how the URL is composed ever changed, it did result in not being able to get the tiles and thus making the applicatio rather useless.

All that has changed now. For those who now how to get at the base-URL (and I will post on how to do this later on), they can just adapt the base-URL used and save the new values.

For those less technical, they can retrieve the latest base-URL from the Offline Maps page on this blog by the click of a button.

Find out how on the Offline Maps page

Enjoy !!!!

Offline Maps: oops, fixed small/severe bug – version 1.3.1

I recently released the 1.3.0 version of my Offline Maps application. This weekend I started preparing for our holidays and noticed several crashes: there was an error in the tile caching.

The error affeced only the desktop application and is now fixed so everything should work fine now. The corrected version is now version 1.3.1

And what do we learn from this: test thouroughly !!! I urgently need to setup some automated testing for this application. It started of to be a quick application to download some tiles from Google Maps so I thought I wouldn’t need any testing but it is quickly expanding with other functionality.

Visit the Offline Maps page to download it.

Offline Maps: Added Import Layer and corrected version for Windows Mobile 6.0 – version 1.3.0

I’ve just released version 1.3.0 of the application.

The application allows you to download tiles served by google maps and openstreetmap to your harddrive and then view them offline, thus without an internet connection.

What’s changed

I have added a layer which allows you to import other maps like bitmaps and calibrate them with Google Maps or Open Street Maps.

I also fixed some bugs in the mobile version. It now works faster (allthough on my HTC Touch not fast enough yet) and GPS functioanlity is working.

You can get it at the Offline Maps page

Any remarks are always welcome.

Oh yeah, if you go look at the Offline Maps page: guess where we are going on holiday this year 🙂

Links

These are some links I used for implementing the Import layer. Allthough it turned out I didn’t need the transformations for scaling.

bitmap transparency
Per Pixel Alpha Blend in C#
Drawing Transparent Images and Shapes using Alpha Blending
Using the AlphaBlend function

bitmap transformations
Image Transformation in C# with GDI+

Offline Maps: Updated user interface and released version for Windows Mobile 6.0 – version 1.2.0

I’ve just released version 1.2.0 of the application.

The application allows you to download tiles served by google maps and openstreetmap to your harddrive and then view them offline, thus without an internet connection.

I’ve updated the user interface which is now much user-friendlier (I think)
There is also a preliminary version for Windows Mobile 6.0 with the offline server functionality and the routing and gps layers. It is however very slow but I’ve not tested it on an actual mobile device, only in the emulators provided by Microsoft.

You can get it at the Offline Maps page

Any remarks are always welcome.

Offline Maps: released version 1.1.1.3

I’ve just released version 1.1.1.3 of the application.

The application allows you to download tiles served by google maps and openstreetmap to your harddrive and then view them offline, thus without an internet connection.

Google changed the base URL for the map-tiles which made the previous version unusable.
People with programming knowledge could change the code, but those using the binaries could not use the application for map-tiles.

You can get it at the Offline Maps page

That problem has now been solved.

Offline Maps: added GPS layer – version 1.1.0.2

I finally added the GPS layer. It allows you to know where you are but it is NOT a routing application. This means you can not find the shortest route between to locations.

So what can you do?

You can:

  1. do everything you could in the previous version.
  2. View tiles served by Open Street Maps (thanks to Michael Collinson)
  3. Find your position using a GPS
  4. Trace a route on the map and save it
  5. Display a previously saved trace

Continue reading

Offline Maps: added ripping functionality and released it as version 1.0.0.1

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:

  1. Navigate to a certain point by providing a name
  2. Set the type of tile you want to view
  3. Zoom in and out of this point
  4. Drag the map to reveal neighbouring tiles
  5. Set a ripping radius
  6. Set a ripping zoom level
  7. Set the tile-type you want to download
  8. Provide a path along which to download alll the tiles

Following is a small manual on how to use the application.

Continue reading

Google Maps Offline Library: Changed name to Offline Maps and added Elevation tiles

UPDATE
Have a look at the follow-up article posted here.

I’ve added a new Tile type to my library: an Elevation tile which shows the elevation contour plot of a corresponding Google Maps tile.

I first got the idea when using the Gmap Pedometer website to construct a cycling tour near the place we llive. The website uses a webservice located here to query for the elevation at a certain longitude and lattitude. In the website it is calculated for the points clicked.

What I wanted was a contour plot of the elevations in a Google Maps tile. You’ll have to experiment somewhat with the settings because I’ve noticed that if you set the probing grid to close you don’t get nice continuous plots but rather jagged contours as you can see in following pictures:

Using a gridspacing of 10 pixels at zoomlevel 15:
Elevation Gridspacing 10px

Using a gridspacing of 50 pixels at zoomlevel 15:
Elevation Gridspacing 50px

As you can see for yourself you get much smoother lines in the last picture. The explanation of this is simple: it depends on the probing grid at which the elevation data was captured that is fed to you by the webservice. If you are querying the elevation webservice at points in between the probing grid of it’s data, you can not enhance the resolution of the tile.

Hope you enjoy the code.

Oh yeah: still no documentation or much error handling.

Downloads
The Code

Links
[1] Bilinear interpolation
[2] Writing XML Documents
[3] Gmap pedometer

Updates
25 october 2007: Original article.
19 november 2007: Added link to follow-up article.

Google Maps Offline Library

UPDATE
I’ve extended the library with a new tile, see this post. The link to the code provided in this post is no longer valid.

We all have used Google maps but unfortunately you can only use it when you are online. What I wanted was to have the maps of an area available offline so I can take them with me.

My first idea was to somehow have an Internet Explorer plugin which would allow me to go to google maps and then download all the images shown onto my harddisk. During my research for writing this plugin I came across this article which analyses the url’s used by google maps. That was exactly what I needed.

So I wrapped the code of the article in a small library, added some more functionality as requested by some people, like him and him, that I can also use in my future application and now you can download that code here.

I will post updates as the project evolves. There is no error handling or documentation yet but I will add all this in the future, but for now this is it.

Hope you enjoy it.

Updates
14 october 2007: Original article,
17 october 2007: Reposted the code after someone noted errors.
21 october 2007: Changed title to more precisely reflect the intention of the article/code.
25 october 2007: Updated to forward to this follow up post