给定一个位置的坐标,有没有办法得到地名?
我不是指地址,我指的是地点的“标题”,例如:
Coordinates: 76.07, -62.0 // or whatever they are
Address: 157 Riverside Avenue, Champaign, Illinois
Place name: REO Speedwagon's Rehearsal Spot
-或者:
Coordinates: 76.07, -62.0 // or whatever they are
Address: 77 Sunset Strip, Hollywood, CA
Place name: Famous Amos Cookies
那么是否有反向地理编码网络服务或我可以调用的东西,例如:
string placeName = GetPlaceNameForCoordinates(76.07, -62.0)
...这将返回“Wal*Mart”或“Columbia Jr. College”或任何合适的?
我找到了对其他语言的引用,例如 java 和 ios(我猜是目标 C),但没有专门针对如何在 Windows 商店应用程序中使用 C# 执行此操作...
更新
我已经有了这个来获取地址(改编自 Freeman 的“Metro Revealed:使用 XAML 和 C# 构建 Windows 8 应用程序”第 75 页):
public static async Task<string> GetStreetAddressForCoordinates(double latitude, double longitude)
{
HttpClient httpClient = new HttpClient();
httpClient.BaseAddress = new Uri("http://nominatim.openstreetmap.org");
HttpResponseMessage httpResult = await httpClient.GetAsync(
String.Format("reverse?format=json&lat={0}&lon={1}", latitude, longitude));
JsonObject jsonObject = JsonObject.Parse(await httpResult.Content.ReadAsStringAsync());
return string.format("{0} {1}", jsonObject.GetNamedObject("address").GetNamedString("house"),
jsonObject.GetNamedObject("address").GetNamedString("road"));
}
...但我在他们的文档中看不到地名;他们似乎提供房屋、道路、村庄、城镇、城市、县、邮政编码和国家,但没有提供地名。