如何从纬度和经度获取国家/地区名称

时间:2014-09-16 10:10:48

标签: c# bing-maps

如何使用c#从纬度和经度获取国家/地区名称? 我正在使用Bing.Map API

Location location12 = new Location(location.Latitude, location.Longitude);
MapLayer.SetPosition(pin, location12);
Map.Children.Add(pin);
string placeName = GetPlaceNameForCoordinates(location.Latitude, location.Longitude);   

2 个答案:

答案 0 :(得分:2)

您希望使用某种反向地理编码API。例如:

如果您已经在使用Bing.Maps SDK,则应使用Map.SearchManager属性获取SearchManager,然后使用ReverseGeocodeAsync方法。特别是,如评论中所述,混合和匹配您用于通过其他SDK显示数据的API可能会违反两者的条款和条件:请注意您在单个应用程序中使用哪些技术。 (尽管这个问题使用Bing Maps SDK提供了示例代码,但我保留了上面的列表,以帮助那些可能带有稍微不同背景的人。)

例如:

var manager = map.SearchManager;
var request = new ReverseGeocodeRequestOptions(location) {
    IncludeEntityTypeFlags = ReverseGeocodeEntityType.CountryRegion
};
var response = await manager.ReverseGeocodeAsync(
    new ReverseGeocodeRequestOptions(location) { );
// Use the response

如果您决定使用Geonames API,则可以下载数据以供离线使用。

答案 1 :(得分:0)

我创建了一个带有示例代码的github项目,无需api调用即可执行此操作

请参阅here

非常简单的国家/地区名称和ID返回