Я работаю над простым приложением phoneGap — хожу по дому, собирая координаты:
var positions = [
{lat:123.12313123, lng:123.123345131},
{lat:123.12313123, lng:123.123345131}
]
Я просматриваю здесь документацию, которая работает безупречно. Насколько я понимаю, в этом примере сценарий defer async
срабатывает при создании initMap()
. initMap()
имеет один маркер. Это работает безупречно в моем приложении, показывая маркер в Straya.
Сначала я создаю карту:
var map; // making it global
function initMap() {
var myLatLng = {lat: 39.909736, lng: -98.522109}; // center US
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 2,
center: myLatLng
});
}
Это рисует карту. Теперь я хотел бы перебрать мои координаты так:
// Remember, the map has already loaded at this point
$(positions).each(function(i, item) {
var marker = new google.maps.Marker({
position: item,
map: map,
title: 'Route item ' + i
});
})
Это не работает. Я не могу запускать initMap()
внутри цикла, и это все равно не работает. Я не могу запустить initMap()
с заранее установленным количеством координат, потому что я еще не знаю, что это такое, пока не закончу. Что я здесь делаю неправильно?