我有一个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 });
}
任何见解都表示赞赏。 感谢。
答案 0 :(得分:0)
仔细检查lat和lon值。确保它们实际上有一个值,它是一个数字,而不是一个字符串。如果是字符串,请使用parseFloat将其转换为数字。存储为字符串的数字是因为Location类最终无效而不显示图钉的相当常见的原因。
答案 1 :(得分:0)
让其他人遇到此问题,进入您的互联网设置,降低保护级别并进入自定义级别",查找"启用混合内容"并且启用它是这里两台机器的解决方案。