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