我有一个Office 365 SharePoint网站,我正试图使用Bing Maps ajax控件显示包含地理位置数据的列表中的数据(http://msdn.microsoft.com/en-us/library/gg427610.aspx)。我的地图正在正确加载并显示正确的位置,但实际的图钉没有显示。我尝试过默认和自定义图钉图标,但都没有用。当我在"vanilla"html页面上使用类似的JavaScript时,图钉显示得很好,所以我认为一定与SharePoint JavaScript或css有某种冲突。
这里的相关代码块:
function fillListData(web, list, items) {
var tile = $("#" + tileId);
var content = tile.find('.tileContent');
var mapOptions = {
credentials: "",
mapTypeId: Microsoft.Maps.MapTypeId.auto,
showDashboard: false
};
var map = new Microsoft.Maps.Map(content[0], mapOptions);
var locs = [];
var e = items.getEnumerator();
while (e.moveNext()) {
var listItem = e.get_current();
var title = listItem.get_item("Title");
var loc = listItem.get_item("Location");
var lat = loc.get_latitude();
var lon = loc.get_longitude();
var mapLoc = new Microsoft.Maps.Location(lat, lon);
locs.push(mapLoc);
//var pin = new Microsoft.Maps.Pushpin(mapLoc, {text: title, visible: true, icon:'../Style Library/Images/flag_red.png'});
//var pin = new Microsoft.Maps.Pushpin(mapLoc, {visible: true, icon:'../Style Library/Images/flag_red.png', width: 50, height: 50});
var pin = new Microsoft.Maps.Pushpin(mapLoc);
map.entities.push(pin);
}
var bestView = Microsoft.Maps.LocationRect.fromLocations(locs);
map.setView({bounds:bestView });
}
任何见解都将不胜感激。谢谢
仔细检查lat和lon值。确保它们确实有一个值,并且它是一个数字而不是字符串。如果是字符串,请使用parseFloat将其转换为数字。存储为字符串的数字是图钉不显示的常见原因,因为Location类最终无效。
如果其他人遇到这个问题,请进入您的互联网设置,降低保护级别并进入"自定义级别",找到"启用混合内容"并启用它,这是两台机器的解决方案。