Bing Maps外部表格的呼叫信息框

时间:2018-07-19 18:05:25

标签: asp.net-mvc bing-maps

我在左侧有一张地图,在右侧有一张桌子。我想将鼠标悬停在表格单元格上,它会弹出地图上的信息框。我的地图鼠标悬停正常工作,但是不知道如何从地图外部调用它。

我正在使用MVC。

该表有50个左右的条目,并且地图上有对应的图钉,我想在表单元格或鼠标悬停在其上方时显示该图钉的信息框。

1 个答案:

答案 0 :(得分:0)

假设您已经或可以为每个图钉/表格单元对手动创建一些唯一的ID。然后,在创建每个图钉之后,可以将此信息分配给它的元数据:

var pushpin = new Microsoft.Maps.Pushpin(map.getCenter(), null);
pushpin.metadata = { id: "Some Id" };
// ......
// Other work like binding infobox and mouseover event

现在,假设您最终将图钉添加到地图中,如下所示:

var pushpins = [....];
var layer = new Microsoft.Maps.Layer();
layer.add(pushpins);
map.layers.insert(layer);

然后在表格一侧,将相同的ID绑定到表格单元格的自定义数据属性:

<td data-pushpinId="Some Id">Cell A</td>

当您将鼠标悬停在表格单元格上时,获取其data-pushpinId并在图层上找到相应的图钉,然后调用其鼠标悬停事件。

var pushpinId = tableCell.getAttribute("data-pushpinId");
var pushpin = layer.getPrimitives().find((pushpin) => pushpin.metadata.id === pushpinId);
pushpin && pushpin.mouseover.invoke();