Bing Map图钉未显示在Office365 SharePoint页面上

时间:2013-11-21 18:12:16

标签: javascript sharepoint-2013 bing-maps

我有一个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 });

}

任何见解都表示赞赏。 感谢。

2 个答案:

答案 0 :(得分:0)

仔细检查lat和lon值。确保它们实际上有一个值,它是一个数字,而不是一个字符串。如果是字符串,请使用parseFloat将其转换为数字。存储为字符串的数字是因为Location类最终无效而不显示图钉的相当常见的原因。

答案 1 :(得分:0)

让其他人遇到此问题,进入您的互联网设置,降低保护级别并进入自定义级别",查找"启用混合内容"并且启用它是这里两台机器的解决方案。