public async Task <IActionResult> Get(string layerId, int z, int x, int y, string fileExtension, string fileSerializer, [FromQuery(Name = "access_token")] string accessToken) { tileContext.Identifier = layerId; var tile = await tileRetrieverService.GetTile(z, x, y); if (tile != null) { var factory = new ProtoBufSerializationFactory(); factory.BuildFrom(tile, tileContext); var memStream = new MemoryStream(); using (var serialStream = factory.SerializeTile()) { await serialStream.CopyToAsync(memStream); } memStream.Position = 0; return(File(memStream, "application/octet-stream", "tile.pbf")); } else { return(new EmptyResult()); } //var path = files.GetFileInfo($"{layerId}.{fileExtension}.{fileSerializer}"); //var memStream = new MemoryStream(); //using (var stream = new FileStream(path.PhysicalPath, FileMode.Open)) //{ // await stream.CopyToAsync(memStream); //} //memStream.Position = 0; //return File(memStream, "application/octet-stream", "tile.pbf"); }
public void using_polygon_transformed_tile_generate_serialized_tile() { // the goal of this test is to take a TransformedTile, which is the coordinates of a geometry feature // // and turn it into a group of Commands with parameters. // var tile = Container.GetService <IConfigurationStrategy>().Into <TransformedTile>("transformed_tile"); var factory = new ProtoBufSerializationFactory(); factory.BuildFrom(tile, new MockTileContext()); var stream = factory.SerializeTile(); Assert.IsNotNull(stream); Assert.AreEqual(47, stream.Length); }
public async Task using_points_tile_generate_serialized_tile() { Container.GetService <MockContextRepository>().TryGetAs <MockTileContext>("simple_points", out MockTileContext context); var accessor = new LayerTileCacheAccessor(() => new MockTransformedCacheStorage(), () => new MockRawCacheStorage()); var generator = new Generator(context, accessor, new LayerInitializationFileService(Container.GetService <IFileProvider>())); var retriever = new TileRetrieverService(accessor, context, generator); var tile = await retriever.GetTile(0, 0, 0); var factory = new ProtoBufSerializationFactory(); factory.BuildFrom(tile, new MockTileContext()); var stream = factory.SerializeTile(); Assert.IsNotNull(stream); Assert.AreEqual(114, stream.Length); }