C# Google Geocode (Latitude and Longitude) Class

Update 2007/05/07: There is also a Microsoft MapPoint v4.5 project I’ve written that does the same thing. Click here to go to that post.

Retrieve the Latitude and Longitude of any addresses in the United States, Canada, France, Germany, Italy, Spain and Japan (link) with this class. View the class below and download the class at the bottom of this post.


using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Net;
using System.Web.UI;

namespace GoogleGeocoder
   public interface ISpatialCoordinate
      decimal Latitude {get; set; } 
      decimal Longitude {get; set; } 

   /// <summary>
   /// Coordiate structure. Holds Latitude and Longitude.
   /// </summary>
   public struct Coordinate : ISpatialCoordinate
      private decimal _latitude; 
      private decimal _longitude;

      public Coordinate(decimal latitude, decimal longitude)
         _latitude = latitude;
         _longitude = longitude; 

      #region ISpatialCoordinate Members

      public decimal Latitude
            return _latitude; 
            this._latitude = value; 

      public decimal Longitude
            return _longitude; 
            this._longitude = value;


   public class Geocode
      private const string _googleUri = “http://maps.google.com/maps/geo?q=”;
      private const string _googleKey = “yourkey”;
      private const string _outputType = “csv”; // Available options: csv, xml, kml, json

      private static Uri GetGeocodeUri(string address)
         address = HttpUtility.UrlEncode(address);
         return new Uri(String.Format(“{0}{1}&output={2}&key={3}”, _googleUri, address, _outputType, _googleKey));

      /// <summary>
      /// Gets a Coordinate from a address.
      /// </summary>
      /// <param name=”address”>An address.
      /// <remarks>
      /// <example>1600 Amphitheatre Parkway Mountain View, CA 94043</example>
      /// </remarks>
      /// </param>
      /// <returns>A spatial coordinate that contains the latitude and longitude of the address.</returns>
      public static Coordinate GetCoordinates(string address)
         WebClient client = new WebClient();
         Uri uri = GetGeocodeUri(address);

         /* The first number is the status code, 
         * the second is the accuracy, 
         * the third is the latitude, 
         * the fourth one is the longitude.

         string[] geocodeInfo = client.DownloadString(uri).Split(‘,’);

         return new Coordinate(Convert.ToDecimal(geocodeInfo[2]), Convert.ToDecimal(geocodeInfo[3]));


How To Use

  1. Replace “yourkey” with your google api key. Get one here.
  2. Include in your project, reference the class through a using directive.
  3. Call get the coordinates like this:
    1. Coordinate coordinate = Geocode.GetCoordinates(“1600 Amphitheatre Parkway Mountain View, CA 94043″);
      decimal latitude = coordinate.Latitude;
      decimal longitude = coordinate.Longitude;


For each record in your system, get the lat/long and save it to the database. This can be used for calculating distances. e.g.: “Find all stores within ___ miles of this zip code.



The maximum # of Geocode requests that can be completed in one day are 50,000 (details).


Geocode.zip (1.05 KB)

kick it on DotNetKicks.com

Android Dev Digest

Get the best Android Developer posts delivered weekly to your inbox.

Don't worry, I wont spam (I hate that stuff too).

  • Cmbellini


  • Parvezahmed88

    Its Working….

  • Alpesh Patel

    Awesome Bro………… u Rocked……………….. :) :) :)

  • http://congtybaove.edu.vn/ cong ty bao ve

    so nice it works well.

  • http://www.ongoodauthority.com/ social work ceus

    that is a good code for website.

  • http://xhowtomakemoneyonline.com/ how to make money online

    How can this code for for some templates?

  • http://www.proweb365.com/web-design Web Design Price

    well! It’s not really to understand this code.

  • http://www.ongoodauthority.com/catalog social worker ceus

    How can I get this code for my case? Thanks,

  • http://xhowtomakemoneyonline.com/our-services/blog-commenting/ blog commenting service

    The code looks great, but not sure how I get it on web?

  • vara prsad

    this code is not getting latitude ans altitude i am getting 0,0

  • vara prsad

    i am not getting logitude and latitude i amgetting 0,0

  • http://mxolisi.uphero.com mxolisi

    The remote server returned an error: (403) Forbidden.