Я читал, читал и читал, но не могу понять. У меня есть массив латов и массив длин. Мне нужно иметь возможность передавать значения в новый 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. Часть геокодера находится внутри цикла. Я работаю над геокодированием адреса для всех сообщений в цикле и перемещаю координаты в этот массив, а затем размещаю массив координат в качестве маркеров на карте вне цикла.
Lat
s иLng
s? - person GregL   schedule 07.08.2014new google.maps.LatLng(lats[0], lngs[0])
в контексте выложенного выше кода? Это должно быть внутри обратного вызова, создающего массивыlats
иlngs
, поскольку этот обратный вызов будет выполняться через некоторое время после загрузки страницы. - person GregL   schedule 07.08.2014function initialize()
- это проблема? Должны ли эти две функции иметь разные имена? - person WilliamAlexander   schedule 07.08.2014