Bing Map从引脚数组中添加infoBox

时间:2012-11-01 20:35:03

标签: javascript map bing-maps bing

尝试在每个引脚上添加一个信息框,每个引脚都从一个单独的函数加载,并从xml文件中附加相应的标题,描述,lat / lon等。 (source if needed

在接收引脚数组的函数中,我试图遍历每个项目并相应地添加信息框。关于我在这里缺少什么的想法?

      function GeoRSSImportedCallback(items, bounds) {
          map.entities.push(items);

          for (var i = 0; i<items.length; i++) {
            items.Title = items.title;
            items.Description = items.description;
            Microsoft.Maps.Events.addHandler(itmes, 'click', displayInfoBox);
          }

          map.entities.push(infoboxLayer);
          map.setView({ bounds: bounds });
      }

    function displayInfoBox(e) {
        pinInfoBox.setOptions({title: e.target.Title, description: e.target.Description, visible:true, offset: new Microsoft.Maps.Point(0,25)});
        pinInfoBox.setLocation(e.target.getLocation());
}

我在GetMap()函数

中初始化了以下内容
        pinInfoBox = new Microsoft.Maps.Infobox(new Microsoft.Maps.Location(0, 0), { visible: false });
        infoboxLayer.push(pinInfoBox);

1 个答案:

答案 0 :(得分:0)

您的代码使用的属性不是各种Bing Maps对象的一部分,所以我假设这是您的意图。你的for循环也有错误,以下应该更正确:

  function GeoRSSImportedCallback(items, bounds) {
      map.entities.push(items);

      for (var i = 0; i<items.length; i++) {
        items[i].Title = items[i].title; // Assumes .title is defined
        items[i].Description = items[i].description; // Assumes .description is defined
        Microsoft.Maps.Events.addHandler(items[i], 'click', displayInfoBox);
      }

      map.entities.push(infoboxLayer);
      map.setView({ bounds: bounds });
  }