-2

У меня есть простой массив, содержащий название города. Я пытаюсь пропустить этот массив и добавить маркеры, связанные Полилиниями на Карте Google.Как добавить полилинии с массивом положения?

Вот мой код:

function addMarkerCity(cities) { 
    $.each(cities, function(index, value) { 
    geocoder.geocode({'address': value}, function(results, status) { 
    if (status == google.maps.GeocoderStatus.OK) { 
     var cityPosition = results[0].geometry.location; 
     flightRoute.push(cityPosition); 
     var currentMarker = map.addMarker({ 
     position: cityPosition 
     }); 
    }); 
    }); 
}); 
} 

Функция addMarkerCity отлично и срабатывает работает на событие нажатия кнопки JQuery(). Я использую массив flightRoute для хранения каждой позиции каждого маркера, а затем передаю его функции, которая создаст полилинию между двумя маркерами.

Проблема в том, что я вижу только полилинию на карте, если я дважды нажимаю кнопку, чтобы она работала.

Когда я делаю:

console.log(flightRoute); 

Массив flightRoute равно [], а затем я могу увидеть LatLng из 2 ранее созданных маркеров. Может кто-то сказать мне, что я делаю неправильно, чтобы получить позицию внутри flightRoute и сразу показать маркеры. Я очень близок к тому, чтобы получить результат, который я хочу.

+1

Можете ли вы разместить рабочий пример? JSfiddle или что-то подобное –

+0

Вам не нужно было бы дважды нажимать кнопку, чтобы получить 2 маркера, что даст вам полилинию? Не может быть линии с 1 очко. –

+0

В вашем опубликованном коде отсутствует функция щелчка (или карта в этом отношении). Что делает функция кликов? Просьба представить [Минимальный, полный, проверенный и читаемый пример] (http://stackoverflow.com/help/mcve), который демонстрирует проблему. – geocodezip

ответ

-1

Для добавления точек в полилинию динамически

  1. вам нужно иметь массив типа google.maps.MVCArray

    var points = new google.maps.MVCArray();

  2. вам необходимо пройти эту MVCArray к лотулине

    var polyline = new google.maps.Polyline({ path: points });

+0

Спасибо за советы, но это не решит мою проблему. –