2015-06-26 5 views
-1

Как продолжение к this question, я пытаюсь добавить соответствующее JSon имени объекта InfoWindow содержания, как,Google Map ломаной InfoWindow

var infowindow = new google.maps.InfoWindow({ 
    content:i 
    }); 

который дается в this fiddle, но он отображает только имя последнего объекта. Я также попытался с return функции, как

google.maps.event.addListener(poly, 'click', (function(event, (poly, i)) { 
    return function() { 
    infowindow.open(map); 
    infowindow.setPosition(event.latLng); 
    } 
    })(poly, i)); 

, но не использовать (fiddle). Как я могу это достичь?

+0

возможно дубликат [нескольких полилиний и infowindows с Google Maps V3] (http://stackoverflow.com/questions/4068110/multiple-polylines-and-inf owindows-with-google-maps-v3) – geocodezip

+0

отредактирован одним вопросом. – mpsbhat

+0

Не работает решение в приведенной выше ссылке. http://jsfiddle.net/mpsbhat/whop1j4e/18/ – mpsbhat

ответ

1

Вы сказали: «Но все скобки правильно закрыты». Это не правильно (у вас есть дополнительный набор скобок в определении функции):

google.maps.event.addListener(poly, 'click', (function(event, (poly, i)) { 
    return function() { 
     infowindow.open(map); 
     infowindow.setPosition(event.latLng); 
    } 
    })(poly, i)); 

event аргумента относится к возвращаемой функции, и вам нужно только закрыть на полигоне (poly) и индекс цикла (i):

google.maps.event.addListener(poly, 'click', (function (poly, i) { 
    return function (event) { 
     infowindow.setContent(""+i); 
     infowindow.setPosition(event.latLng); 
     infowindow.open(map); 
    }; 
})(poly, i)); 

updated fiddle

+0

Спасибо за исправление. – mpsbhat

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