Как использовать переменную для определения нового google.maps.LatLng()

Я читал, читал и читал, но не могу понять. У меня есть массив латов и массив длин. Мне нужно иметь возможность передавать значения в новый google.maps.LatLng() из массива. Кажется, это сработает:

new google.maps.LatLng(lats[0], lngs[0])

Но это не так. Я не могу понять, как это сделать. Помощь?

Вот как создаются массивы:

    <script type="text/javascript">

var lats = [];
var lngs = [];
  function initialize() {

var geo = new google.maps.Geocoder;
  var address = "<?php echo $arrayAddress; ?>";
geo.geocode({'address':address},function(results, status){
if (status == google.maps.GeocoderStatus.OK) {              
    lats.push(results[0].geometry.location.lat());
    lngs.push(results[0].geometry.location.lng());
} else {
    alert("Geocode was not successful for the following reason: " + status);
}
});
  }

  google.maps.event.addDomListener(window, 'load', initialize);
</script>

если я console.log(lat[0]), я получаю ожидаемый результат.

И вот где я пытаюсь создать new.google.mapsLatLng():

<script type="text/javascript">
var map;
function initialize() {
    var mapOptions = {
    zoom: 8,
    center: new google.maps.LatLng(lats[0], lngs[0])
    };
    map = new google.maps.Map(document.getElementById('map-canvas'),mapOptions);
 }

 google.maps.event.addDomListener(window, 'load', initialize);
 </script>

Это вне цикла в wordpress. Часть геокодера находится внутри цикла. Я работаю над геокодированием адреса для всех сообщений в цикле и перемещаю координаты в этот массив, а затем размещаю массив координат в качестве маркеров на карте вне цикла.


person WilliamAlexander    schedule 07.08.2014    source источник
comment
Этого кода недостаточно для решения проблемы. Можете ли вы показать нам больше кода, например, как создаются ваши массивы Lats и Lngs?   -  person GregL    schedule 07.08.2014
comment
Отредактировано, чтобы включить эту информацию.   -  person WilliamAlexander    schedule 07.08.2014
comment
А где строка new google.maps.LatLng(lats[0], lngs[0]) в контексте выложенного выше кода? Это должно быть внутри обратного вызова, создающего массивы lats и lngs, поскольку этот обратный вызов будет выполняться через некоторое время после загрузки страницы.   -  person GregL    schedule 07.08.2014
comment
Отредактировано, чтобы включить этот код. Я не уверен на 100%, что я в обратном вызове - может быть, и нет, - но я не понимаю этого полностью. Может быть, именно в этом проблема. @GregL - не могли бы вы сказать мне, где это ломается? Кроме того, когда я смотрю на это, я замечаю, что дважды использовал function initialize() - это проблема? Должны ли эти две функции иметь разные имена?   -  person WilliamAlexander    schedule 07.08.2014
comment
Функция инициализации не находится в обратном вызове. И ваша функция инициализации, и ваша операция геокодирования начинаются с события загрузки окна. Можете ли вы предоставить содержание адреса? Мне кажется, что ваш код будет геокодировать только первый адрес, если это так (функция геокодирования принимает только один адрес, а не массив).   -  person geocodezip    schedule 07.08.2014
comment
Я нашел другой способ сделать это, ответил на другой вопрос. Я не уверен, как правильно связать другой вопрос, но он здесь: stackoverflow.com/questions/25167596 /   -  person WilliamAlexander    schedule 07.08.2014


Ответы (1)


person    schedule
comment
Это не то, что мне нужно. Мне нужно передать широту и долготу в google.maps.LatLng(), используя один массив, содержащий широты, и один массив, содержащий долготы. - person WilliamAlexander; 07.08.2014
comment
поэтому сопоставьте их с помощью индекса массива - person Mir Shakeel Hussain; 11.08.2014