Есть ли в v3 Google Geocoding API поле, представляющее точность? - PullRequest
9 голосов
/ 19 сентября 2011

У меня есть некоторый код, который я переношу с API v2 на v3.В старом коде у нас было поле точности, которое возвращалось в xml (не уверен в названии, но оно действительно представляло уровень достоверности).В новом API я не вижу таких полей.

Если я введу «Орегон, США» в поле поиска, я получу 5 совпадений.Первые 2 "Орегон, США" и "Орегон, Огайо, США".Они оба имеют "part_match" = false.Это кажется неправильным, один кажется частичным, а другой нет.Плюс, они оба возвращаются с одним и тем же типом location_ (APPROXIMATE).Фактически, все совпадения отображаются как неполные и имеют одинаковый тип местоположения.

Мой вопрос заключается в том, дают ли какие-либо поля в наборе результатов какую-то уверенность в точности результата?В моем примере действительно кажется, что один результат гораздо точнее, чем любой другой - настолько, что входная строка точно соответствует возвращенному полю QuickAddress.

Ответы [ 2 ]

13 голосов
/ 28 октября 2011

Две недели, ответов нет, вот мое решение.

API вернет либо ROOFTOP, GEOMETRIC_CENTER, RANGE_INTERPOLATED или APPROXIMATE.

Rooftop практически "мертв" - API разрешил адрес здания.Помимо этого, вы получаете различные степени «близко».Мое решение состояло в том, чтобы использовать ограничивающую рамку, которая была возвращена, чтобы определить, насколько близко было близко.Поэтому, если вы попросите улицу (Avenue of the Americas, NY, NY), вы получите огромный ограничивающий прямоугольник.Спросите адрес на той улице, который API считает реальным, но не Rooftop, вы получите очень маленькую ограничивающую рамку.Я использовал область ограничительной рамки , чтобы определить точность результата.Мой точный / не точный разрыв был на 0.9E-6, но я думаю, что вам придется повозиться с ним, чтобы убедиться, что вы довольны этим номером.

4 голосов
/ 30 октября 2014

Я нашел это полезным при обновлении устаревшего кода V2 в зависимости от оценки от 0 до 9
// Взломать преобразование location_type (string) в 0-9 баллов геокодирования, так как 0-9 баллов геокодирования не существует в v3 API

function get_numeric_score(results) {
switch(results[0].geometry.location_type){
        case "ROOFTOP":
            return 9;
        break;

        case "RANGE_INTERPOLATED":
            return 7;
        break;

        case "GEOMETRIC_CENTER":
            return = 6;
        break;

        case "APPROXIMATE":
            return 4;
        break;

        default:
            return 0;

    }
}
...