Как открыть различную информацию для каждого созданного мною полигона? Google maps api v3

Вот код, который я сейчас выполняю: Пользователь может создать свой собственный многоугольник после того, как его многоугольники показаны на карте. Я хочу отобразить некоторую информацию о каждом многоугольнике. Сейчас я открываю информационное окно, но не могу получить информацию о разных полигонах

есть идеи?

<?php foreach ($area->result() as $f):?>

// Create an array with the coordanates of each area

var area<?=$f->id?>Coords = [
    <?php $latlng=$this->resources_data->field_latlng($f->id);?>
    <?php foreach ($latlng->result() as $point):?>
    new google.maps.LatLng(<?=$point->lat?>, <?=$point->lng?>),
    <?php endforeach;?>
];

// Create a polygon with the points of the area

var area<?=$f->id?>=new google.maps.Polygon({
    paths: area<?=$f->id?>Coords,
    strokeColor: '#FF0000',
    strokeOpacity: 0.8,
    strokeWeight: 2,
    fillColor: '#FF0000',
    fillOpacity: 0.35
});
// Add the Field to the map.
area<?=$f->id?>.setMap(map);

google.maps.event.addListener(field<?=$f->id?>,'click',function(event){
      infowindow.setContent(contentString);
      if (event) {
         point = event.latLng;
      }
      infowindow.setPosition(point);
      infowindow.open(map);
});

google.maps.event.addListener(map, 'click', function() {
        infowindow.close();
        });


<?php endforeach;?>

var contentString = '<div id="content" class="h300 rad3">'+
    '<div>'+
    '</div>'+
    '<h2 ><?=$f->name?> </h2>'+
    '<div id="bodyContent">'+
    '<div class="bgC m20l glow3cb rad3 h100 w350 inlineB vtop m15b m15r">' +
    ' '+
    ''+
    '<div class="inlineT vtop w180 m5l"> '+
    '<div class="inlineT vtop m5l"> '+
    '</div>';

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

Ответы на вопрос(1)

Решение Вопроса

ьзовать функцию замыкания, как это сделано вэтот пример (см. функцию createClickablePoly). Если вам не нужна интерактивная боковая панель, вы можете упростить эту функцию до:

function createClickablePoly(poly, html) {
    var contentString = html;
    google.maps.event.addListener(poly,'click', function(event) {
      infowindow.setContent(contentString);
      infowindow.setPosition(event.latLng);
      infowindow.open(map);
    }); 
}
 user176630323 окт. 2012 г., 20:57
Последний вопрос: стоит ли инфобокс для моей ситуации?
 user176630323 окт. 2012 г., 16:00
Я не мог заставить это работать еще. Я пытаюсь понять, мне нужно добавить скрипт "scripts / v3_epoly.js"? Я заменил функцию: google.maps.event.addListener (поле <? = $ F-> id?>, «Щелчок», функция (событие) {infowindow.setContent (contentString); if (событие) { point = event.latLng;} infowindow.setPosition (point); infowindow.open (map);}); это было в моем коде того, что вы мне предложили. все еще не работает. Это лучший путь для этого? Спасибо за Ваш ответ.
 geocodezip23 окт. 2012 г., 19:31
Это конечно возможно. Вам просто нужно понять, что PHP работает на сервере, вам нужен вызов функции, который должен быть выполнен в клиенте с правильными аргументами. Сделайте просмотр источника на своей странице и посмотрите, что создает PHP.
 user176630323 окт. 2012 г., 19:15
Хорошо, я добавил createClickablePoly (field <? = $ F-> id?>, "<Div> test </ div>"); после этого информационное окно стало противоположным, но просто с помощью «тестового» текста я хотел бы открыть все, что есть на contentString. Проблема в том, что у меня нет свободы под информационным окном. Я хотел бы добавить немного программирования php, а некоторые интерактивные кнопки в информационном окне - это возможно? Спасибо
 geocodezip23 окт. 2012 г., 16:32
Если вы собираетесь использовать версию функции с этой страницы, вам понадобится epoly; если вы используете упрощенную версию в моем посте, вы не делаете. Однако вам нужна функция createClickablePoly, иначе вы не получите закрытие функции.

Ваш ответ на вопрос