Иконки для маркеров в гугл мапс.
Уже битый час бьюсь. Нужно в зависимости от полученных данных выставить определенный маркер для метки в гугл мапс. Все работает на ура, но метки везде всегда выставляются только одного типа (конкретно - для страны)
for (var k in data){
var v = data[k];
if(v.country_id){
loc = 'страна ' + v.country_name;
icon = '/css/green_big_select.png';
}
if(v.city_id){
loc = 'город ' + v.city_name;
icon = '/css/blue_mini.png';
}
geocoder.geocode( {
'address': loc
}, function(results, status) {
if(status=='OK'){
markers[k] = new google.maps.Marker({
position: results[0].geometry.location,
map: map,
icon: icon /* - вот здесь иконка всегда равна первому варианту, хотя loc (тот, по которому ищутся координаты всегда разный)*/
});
}
else alert('не удается найти объект');
});
}
Причем в массиве входящих данных первым идет город, потом 3 страны. А иконки только для станы на выходе. Подозреваю что проблема, скорее всего, в асинхронности получения результатов геокодера. |
я могу ошибаться-но это javascript? не ну конечно если бы я знал as3 меньше чем сейчас-прочитал всего несколько страниц -я бы сказал что это он.но это не он.
|
js, родной.. и даже работает. вот только проблема таки остается)
|
Цитата:
а вот на цикл for/in языка JAVA совсем очень похоже-я бы сказал что близнецы |
Цитата:
|
та да нашел их и в скрипте .не знал что он есть в скрипте
|
рад кому то помочь обогатиться знаниями. и всетаки нет желания разобраться в чем может быть реальня проблема?)
|
я не понимаю больше половины в приведённом тобой скрипте:(
if(v.country_id)-не понимаю вообще.v.country_id по логике 1 или 0 должны быть в этом случае. но глядя на след строчку понимаю что принимает любые значения и обрабатывается в этом ветвлении -но как? |
country_id, city_id могут быть каким то числом или null. Соответственно где country_id = null город будет 100% задан и наоборот, и проверка таким образом идет нормально.
|
интересно ... но ведь для вхождения в тело ветвления значение должно быть true внутри скобок. а по скольку оно у тебя любое-то по логике в тело ветвления зайдёт только когда примет значение 1. не могу понять всё равно.
|
| Часовой пояс GMT +3, время: 10:34. |