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;
    }

Этот код перехватывает исключение и выдает ошибку «Этот ключ не авторизован для этой службы».

Я знаю, что эта ошибка возникает, когда я пытаюсь использовать Enterprise API Geocoder, т.е. http://www.mapquestapi.com/geocoding/v1/reverse?key=*******************

Для бесплатного использования с открытым исходным кодом я должен использовать этот API:

http://open.mapquestapi.com/geocoding/v1/address?key=ВАШ-КЛЮЧ-ЗДЕСЬ

Как я могу это сделать? Есть ли возможность передать URL-адрес POST в самом конструкторе? Или любым другим способом?


person writeToBhuwan    schedule 09.04.2015    source источник


Ответы (2)


Сканируя открытый исходный код Geocoding.net, похоже, что вам просто нужно установить для свойства «UseOSM» вашего объекта геокодера значение true:

geocoder.UseOSM = true;
person Russ    schedule 09.04.2015
comment
+1 Спасибо. Ты прав.!! Также можно сделать через IGeocoder geocoder = new MapQuestGeocoder(Fmjtd%7Cluu82q6***********){UseOSM = true}; - person writeToBhuwan; 09.04.2015

Это просто. Вам не нужно менять URL. Просто добавьте UseOSM=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;
}
person writeToBhuwan    schedule 09.04.2015