It is now possible to use google maps in desktops applications. Check Terms for more information. For this a browser has to be embedded in the desktop application.
Here is a desktop application made in c++ that uses google maps.
The application is called Turbotrace and can be downloaded from here.
It uses an embedded browser (IE rendering engine Trident) and loads up html code for showing google maps just like it should be done on a webpage. The only difference is that google will allow to load the map even if the "request" comes from a non-website referer.
The code as usual is simple :
<body onload="load()" onunload="GUnload()" >
<div id="map" style="height:100%; width:100%;"></div>
var map = false;
//load google map
var myOptions =
center: new google.maps.LatLng(22, 88),
map = new google.maps.Map( document.getElementById("map") , myOptions);
document.getElementById("map").google = google;
You can just put the above code in a html file on your desktop and open it , and it should load the google maps , and you can move around in it.
So all that the desktop application needs to do is to load this html file in an embedded browser. An api key can be generated from the API Console at code.google.com (https://code.google.com/apis/console). You need an api key for Google Maps V3 service. You need to create a "Server Key" without any IP restriction. So this key will allow accessing google maps service from "any ip" machines and desktops are a part of it.
There are different options to integrate a browser in your app depending on the language , api and libraries being used. The above application Turbotrace is build using wxWidgets GUI library and it provides a widget to embed webbrowser. Similar things are available in libraries like MFC , C#.NET , Java etc.