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

时间:2015-04-09 20:16:12

标签: c# .net openstreetmap reverse-geocoding mapquest

我正在尝试使用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;
    }

此代码捕获异常并且发出此错误"此密钥未获得此服务的授权。"

我知道当我尝试使用地理编码器的企业API时出现此错误,即http://www.mapquestapi.com/geocoding/v1/reverse?key= *******************

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

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

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

2 个答案:

答案 0 :(得分:2)

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

geocoder.UseOSM = true;

答案 1 :(得分:0)

很简单。您无需更改URL。只需像这样添加UseRS = 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;
}