Invoke Google Maps API V3 Javascript API from Windows Forms app?

Google has this fine new Google Maps API v3 which is a "Javascript API".

Is there any possibility to invoke this API from a Windows Forms application written in Visual C# .net 3.5?

The goal is to convert addresses to lat/long format using the Google Maps Geocoder.

I'd like to use v3 of the API as it doesn't require an API key anymore. API keys should be bound to a webserver which can't be the case for a Windows Forms app.



Edit: Looks like the api key is no longer required.

You can use the REST APIs and parse the response (XML/JSON/CSV).,+Troy,+NY&output=csv&oe=utf8&sensor=false

Would output:


Which is:

  • 200 - G_GEO_SUCCESS
  • 6 - Street level accuracy
  • 42.730070 - Latitude
  • -73.690570 - Longitude

If you are not familiar with the System.Net APIs, they would go something like this:

const string GeoCodeUrlFormat = "{0}&output=csv&oe=utf8&sensor=false";

string location = "State St, Troy, NY";
string url = String.Format(GeoCodeUrlFormat, HttpUtility.UrlEncode(location));

HttpRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
HttpResponse response = (HttpResponse)request.GetResponse(); // Can throw an exception
Stream responseStream = response.GetResponseStream();

using (StreamReader reader = new StreamReader(responseStream)
    string firstLine = reader.ReadLine();

    string[] lineParts = firstLine.Split();

    GeolocationResult result = GoogleMapper.MapGeolocationResult(lineParts);

    // TADA

Obviously there's no error handling, it doesn't support multiple return values and I haven't actually implemented MapGeolocationResult, but it should give you a start.


You could host the WebBrowser control on your form and use that to interact with the Google Maps API.

But some more information about what you are really trying to do would be nice.


Recent Questions

Top Questions

Home Tags Terms of Service Privacy Policy DMCA Contact Us

©2020 All rights reserved.