コード例 #1
0
        private void AddNewRegionPoint(PointLatLng point)
        {
            List <PointLatLng> locations;

            if (_newRegionData == null)
            {
                locations = new List <PointLatLng> {
                    point
                };
            }
            else
            {
                locations = new List <PointLatLng>(_newRegionData.Locations.Count);
                locations.AddRange(_newRegionData.Locations);
                locations.Add(point);
                ItemsRemoved?.Invoke(this, _newRegionData);
            }

            var newPoint = new NewRegionPoint(point);

            _newRegionPointsData.Add(newPoint);
            ItemsAdded?.Invoke(this, newPoint);

            _newRegionData = new NewRegionData(locations);
            ItemsAdded?.Invoke(this, _newRegionData);
        }
コード例 #2
0
        private void FlushNewRegion()
        {
            if (_newRegionData == null)
            {
                return;
            }

            var locations = _newRegionData.Locations;

            // Чистим карту
            ItemsRemoved?.Invoke(this, _newRegionData);
            ItemsRemoved?.Invoke(this, _newRegionPointsData);
            _newRegionData = null;
            _newRegionPointsData.Clear();

            // Добавляем новоиспечённый регион.
            if (locations.Count > 2)
            {
                RegionCreated?.Invoke(this, locations);
            }
        }