Visa ett inlägg
Oläst 2011-09-18, 14:40 #5
Kimpo Kimpo är inte uppkopplad
Medlem
 
Reg.datum: Mar 2009
Inlägg: 185
Kimpo Kimpo är inte uppkopplad
Medlem
 
Reg.datum: Mar 2009
Inlägg: 185
Citat:
Ursprungligen postat av Kristoffersen Visa inlägg
Vad bra jag skull just ställa den frågan! Men jag undrar också om det inte finns något API för .Net som är mer eller mindre halvfärdigt?
Detta är en jag skrev för länge sen men borde nog fungera, jag har lämnat kvar enumsen , de används inte just i detta exempel
Kod:
public class GoogleMaps
    {
        public static GeoObject GetCoordinates(string address, string gMapKey)
        {
            WebClient client = new WebClient();
            Address = HttpUtility.UrlEncode(Address);
            GeoObject obj = new GeoObject();

            Uri uri = new Uri(String.Format("http://maps.google.com/maps/geo?q={0}&output=csv&key={1}", address, gMapKey));
            string geocodeInfo = client.DownloadString(uri);

            string[] geoValues = geocodeInfo.Split(',');

            if (geoValues.Length > 0)
            {
                obj.StatusCode = Convert.ToInt32(geoValues[0]);
                obj.Accuracy = Convert.ToInt32(geoValues[1]);
                obj.Latitude = Convert.ToDouble(geoValues[2], CultureInfo.GetCultureInfo("en-US"));
                obj.Longitude = Convert.ToDouble(geoValues[3], CultureInfo.GetCultureInfo("en-US"));
            }

            return obj;
        }


    }

public class GeoObject
{
    public enum GoogleAccuracyTypes
    {
        UNKNOWN_LOCATION = 0,
        COUNTRY_LEVEL = 1,
        REGION_LEVEL = 2,
        SUB_REGION_LEVEL = 3,
        TOWN_LEVEL = 4,
        ZIP_CODE_LEVEL = 5,
        STREET_LEVEL = 6,
        INTERSECTION_LEVEL = 7,
        ADDRESS_LEVEL = 8,
        PREMISE_LEVEL = 9
    }
    public enum GoogleStatusCodeTypes
    {
        G_GEO_SUCCESS = 200,
        G_GEO_BAD_REQUEST = 400,
        G_GEO_SERVER_ERROR = 500,
        G_GEO_MISSING_QUERY = 601,
        G_GEO_UNKNOWN_ADDRESS = 602,
        G_GEO_UNAVAILABLE_ADDRESS = 603,
        G_GEO_UNKNOWN_DIRECTIONS = 604,
        G_GEO_BAD_KEY = 610,
        G_GEO_TOO_MANY_QUERIES = 620,
    }

    public int Accuracy { get; set; }
    public int StatusCode { get; set; }
    public double Longitude { get; set; }
    public double Latitude { get; set; }
}
Kimpo är inte uppkopplad   Svara med citatSvara med citat