none
manda o endereço e pegar as coordenadas do google RRS feed

Respostas

  • Você pode fazer assim:

    Cria esse método:

    public void ObterLocalizacao(out double latitude, out double longitude, string endereco)
            {
                latitude = 0;
                longitude = 0;
    
                string url = "http://maps.google.com/maps/geo?q=";
                url += endereco;
                url += "&output=csv";
    
                HttpWebRequest wr = (HttpWebRequest)WebRequest.Create(url);
                wr.Timeout = 50000;//5 segundos
                WebResponse resp = wr.GetResponse();
                Stream stream = resp.GetResponseStream();
    
                using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
                {
                    string content = reader.ReadToEnd();//coloca todo o HTML na variável content
                    if (content != null && content != "")
                    {
                        string[] coordenadas = content.Split(',');//separa o html em um array
                        if (coordenadas.Length >= 4)//verifica se existem 4 elementos no array
                        {
                            if (!double.TryParse(coordenadas[2].Replace(".", ","), out latitude))
                                latitude = 0;//se não for um número coloca a latitude 0
                            if (!double.TryParse(coordenadas[3].Replace(".", ","), out longitude))
                                longitude = 0;//se não for um número coloca a longitude 0
                        }
                    }
                }
    
            }

    e utiliza assim:

    double latitude;
    double longitude;
    string estado = ", GO";
    string cidade = ", Luziânia";
    string bairro = ", Setor Norte";
    string endereco = "Brasil" + estado + cidade + bairro;
    
    ObterLocalizacao(out latitude, out longitude, endereco);
    
    var strlatitude = latitude.ToString();
    var strlongitude = longitude.ToString();

    Daí se quiser aprofundar mais você pode colocar a rua ou cep também se quiser.


    Elvis Rodrigues
    Analista Desenvolvedor .Net
    MCTS .Net Framework, SQL Server 2005, WPF, ASP NET
    Email foxelv@hotmail.com

    quinta-feira, 10 de abril de 2014 15:37
  •  string content = reader.ReadToEnd();//coloca todo o HTML na variável content
                    if (content != null && content != "")
                    {
                        int pos = content.IndexOf("location");
                        //A partir do índice 5
                        //  int pos2 = nome.IndexOf("Silva", 5);


                        string _string  = content.Substring(pos, 150);
                        int pos2        = _string.IndexOf("}");
                        string Location = _string.Substring(0, pos2 + 1);
                        int posLat      = Location.IndexOf("lat");
                        int posLat2     = Location.IndexOf(",");

                        string lat      = Location.Substring(posLat, posLat2 - posLat);
                        latitude        = (lat.Replace(":", "")).Trim();

                        int posLng      = Location.IndexOf("lng");
                        int posLng2     = Location.IndexOf("}");
                        string lng      = Location.Substring(posLng, posLng2 - posLng);
                        longitude       = (lng.Replace(":", "")).Trim();
                    }

    Elvinho boa tarde, consegui resolver aqui, e funcionou, alterei algumas coisas e funcionou

    quinta-feira, 10 de abril de 2014 21:06

Todas as Respostas

  • eu achei essa resposta aqui, mais se não entendi direito, ela não me ajuda. Pois eu preciso mandar o endereç oe pegar as coordenadas

    http://social.msdn.microsoft.com/Forums/pt-BR/7eb10fdf-67ee-47ab-bb2e-0e6b81e0545d/utilizar-google-maps-com-aspnet

    quarta-feira, 9 de abril de 2014 17:18
  • Você pode fazer assim:

    Cria esse método:

    public void ObterLocalizacao(out double latitude, out double longitude, string endereco)
            {
                latitude = 0;
                longitude = 0;
    
                string url = "http://maps.google.com/maps/geo?q=";
                url += endereco;
                url += "&output=csv";
    
                HttpWebRequest wr = (HttpWebRequest)WebRequest.Create(url);
                wr.Timeout = 50000;//5 segundos
                WebResponse resp = wr.GetResponse();
                Stream stream = resp.GetResponseStream();
    
                using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
                {
                    string content = reader.ReadToEnd();//coloca todo o HTML na variável content
                    if (content != null && content != "")
                    {
                        string[] coordenadas = content.Split(',');//separa o html em um array
                        if (coordenadas.Length >= 4)//verifica se existem 4 elementos no array
                        {
                            if (!double.TryParse(coordenadas[2].Replace(".", ","), out latitude))
                                latitude = 0;//se não for um número coloca a latitude 0
                            if (!double.TryParse(coordenadas[3].Replace(".", ","), out longitude))
                                longitude = 0;//se não for um número coloca a longitude 0
                        }
                    }
                }
    
            }

    e utiliza assim:

    double latitude;
    double longitude;
    string estado = ", GO";
    string cidade = ", Luziânia";
    string bairro = ", Setor Norte";
    string endereco = "Brasil" + estado + cidade + bairro;
    
    ObterLocalizacao(out latitude, out longitude, endereco);
    
    var strlatitude = latitude.ToString();
    var strlongitude = longitude.ToString();

    Daí se quiser aprofundar mais você pode colocar a rua ou cep também se quiser.


    Elvis Rodrigues
    Analista Desenvolvedor .Net
    MCTS .Net Framework, SQL Server 2005, WPF, ASP NET
    Email foxelv@hotmail.com

    quinta-feira, 10 de abril de 2014 15:37
  • Elvinho boa tarde,

    qualquer endereço que eu coloque ele me retorna "610,0,0,0"

    quinta-feira, 10 de abril de 2014 17:43
  •  string content = reader.ReadToEnd();//coloca todo o HTML na variável content
                    if (content != null && content != "")
                    {
                        int pos = content.IndexOf("location");
                        //A partir do índice 5
                        //  int pos2 = nome.IndexOf("Silva", 5);


                        string _string  = content.Substring(pos, 150);
                        int pos2        = _string.IndexOf("}");
                        string Location = _string.Substring(0, pos2 + 1);
                        int posLat      = Location.IndexOf("lat");
                        int posLat2     = Location.IndexOf(",");

                        string lat      = Location.Substring(posLat, posLat2 - posLat);
                        latitude        = (lat.Replace(":", "")).Trim();

                        int posLng      = Location.IndexOf("lng");
                        int posLng2     = Location.IndexOf("}");
                        string lng      = Location.Substring(posLng, posLng2 - posLng);
                        longitude       = (lng.Replace(":", "")).Trim();
                    }

    Elvinho boa tarde, consegui resolver aqui, e funcionou, alterei algumas coisas e funcionou

    quinta-feira, 10 de abril de 2014 21:06