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