我使用JavaScript从数据库中提取数据,并使用while循环在Bing Map上显示数据库的内容。
每个条目都是数据库有一个类别,并被分配给一个允许用户打开和关闭该图层的图层。
例如,用于将位置分配给图层的代码是:
businessLayer.push(pin)
在哪里" businessLayer"是已定义变量的名称。我需要改变" businessLayer" to" communityLayer"等取决于数据库中的信息。数据库中类别的价值仅仅是" business"," community"等。
我一直试图使用"窗口[类别]" (其中"类别"是数据库中的值")。这只显示地图上的第一个位置,并提供JavaScript错误"窗口[...]为空或不是对象"。
看来" window []"在while循环中无法正常工作。
有谁知道我做错了什么?它让我疯了几天。
以下是我一直在使用的代码。提前谢谢。
cb.Open(strConn);
var rb = new ActiveXObject("ADODB.Recordset");
function AddCameras() {
var SQL = "select * from Table1";
rb.Open(SQL, cb);
rb.MoveFirst;
while(rb.EOF == false) {
var icon = {icon: 'images/' + rb("Category").Value + '.png', width: 32, height: 37};
var cat1 = rb("Category").Value.toLowerCase();
var cat2 = cat1 + 'Layer';
var pin = new Microsoft.Maps.Pushpin(new Microsoft.Maps.Location(rb("Latitude").Value, rb("Longitude").Value), icon);
pin.Title = rb("Title").Value;
pin.Description = rb("Details").Value;
Microsoft.Maps.Events.addHandler(pin, 'click', displayInfobox);
window[cat2].push(pin);
//businessLayer.push(pin);
rb.MoveNext;
}
rb.Close();
cb.Close();
}