2013-04-02 117 views
1

我使用BING Maps API在地图上创建条形图。该char包含一些多边形,但我无法向集合添加事件处理函数,并且我添加到多边形的所有事件都会立即触发。如何将事件处理程序添加到bing映射EntityCollection?

var map = new Microsoft.Maps.Map(document.getElementById("mapDiv"), {credentials:"CREDENTIALS", 
          mapTypeId: Microsoft.Maps.MapTypeId.road, 
          zoom: 13, 
          center: new Microsoft.Maps.Location(51.363247,12.467959)}); 

var center = map.getCenter(); 
var chart = drawBarChart(map.getCenter(),10,20,30, 0.005);    
map.entities.push(chart); 

...

function drawBarChart(location, value1, value2, value3, zoom) { 

    var chart = new Microsoft.Maps.EntityCollection(); 

    var sum = value1 + value2 + value3; 
    var height1 = value1/sum * zoom; 

    var maxHeight = Math.max(height1, height2, height3) + 0.1 * zoom; 

    var rectPoints = new Array(5) 
    rectPoints[0] = new Microsoft.Maps.Location(location.latitude - 0.1 * zoom, location.longitude - 0.1 * zoom); 
    rectPoints[1] = new Microsoft.Maps.Location(location.latitude - 0.1 * zoom, location.longitude + 0.7 * zoom); 
    rectPoints[2] = new Microsoft.Maps.Location(location.latitude + maxHeight, location.longitude + 0.7 * zoom); 
    rectPoints[3] = new Microsoft.Maps.Location(location.latitude + maxHeight, location.longitude - 0.1 * zoom); 
    rectPoints[4] = new Microsoft.Maps.Location(location.latitude - 0.1 * zoom, location.longitude - 0.1 * zoom); 
      var black = new Microsoft.Maps.Color(200, 50, 50, 50); 
    var white = new Microsoft.Maps.Color(200, 255, 255, 255); 
    var transparent = new Microsoft.Maps.Color(0, 255, 255, 255); 

    var border = new Microsoft.Maps.Polygon(rectPoints, { 
     strokeColor: transparent, 
     fillColor: white 
    }); 
    chart.push(border); 
    Microsoft.Maps.Events.addHandler(chart , 'mouseover', displayEventInfo); 
    return chart; 

有什么不对?

回答

1

这里你的问题是,你试图在EntityCollection上添加一个'mouseover'事件,但是试图对msdn EntityCollection类不支持这种事件。

我想你可能要添加到每个多边形的事件,所以编辑您这样的代码:

Microsoft.Maps.Events.addHandler(border, 'mouseover', displayEventInfo); 

并根据需要将所有的工作。

希望它有帮助。

相关问题