2012-11-01 89 views
0

試圖添加信息框到每個引腳,每個引腳從一個單獨的函數加載,並附加相應的標題,描述,經緯度等從xml文件。 (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); 

回答

0

代碼使用不屬於各種Bing地圖對象的一部分屬性下面,所以我會認爲是你的意圖。您的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 }); 
    } 
+0

是的,.title和.description是在導入模塊中定義的。修復循環,信息框未能出現。另外,哪些對象本身不適用於Bing地圖? – gSaenz

+0

就我所知,.title和.description不是PushPin對象的本機屬性。我建議在瀏覽器中使用JavaScript調試器來調試腳本以查看問題的確切位置。我爲你調試你的代碼是不實際的。 –

+0

同意圖釘對象沒有.title和.description。所有這些屬性都被一個模塊傳遞給一個數組。該模塊(我已列出源代碼)解析來自xml文件的信息。 – gSaenz

相關問題