public bool BuildFrom(ITransformedTile tile, ITileContext context) { var pbfTile = new TileFactory.Serialization.Tile(); var pbfLayer = new Serialization.Tile.Types.Layer(); pbfLayer.Name = "Layer1"; pbfLayer.Extent = (uint)context.Extent; pbfLayer.Version = 2; foreach (var feature in tile.TransformedFeatures) { var layerFeature = new Serialization.Tile.Types.Feature() { Id = (ulong)new Random(0).Next(), Type = convertToGeomType(feature.GeometryType) }; layerFeature.Geometry.AddRange(encodingFactory.BuildEncodedGeometry(feature)); pbfLayer.Features.Add(layerFeature); } pbfTile.Layers.Add(pbfLayer); vectorTile = pbfTile; return(true); }
public TilesController(LayerTileCacheAccessor cacheAccessor, ILayerInitializationService layerService, ITileContext tileContext) { this.tileContext = tileContext; var generator = new Generator(tileContext, cacheAccessor, layerService); tileRetrieverService = new TileRetrieverService(cacheAccessor, tileContext, generator); }
public Generator(ITileContext context, LayerTileCacheAccessor cacheAccessor, ILayerInitializationService initService) { this.cacheAccessor = cacheAccessor; this.tileContext = context; this.transform = new Transform(context.Extent, context.Buffer); this.tileInitService = initService; if (tileContext == null) { throw new NotSupportedException("The TileContext must have a value."); } }
public TileRetrieverService( LayerTileCacheAccessor cacheAccessor, ITileContext context, Generator tileGenerator) { this.tileGenerator = tileGenerator; this.cacheAccessor = cacheAccessor; this.tileContext = context; this.tileTransform = new Transform(context.Extent, context.Buffer); if (tileContext == null) { throw new NotSupportedException("The TileContext must have a value."); } }
/// <summary> /// Initializes a set of features into the cache system. /// To be used when features are already loaded into the context. /// This might occur when projecting data from a file on the server. /// </summary> /// <param name="tileContext"></param> /// <returns></returns> public async Task InitializeTile(ITileContext tileContext) { var generator = new Generator(tileContext, cacheAccessor, null); // This is only called at the beginning // generator.SplitTile(tileContext.TileFeatures.ToArray(), zoom: 0, x: 0, y: 0, currentZoom: null, currentX: null, currentY: null); var geoTile = await generator.GenerateTile(); if (geoTile == null) { throw new NotSupportedException($"The tile with id: {tileContext.Identifier} could not be initialized."); } }
public TilesRepository(ITileContext context) { _context = context ?? throw new ArgumentNullException(nameof(context)); }
public IntegerTileService(ITileContext context, ITilesRepository tilesRepository, IDateTimeOffsetProvider dateTimeOffsetProvider, IEventDispatcher eventDispatcher) : base(context, tilesRepository, dateTimeOffsetProvider) { _eventDispatcher = eventDispatcher ?? throw new System.ArgumentNullException(nameof(eventDispatcher)); }
/// <summary> /// Sometime the generator is needed for in-memory features. /// </summary> /// <param name="context"></param> /// <param name="cacheAccessor"></param> internal Generator(ITileContext context, LayerTileCacheAccessor cacheAccessor) : this(context, cacheAccessor, null) { }
public TileService(ITileContext context, ITilesRepository tilesRepository, IDateTimeOffsetProvider dateTimeOffsetProvider) { Context = context ?? throw new ArgumentNullException(nameof(context)); TilesRepository = tilesRepository ?? throw new ArgumentNullException(nameof(tilesRepository)); DateTimeOffsetProvider = dateTimeOffsetProvider ?? throw new ArgumentNullException(nameof(dateTimeOffsetProvider)); }
public WeatherService(ITileContext context, ITilesRepository tilesRepository, IWeatherRepository weatherRepository, IDateTimeOffsetProvider dateTimeOffsetProvider, IEventDispatcher eventDispatcher) : base(context, tilesRepository, dateTimeOffsetProvider) { _weatherRepository = weatherRepository; _eventDispatcher = eventDispatcher ?? throw new ArgumentNullException(nameof(eventDispatcher)); }