Visa ett inlägg
Oläst 2011-09-18, 20:36 #7
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Citat:
Ursprungligen postat av Kimpo Visa inlägg
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; }
}
Tror att Google uppdaterat sitt API sedan dess.
Magnus_A är inte uppkopplad   Svara med citatSvara med citat