Слушатель изменения полигона Bing Map - PullRequest
0 голосов
/ 27 ноября 2018

Мне нужен прослушиватель событий, который извлекает изменения на полигоне в картах Bing V8.Я достаточно гуглил и буквально ничего не нашел.Я сделал это в Google, как это;

 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);                 
        });}

я не мог узнать на карте Bing.Кстати, я установил редактируемый многоугольник как этот

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')
            });

1 Ответ

0 голосов
/ 28 ноября 2018

Добавить событие в менеджер чертежей.Есть несколько вариантов на выбор, как описано здесь: https://msdn.microsoft.com/en-us/library/mt750463.aspx

Если вы используете событие DrawingChanged, оно будет срабатывать при редактировании многоугольника.Вы можете найти живой пример кода, который демонстрирует, когда эти события запускаются здесь: http://bingmapsv8samples.azurewebsites.net/#DrawingTools_Events

...