Example #1
0
        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);
        }
Example #2
0
        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));
 }