Kom ihåg mig?
Home Menu

Menu


Infoga Google Maps-karta baserad på variabel adress

 
Ämnesverktyg Visningsalternativ
Oläst 2011-09-12, 22:15 #1
swans avatar
swan swan är inte uppkopplad
Medlem
 
Reg.datum: Oct 2004
Inlägg: 216
swan swan är inte uppkopplad
Medlem
swans avatar
 
Reg.datum: Oct 2004
Inlägg: 216
Standard Infoga Google Maps-karta baserad på variabel adress

Jag har en variabel adress som användare matar in själva (inga koordinater). Adressen kan exempelvis se ut så här: "Sveavägen 22, Stockholm"

Söker jag på adressen i Google Maps så får jag upp en fin karta. Klickar jag på länk-ikonen så får jag upp <iframe>-kod så att jag kan infoga på min sajt. Men kollar man på koden så ser man att Google lagt till koordinater själva.

Finns det någon kod som jag kan använda för att få fram motsvarande karta, fast utan koordinater. Dvs så att det räcker om jag använder mig av min variabel.

Någon som vet?
swan är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-09-12, 22:47 #2
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
Här hittar du Googles geocoding-API:
http://code.google.com/intl/sv-SE/ap...ion/geocoding/
Mer detalj för dynamisk laddning finns här:
http://code.google.com/intl/sv-SE/ap...html#Geocoding
Magnus_A är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-09-13, 10:00 #3
swans avatar
swan swan är inte uppkopplad
Medlem
 
Reg.datum: Oct 2004
Inlägg: 216
swan swan är inte uppkopplad
Medlem
swans avatar
 
Reg.datum: Oct 2004
Inlägg: 216
Citat:
Ursprungligen postat av Magnus_A Visa inlägg
Här hittar du Googles geocoding-API:
http://code.google.com/intl/sv-SE/ap...ion/geocoding/
Mer detalj för dynamisk laddning finns här:
http://code.google.com/intl/sv-SE/ap...html#Geocoding
Fast jag vill egentligen bara ha en iframe, utan att behöva använda deras API. Men det kanske inte går?
swan är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-09-18, 20:35 #4
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 swan Visa inlägg
Fast jag vill egentligen bara ha en iframe, utan att behöva använda deras API. Men det kanske inte går?
Det är så det är tänkt att användas.
Magnus_A är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-09-13, 08:33 #5
Kristoffersens avatar
Kristoffersen Kristoffersen är inte uppkopplad
Medlem
 
Reg.datum: Feb 2005
Inlägg: 93
Kristoffersen Kristoffersen är inte uppkopplad
Medlem
Kristoffersens avatar
 
Reg.datum: Feb 2005
Inlägg: 93
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?
Kristoffersen är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-09-18, 14:40 #6
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
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
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 04:05.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017