0

特定の住所の緯度と経度を取得するために、アプリケーションでこのコードをしばらく使用しています。

private string geoCode(string query)
    {
        WebRequest request = WebRequest.Create("http://maps.googleapis.com/maps/api/geocode/xml?sensor=false&address="
                 + HttpUtility.UrlEncode(query));

        using (WebResponse response = request.GetResponse())
        {
            using (Stream stream = response.GetResponseStream())
            {
                XDocument document = XDocument.Load(new StreamReader(stream));

                XElement longitudeElement = document.Descendants("lng").FirstOrDefault();
                XElement latitudeElement = document.Descendants("lat").FirstOrDefault();

                if (longitudeElement != null && latitudeElement != null)
                {
                    return latitudeElement.Value.ToString() + ", " + longitudeElement.Value.ToString();
                }
            }
        }

        return null;
    }

それは今まで働いてきました。プログラムを開始しても何も返されません。複数の異なるクエリを試しましたが、結果として null が返されます。

変数クエリには、Windows フォームの C# テキストボックスに書き込んだアドレスが含まれています。ボタンを押すと、このコードが実行されます。なぜそれが機能しなくなったのか、誰にもわかりませんか?

4

1 に答える 1

0

問題を絞り込むのに役立ついくつかのこと

  1. テキスト ボックスから API アドレスと場所を取得します。URLをChromeに直接貼り付けて、結果が得られるかどうかを確認します

    http://maps.googleapis.com/maps/api/geocode/xml?sensor=false&address=address_you_are_trying

いくつかのアドレスで試してみたところ、応答が返ってきました。

  1. これで問題がなければ、C# コードを理解してください。正しい xml 要素を解析していない可能性があります。xml を解析したくない場合は、xml パラメーターを JSON に変更し、JSON オブジェクトに desiralize して、このようにプロパティをより簡単に取得できます。

    http://maps.googleapis.com/maps/api/geocode/json?sensor=false&address=Ealing

于 2013-08-23T14:11:14.243 に答える