Отличного способа сделать это не существует.Я рекомендую привязывать событие к DOM-версии объекта polys[i]
(на который обычно ссылается что-то вроде polys[i].Zk
) вместо использования GEvent.addListener
.Возможно, будет проще использовать визуализированный объект и прикрепить его к объекту после загрузки карты, а не искать его в polys[i].Zk
.
Например, если ваш объект является маркером img, вы можете сделать что-нибудьвот так (используя jQuery для краткости, хотя я знаю, что вы не пометили тегом jQuery):
$('#map-box').on('click', 'img', function(evtObj) {
for (var i=0; i<polys.length; i++) {
if ( this == polys[i].Zk ) {
if (evtObj.ctrlKey) {
map.closeInfoWindow();
clickCounty(labels[i]);
}
other stuff to happen....
}
...
});
Конечно, вы, возможно, захотите быть более детальным в своем выборе, и выпотерять обычно передаваемый широту / долготу, но вы можете получить к ним доступ в другом месте, если они вам действительно нужны (например, вы можете сохранить привязку addListener
и кэшировать координаты для использования через привязки).