2012-06-02 3 views
0

Попытка разместить маркеры на карте Google с помощью бэкэнда Django с использованием lat и для каждого объекта. Это очень расстраивающее время. Я считаю, что проблема находится в цикле for, но я не могу точно определить, в чем проблема (мне может понадобиться второй цикл). Любая помощь или понимание будут очень оценены.Цикл с маркерами Google Map

var stories = [{% for story in stories %} 
     {latitude:{{story.latitude}},longitude:{{story.longitude}}}, {% endfor %}]; 




function loadMarkers(stories){ 
    for (i=0;i<stories.length;i++) { 
     var story = stories[i]; 
     var point = new google.maps.LatLng(story.latitude, story.longitude); 
     var marker = new google.maps.Marker({position: point, map: map}); 
    } 
} 

loadMarkers(stories); 

ответ

2

Я не знаком с Django, но если ваши вопросы является чисто JavaScript код, который я могу предложить первое место, которое я хотел бы посмотреть.

Убедитесь, что вы зацикливаете массив, а не объект. Каждый объект в javascript имеет свойство length.

Сделайте следующее в каком-нибудь отладчике, например, в FF или chrome.

function loadMarkers(stories){ 
for (i=0;i<stories.length;i++) { 
    var story = stories[i]; 
    var point = new google.maps.LatLng(story.latitude, story.longitude); 
    var marker = new google.maps.Marker({position: point, map: map}); 

console.log(i); 
console.log(stories); 
console.log(stories[i]); 
} 

}

+0

Да, «рассказы» - это объект. Так что это «история». Мне нужно найти способ итерации через объект. –

+0

Можете ли вы дать мне информацию из вашего журнала, чтобы я мог видеть, как выглядят истории и история? –

+0

Несомненно. Это меня насторожило. http://dpaste.org/ygYH4/ –

1

я предлагаю вам проверить два момента:

1) Джанго => там может быть проблема о {{и}}

2) JS => последний ' , из-за ошибки вы не можете сделать такой объект: {lat: 1, lng: 2,}

+0

Я тоже не думал, что вы можете сделать такой объект; однако я просто предположил, что это была какая-то джанго. –

Смежные вопросы