• Here's what you need for google maps:

    using System;

    using System.IO;

    using System.Net;

    using System.Xml;

    using System.Data;

    using System.Data.SqlClient;

    using System.Data.SqlTypes;

    using Microsoft.SqlServer.Server;

    using System.Globalization;

    namespace Geocoders

    {

    public partial class GoogleGeocoder

    {

    [Microsoft.SqlServer.Server.SqlProcedure]

    public static void GetGoogleGeocode(string address, out double latitude, out double longitude, out double range)

    {

    Stream stream = null;

    XmlDocument doc;

    HttpWebRequest req;

    string text = "";

    try

    {

    req = (HttpWebRequest)WebRequest.Create("http://maps.google.com/maps?output=kml&q=" + address);

    HttpWebResponse response = (HttpWebResponse)req.GetResponse();

    stream = response.GetResponseStream();

    StreamReader sr = new StreamReader(stream);

    text = sr.ReadToEnd();

    sr.Close();

    if (String.IsNullOrEmpty(text))

    {

    latitude = 0;

    longitude = 0;

    range = 0;

    }

    else

    {

    doc = new XmlDocument();

    doc.LoadXml(text);

    XmlNodeList longitudes = doc.GetElementsByTagName("longitude");

    XmlNodeList latitudes = doc.GetElementsByTagName("latitude");

    XmlNodeList ranges = doc.GetElementsByTagName("range");

    NumberFormatInfo NFormat = new NumberFormatInfo();

    NumberFormatInfo NFormatInt = new NumberFormatInfo();

    NFormat.NumberDecimalSeparator = ".";

    double.TryParse(latitudes[0].InnerText, NumberStyles.Float, NFormat, out latitude);

    double.TryParse(longitudes[0].InnerText, NumberStyles.Float, NFormat, out longitude);

    double.TryParse(ranges[0].InnerText, NumberStyles.Float, NFormat, out range);

    }

    }

    catch

    {

    text = null;

    latitude = 0;

    longitude = 0;

    range = 0;

    }

    finally

    {

    }

    }

    }

    }