Learn to Geocode Address with C# and Google API

Learn to Geocode Address with C# and Google API
Page content

There comes a time when it is important for a business to Geo Code address / customers.. and nothing is better than using Google API to accomplish this task.

Sample problem: Create a small application using C# that uses Google API to geo code a given address / location. The C# application should show user latitude, longitude and the accuracy of the lat / long.

Solution: We can use Google’s API to geo code a given address, Google API will give us back three items we need. Lat, Long and the accuracy. The API will give us back 8 for very good match and down to 2 for poor or bad match.

Implementation: I assume you know how to program in C#, therefore I’m only going to list CodeBehind version of the application.

//include below system.Net class if its not already included

using System.Net;

//you might need a google api key if you don’t already have one

//https://developers.google.com/maps/location-based-apps

//API key for https://YourDomain.com

string strKey = “ABQIAAAA………………PUT YOUR KEY HERE

//Address

string strAddress = “1 Main St, New York, NY 10001”;

//Create a path string with address and api key

string sPath = “https://maps.google.com/maps/geo?q=" + strAddress + “&output=csv&key=” + strKey;

//Using WebClient class to download the CSV

//WebClient is part of System.Net class

WebClient client = new WebClient();

//Downloading CSV with Latitute and Longitute

//.DownloadString method download CSV file from browser

string[] eResult = client.DownloadString(sPath).ToString().Split(’,’);

//As you can see, I’m spliting the string into array

//I’m not using element 0 as it keeps status code if address if found, //but you can if you want too.

//Once the result / response is in string array eResult, we can access //it by calling its GetValue method and pass the 0 based index.

lbl1.Text = eResult.GetValue(1).ToString();

lbl2.Text = eResult.GetValue(2).ToString();

lbl3.Text = eResult.GetValue(3).ToString();

That’s all, its simple as that!!