【发布时间】:2015-12-27 08:58:53
【问题描述】:
我是 asp.net (c#) 的初学者 但我需要从纬度和经度位置获取 utf-8 地址 所以我需要以 fa 语言检索地址,并且我已将 language=fa 添加到 String 映射地址。 但它检索到了奇怪的字符 这是我的代码:
public static void RetrieveFormatedAddress(string lat1, string lng1)
{
static string baseUri = "http://maps.googleapis.com/maps/api/geocode/xml?latlng={0},{1}&language=fa&sensor=true";
string requestUri = string.Format(baseUri, lat1, lng1);
using (WebClient wc = new WebClient())
{
wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wc_DownloadStringCompleted);
wc.DownloadStringAsync(new Uri(requestUri));
}
}
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();
Console.WriteLine(res.Value);
Console.WriteLine(res);
GetSMS getsms1 = new GetSMS();
getsms1.retrunAdress(res.Value);
}
else
{
Console.WriteLine("error");
}
}
谷歌还给了我:
طھظ‡ط±ط§ظ†طŒ طھظ‡ط±ط§ظ†طŒ ط®غŒط§ط¨ط§ظ† ط§ظ…غŒط±غŒ ط·ط§ط¦ظ…ظ‡طŒ ط§غŒط±ط§ظ†
如何从谷歌获取“波斯语”语言地址? 谢谢
【问题讨论】:
-
哪个(即哪个变量)正是您作为结果引用的字符串?您是否在浏览器中查看了请求的结果,看它是否与字符串的内容有任何相似之处?您要求使用波斯语 (language=fa) - 这是您的意图吗?结果似乎包含一些类似波斯语的字符,因此不一定完全错误。尝试看看如果你使用英语会发生什么,然后在必要时切换回波斯语。
-
@RemigiusStalder 首先,感谢您的评论。是的,我需要波斯语街头语言。当我使用 language=en 时,我收到了如下所示的英语街道地址:“德黑兰,德黑兰,阿米里泰梅街,伊朗”
-
请回答我所有的问题...
-
你的意思是什么? (你的意思是我的浏览器)?并在浏览器中使用字符串请求,结果是正确的fa语言。
-
浏览器中的结果显示了谷歌返回的内容。我无法验证任何内容,因为您没有提供测试用例的坐标。哪个变量包含您引用的结果?它是否对应于返回的 XML 的预期部分?如果是这种情况(并且您的代码在英文中也可以正常工作),您只能向 Google 提供错误报告(不要问我如何让 Google 解决此问题)。否则,您应该以不同的方式查询返回的 XML,以准确获取您需要的部分。
标签: c# google-maps-api-3 google-geocoder