Получите полный форматированный адрес из обратного геокодирования

Я хочу получить полный отформатированный адрес с помощью обратного геокодирования Google Maps API v3, поскольку он показывает только почтовый индекс и / или город и страну во многих (а может, и во всех) странах. Я также хочу получить название улицы и другие данные, которые вы можете получить с помощью обратного геокодирования (поиск адреса) функция. Но поскольку я не могу получить данные из файлов XML или адресов, связанных с файлом XML в JavaScript, я должен использовать Обратное геокодирование.

Обратное геокодирование (поиск адреса) показывает 791 Long Ridge Lane, Gainesboro, Tennessee 38562, USA, а обратное геокодирование показывает Gainesboro, Tennessee 38562, USA.

Можно ли получить полный отформатированный адрес даже с помощью обратного геокодирования, или мне нужно использовать файл PHP XML с помощью обратного геокодирования (поиск адреса)?

function coordinates_to_address(lat, lng) {
    var latlng = new google.maps.LatLng(lat, lng);

    geocoder.geocode({'latLng': latlng}, function(results, status) {
        if(status == google.maps.GeocoderStatus.OK) {
            if(results[1]) {
                $('#address_current').text(results[1].formatted_address);
            } else {
                alert('No results found');
            }
        } else {
            var error = {
                'ZERO_RESULTS': 'Kunde inte hitta adress'
            }

            // alert('Geocoder failed due to: ' + status);
            $('#address_new').html('<span class="color-red">' + error[status] + '</span>');
        }
    });
}

person Airikr    schedule 15.10.2014    source источник
comment
Как выглядит ваш код? Было бы полезно использовать минимальный, полный, протестированный и доступный для чтения пример, показывающий проблему. Если вы используете этот пример как есть, измените results[1] на results[0], чтобы получить наилучшее соответствие.   -  person geocodezip    schedule 15.10.2014
comment
Мой код почти такой же, как и в примере обратного геокодирования Google. Вот почему я не добавил код, но все равно могу добавить.   -  person Airikr    schedule 15.10.2014
comment
Спасибо, @geocodezip! Я просто изменил results[1] на result[0], и теперь он показывает полный адрес. Я не думал об этом   -  person Airikr    schedule 15.10.2014


Ответы (1)


Чтобы получить наиболее точный результат, используйте первый результат (results[0]), а не второй (results[1]):

function coordinates_to_address(lat, lng) {
    var latlng = new google.maps.LatLng(lat, lng);

    geocoder.geocode({'latLng': latlng}, function(results, status) {
        if(status == google.maps.GeocoderStatus.OK) {
            if(results[0]) {
                $('#address_current').text(results[0].formatted_address);
            } else {
                alert('No results found');
            }
        } else {
            var error = {
                'ZERO_RESULTS': 'Kunde inte hitta adress'
            }

            // alert('Geocoder failed due to: ' + status);
            $('#address_new').html('<span class="color-red">' + error[status] + '</span>');
        }
    });
}
person geocodezip    schedule 15.10.2014
comment
Спасибо! Я должен подумать об этом в следующий раз, когда буду играть с геокодированием :) - person Airikr; 15.10.2014
comment
Также спасибо мне, так как я чуть не сходил с ума из-за этого :) - person d0n.key; 15.09.2015
comment
мне нужен машинописный текст - person Muhammad Abdullah; 28.02.2019