首页 > 解决方案 > 必应地图多边形更改侦听器

问题描述

我需要一个事件监听器来获取 bing maps V8 中多边形的变化。我已经用谷歌搜索了足够多的东西,但实际上一无所获。我在谷歌中是这样做的;

 google.maps.event.addListener(regionPolygon, 'click', function () {
        var ang = regionPolygon.getPath();
        google.maps.event.addListener(ang, 'set_at', function () {
            var newPoints = [];
            newPoints = regionPolygon.getPath().getArray();
            var a = newPoints.length;
            var x = regionPolygon.getPath();
            var bounds = new google.maps.LatLngBounds();
            var strx = "";
            //var b = 0;
            for (b = 0; b < a; b++) {
                var i = b + 1;
                strx = strx + newPoints[b].lat() + ',';

                if (i != a)
                {
                    strx = strx + newPoints[b].lng() + ',';
                }
                else if (i == a)
                {
                    strx = strx + newPoints[b].lng();
                }
            }     
                isFinished = true;
                updateRegion(regionName, strx);
                setTimeout(function () { loadRegions(); },2500);                 
        });}

我在必应地图中找不到。顺便说一句,我设置了一个像这样的可编辑多边形

var polygon = new Microsoft.Maps.Polygon(points, { strokeThickness: 1 });

        Microsoft.Maps.loadModule('Microsoft.Maps.DrawingTools', function () {
            //Create an instance of the DrawingTools class and bind it to the map.
            var tools = new Microsoft.Maps.DrawingTools(_this.mapBings);

            //Pass the polygon to the drawing tools to be edited.
            tools.edit(polygon);
        });

        var bestView = Microsoft.Maps.LocationRect.fromLocations(points);

        setTimeout((function () {
            this.mapBings.setView({ bounds: bestView });
        }).bind(_this), 10);

        _this.polygonOverlay = polygon;
        // _this.mapBings.entities.push(polygon);

        Microsoft.Maps.Events.addHandler(polygon, 'click',
            function ()
            {
                alert('hey')
            });

标签: javascriptbing-maps

解决方案


向绘图管理器添加事件。有几个可供选择,如此处所述:https ://msdn.microsoft.com/en-us/library/mt750463.aspx

如果您使用 drawingChanged 事件,它将在您编辑多边形时触发。您可以在此处找到演示这些事件何时触发的实时代码示例:http: //bingmapsv8samples.azurewebsites.net/#DrawingTools_Events


推荐阅读