Bing地图绘图工具模块 - 事件

时间:2015-05-26 09:00:09

标签: javascript bing-maps

我正在使用Bing Map Ajax Control V7进行测试/学习。 我用信息框创建了一些图钉,并添加了一些事件:

if(isset($_POST['subscribe'])){
    // write send mail code here
}

因此,这些事件运作良好,直到我将DrawningToolModule添加到地图。

function InsertEvent(mark, infoBox)
      {
        var obj = {marker : {}, infoWind : {}};
        obj.marker.entity = mark;  
        obj.marker.eID = Microsoft.Maps.Events.addHandler(mark, "click", function(e) {toggleInfo(e, infoBox, true)});

        obj.infoWind.entity = infoBox;
        obj.infoWind.eID = Microsoft.Maps.Events.addHandler(infoBox, "mouseleave", function(e) {toggleInfo(e, infoBox, false)});
        eventsID.push(obj);
      }

加载数据后,点击上的图钉反应很好。 通过DrawingTool添加自定义图钉后 - 事件很好。 在绘制任何形状(多边形,多边形,圆形)之后 - 我的图钉事件没有被调用。

我添加了一个函数助手来检查事件是否仍然可用:

function GetMap()
      {  

         map = new Microsoft.Maps.Map(document.getElementById("mapDiv"), 
            {credentials: "My extra top secret Bing Map Key",
                center: new Microsoft.Maps.Location(51.201547622680664, 16.16974449157715), zoom: 15 });

         Microsoft.Maps.loadModule('Microsoft.Maps.Search', { callback: searchModuleLoaded });

         Microsoft.Maps.registerModule("DrawingToolsModule", "DrawingToolsModule/DrawingToolsModule.js");
         Microsoft.Maps.loadModule("DrawingToolsModule", { callback: function () {
                drawTools = new DrawingTools.DrawingManager(map, {toolbarContainer : document.getElementById("toolbarContainer")});
            }
         });
      }

结果我明白了。

这是阻止事件的错误,还是我错过了什么?

1 个答案:

答案 0 :(得分:1)

可能的问题是您的多边形位于图钉上方,从而阻止了点击事件或存在问题。或者,在图钉上方有一个EntityCollection,其中包含多边形。这是Bing Maps v7的一个已知问题。尝试使用以下代码展平地图渲染多边形的方式:

map.getMode().setOptions({drawShapesInSingleLayer: true });