Mapquest:此密钥未获得此服务的授权

Mapquest: This key is not authorized for this service

我正在尝试使用 Geocoding.net 将我的纬度和经度反向地理编码为格式化地址。 我想要一个来自 MapQuest 的地址,而不是来自 Yahoo、google 和 bing 等其他提供商的地址。 这是我的代码:

    try
    {
        IGeocoder geocoder = new MapQuestGeocoder("Fmjtd%7Cluu82q6***********");
        var addresses = geocoder.ReverseGeocode(latitude, longitude);
        return ("Formatted address :  " + addresses.First().FormattedAddress);
    }
    catch (Exception exception)
    {
        return exception.Message;
    }

此代码捕获异常并抛出此错误"This key is not authorized for this service."

我知道当我尝试访问 Geocoder 的企业版 API 时会发生此错误,即 http://www.mapquestapi.com/geocoding/v1/reverse?key=*********************

为了免费和开源使用,我应该点击这个API:

http://open.mapquestapi.com/geocoding/v1/address?key=YOUR-KEY-HERE

我该怎么做?有没有在构造函数本身中传递 POST URL 的选项?或者其他方式?

扫描 Geocoding.net 的开源代码,看来您只需要将地理编码器对象的 "UseOSM" 属性 设置为 true:

geocoder.UseOSM = true;

很简单。您不需要更改 URL。只需像这样添加 UseESM=true:

try
{
    IGeocoder geocoder = new MapQuestGeocoder("Fmjtd%7Cluu82q6***********"){UseOSM = true};
    var addresses = geocoder.ReverseGeocode(latitude, longitude);
    return ("Formatted address :  " + addresses.First().FormattedAddress);
}
catch (Exception exception)
{
    return exception.Message;
}