私はC#.Netプログラミングに不慣れで、問題に直面しています。getLocation関数を呼び出すと、常に「場所」が空になります。私は自分が間違ったやり方で物事をしていることを知っています。しかし、誰かが私が正しい方法でそれをするのを手伝ってくれるなら、それは素晴らしいことです。getLocation関数がロケーション値を返すようにしたい。したがって、ロケーション値を返す前にwc.downloadStringが実行された場合にのみ返されます。
public String getLocation()
{
RetrieveFormatedAddress(latitude, longitutde);
location = returnVal;
return location;
}
static void RetrieveFormatedAddress(string lat, string lng)
{
string requestUri = string.Format(baseUri, lat, lng);
using (WebClient wc = new WebClient())
{
wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wc_DownloadStringCompleted);
wc.DownloadString(new Uri(requestUri));
//wc.DownloadStringAsync(new Uri(requestUri));
}
}
private static void wc_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
var xmlElm = XElement.Parse(e.Result);
var status = (from elm in xmlElm.Descendants()
where elm.Name == "status"
select elm).FirstOrDefault();
if (status.Value.ToLower() == "ok")
{
var res = (from elm in xmlElm.Descendants()
where elm.Name == "formatted_address"
select elm).FirstOrDefault();
returnVal = res.Value;
}
else
{
returnVal = "No Address Found";
}
}