Beispiel #1
0
        /// <summary> Ensures that the corresponding element source is loaded. </summary>
        private void EnsureElementSource(Vector2d point)
        {
            var boundingBox   = _tileController.GetTile(point).BoundingBox;
            var elementSource = _elementSourceProvider.Get(boundingBox)
                                .SingleOrDefault(e => !e.IsReadOnly).Wait();

            // create in memory element source
            if (elementSource == null)
            {
                // NOTE use bounding box which fits whole world
                var indexBuilder = new InMemoryIndexBuilder(new BoundingBox(
                                                                new GeoCoordinate(-90, -180), new GeoCoordinate(90, 180)),
                                                            IndexSettings.CreateDefault(), _objectPool, Trace);
                indexBuilder.Build();

                elementSource = new ElementSource(indexBuilder)
                {
                    IsReadOnly = false
                };
                _elementSourceProvider.Add(elementSource);
            }

            CommitIfNecessary(elementSource);

            _currentElementSource = elementSource;
            _elementSourceEditor.ElementSource = _currentElementSource;
        }
        public void Setup()
        {
            _boundingBox = BoundingBox.Create(TestHelper.BerlinTestFilePoint, 500);
            var indexBuilder = new InMemoryIndexBuilder(_boundingBox,
                                                        TestHelper.GetIndexSettings(), TestHelper.GetObjectPool(), new ConsoleTrace());

            indexBuilder.Build();

            _editor = new ElementSourceEditor();
            _editor.ElementSource = _elementSource = new ElementSource(indexBuilder);
        }
        /// <summary> Builds element source from raw data on fly. </summary>
        private IElementSource BuildElementSourceInMemory(byte[] bytes)
        {
            FreeUnusedElementSources();
            if (_settings == null)
            {
                ReadIndexSettings();
            }
            var indexBuilder = new InMemoryIndexBuilder(_mapDataFormat, new MemoryStream(bytes),
                                                        _settings, _objectPool, Trace);

            indexBuilder.Build();
            return(new ElementSource(indexBuilder));
        }
Beispiel #4
0
 /// <summary> Creates instance of <see cref="ElementSource"/>. from in memory index builder. </summary>
 /// <param name="indexBuilder"></param>
 internal ElementSource(InMemoryIndexBuilder indexBuilder) :
     this(indexBuilder.BoundingBox, indexBuilder.KvUsage, indexBuilder.KvIndex,
          indexBuilder.KvStore, indexBuilder.Store, indexBuilder.Tree)
 {
 }