2013-05-01 3 views
0

У меня есть спица на моих колесах, и я не уверен, как разобраться в этом. Я боролся с ним в течение пары дней, и это не похоже на нормальную инфобокс, поскольку он не установлен на маркер, а на многоугольник, который для меня что-то новый. У меня есть полигоны, которые отображают данные из файла XML, и они отображаются хорошо. Я обыскал веб-сайт и получил его, чтобы настроить указатель мыши на то место, где вы наводите указатель на полигон, изменяя непрозрачность, и всплывает инфобокс. Проблема в том, что инфобокс, когда он появляется, показывает «неопределенный» вместо html, который я установил для него, для отображения данных из файла XML.Google Maps V3 Infobox undefined на полигонах

Вот, к примеру, ссылка на тестовую карту.

http://www.mesquiteweather.net/googlemap_poly.html

Вот ссылка на файл XML, где я просто пытаюсь показать элементы события и истекают в информационном окне.

http://www.mesquiteweather.net/xml/warnings_test.xml

Это код, я работаю с, чтобы создать infoboxes и наведении курсора мыши события

function attachPolygonInfoWindow(polygon, html, event, expires) 
    { 

     var html = "<strong>" + event + "</strong>"; 

     eventWarnings.infoWindow = new google.maps.InfoWindow({content: html}); 

     google.maps.event.addListener(eventWarnings, 'mouseover', function(e) { 
      var latLng = e.latLng; 
       this.setOptions({fillOpacity:80}); 
       polygon.infoWindow.setPosition(latLng); 
       polygon.infoWindow.open(map); 
     }); 

     google.maps.event.addListener(eventWarnings, 'mouseout', function() { 
      this.setOptions({fillOpacity:0.35}); 
      polygon.infoWindow.close(); 
    }); 
} 

     var polygon = new google.maps.Polygon(/* omitted for brevity */); 
        attachPolygonInfoWindow(eventWarnings); 

      eventWarnings.setMap(map); 
     } 
    }); 

Я довольно уверен, что это что-то просто я с видом, но я не смог найти что-нибудь, что касается моей проблемы. Мне просто повезло, что у меня есть инфобокс, чтобы показать вообще, поскольку я понял, что это сложно, поскольку полигоны не имеют истинного центра, и они не настроены так, как вы бы с маркером, с которым я могу справиться.

Если у кого есть предложения, пожалуйста, дайте мне знать.

-Спасибо

ответ

0

Вы определили свою функцию attachPolygonInfoWindow с 4 аргумента, но только обеспечивают один, когда вы его называете:

// definition 
function attachPolygonInfoWindow(polygon, html, event, expires) 
... 

// call 
attachPolygonInfoWindow(eventWarnings); 

Вероятно, вы хотите (я не вижу HTML или истечения срока действия параметров является используется):

attachPolygonInfoWindow(eventWarnings, "", event, null); 

Другим вариантом было бы изменить определение для:

// definition 
function attachPolygonInfoWindow(polygon, event, expires) 

и вызов (если вы собираетесь использовать «истекает» для чего-то):

attachPolygonInfoWindow(eventWarnings, event, expires); 

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

Кроме того, FYI, у вас есть "висит запятой" в вашем alertColors.js, которые делают IE несчастны ...

example

+0

Спасибо! Да, я предоставил 4 аргумента в функции, но мне не удалось отобразить полигоны, когда я попытался добавить несколько вызовов к вызову. Поэтому, чтобы получить пример, у меня была такая настройка. Единственное, что у меня было раньше, - это то, что я отсутствовал », что я знал, что это что-то маленькое. В вашем примере теперь отображаются заголовки событий, но когда я пытался добавить срок действия, он не загружается. У меня есть var html = "" + event + ""; для форматирования стиля, но когда я добавляю это к вызову, он убивает карту. Нужно ли мне настроить var для истечения срока, чтобы получить тег элемента по имени? – Texan78

+0

Вы не _have_, чтобы создать переменную, чтобы получить значение этого из XML, она просто будет соответствовать остальной части кода. Откуда вы ожидаете, что значение «истекает»? Кроме того, если вы не передаете что-либо в свою функцию 'attachPolygonInfoWindow' в html-параметре, вы можете удалить ее (вместо передачи в placeholder ...) – geocodezip

+0

см. Новый пример упрощенного attachPolygonInfoWindow с данными об истечении срока действия. – geocodezip