Проблема с геокодированием адреса на картах Google

#javascript #google-maps #google-geocoder

#javascript #google-карты #google-геокодер

Вопрос:

Здравствуйте, у меня есть следующий массив адресов

 var Address= [
    { "Key": "1", "Title": "Candidate A", "Line1": "26 Dove Ave", "line2": "", "suburb": "Altona", "state": "VIC", "postcode": "3018" },
    { "Key": "2", "Title": "Candidate B", "Line1": "101 Collins Street", "line2": "", "suburb": "Melbourne", "state": "VIC", "postcode": "3000" },
    { "Key": "3", "Title": "Candidate C", "Line1": "15 Elgin St", "line2": "", "suburb": "Carlton", "state": "VIC", "postcode": "3053" },
    { "Key": "4", "Title": "Candidate D", "Line1": "435 Bridge Road", "line2": "", "suburb": "Richmond", "state": "VIC", "postcode": "3121" }
];
 

Затем я вызываю geocoder, просматривая приведенный выше массив следующим образом

 geocoder.geocode({ 'address': address[i].Line1   " , "   address[i].suburb },
 

Но маркеры на карте неверны, например, первая запись в массиве отображается на карте как Swallow Street, Altona VIC 3018, Австралия Я не уверен, что я делаю не так? Я пробовал переключить пригород на почтовый индекс, но результат всегда один и тот же ??!

** Добавлен приведенный ниже код, показывающий полный процесс

 geocoder.geocode({ 'address': Address[i].Line1   " , "   Address[i].suburb },

    function (results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
            console.log(results);
            marker = new google.maps.Marker({
                position: new google.maps.LatLng(results[0].geometry.location.lat(), results[0].geometry.location.lng()),
                map: map
            });

            //google.maps.event.addListener(marker, 'click', (function () { // Click event for each location to show the description
            //    return function () {
            //       GetDirections(results[0].geometry.location.lat()   ","   results[0].geometry.location.lng(), address);
            //    };
            //})(marker, i));

            google.maps.event.addListener(marker, "click", function (e) {

                var latLng = e.latLng.k   ","   e.latLng.A;

                console.log(e);

                GetDirections(latLng);

            });

            markers.push(marker);
        }
        else {
            document.getElementById("text_status").value = status;
            return;
        }
    }
 

Комментарии:

1. показать код, который создает маркеры

2. @Dr.Molle добавил код

3. а как насчет результатов, как вы продвигаете ценности?

4. Это то, что я получаю для 26 Dove Ave, Альтона , кажется правильным: gmaps-samples-v3.googlecode.com/svn/trunk/geocoder /…

5. Возможно, вы заметили, что маркер для геокодирования (см. Мою ссылку) расположен не на улице. Предполагая, что вы используете режим путешествия DRIVING , Google должен найти точку на улице рядом с заданным LatLng (название улицы здесь не имеет значения, LatLng имеет значение)