public async Task GetTileWmtsAsync() { var expected000 = new TileDataStub(0, 0, 0); var r1 = await client.GetAsync("/wmts?layer=source1&tilematrixset=EPSG%3A3857&Service=WMTS&Request=GetTile&Version=1.0.0&TileMatrix=0&TileCol=0&TileRow=0"); Assert.AreEqual(HttpStatusCode.OK, r1.StatusCode); var actual1 = new TileDataStub(await r1.Content.ReadAsByteArrayAsync()); Assert.AreEqual(expected000, actual1); var r2 = await client.GetAsync("/wmts?layer=source2&tilematrixset=EPSG%3A3857&Service=WMTS&Request=GetTile&Version=1.0.0&TileMatrix=0&TileCol=0&TileRow=0"); Assert.AreEqual(HttpStatusCode.OK, r2.StatusCode); var actual2 = new TileDataStub(await r2.Content.ReadAsByteArrayAsync()); Assert.AreEqual(expected000, actual2); var expected312 = new TileDataStub(3, 1, 2); var r3 = await client.GetAsync("/wmts?layer=source3&tilematrixset=EPSG%3A3857&Service=WMTS&Request=GetTile&Version=1.0.0&TileMatrix=2&TileCol=3&TileRow=1"); Assert.AreEqual(HttpStatusCode.OK, r3.StatusCode); var actual3 = new TileDataStub(await r3.Content.ReadAsByteArrayAsync()); Assert.AreEqual(expected312, actual3); var r4 = await client.GetAsync("/wmts?layer=source4&tilematrixset=EPSG%3A3857&Service=WMTS&Request=GetTile&Version=1.0.0&TileMatrix=0&TileCol=0&TileRow=0"); Assert.AreEqual(HttpStatusCode.OK, r4.StatusCode); var actual4 = new TileDataStub(await r4.Content.ReadAsByteArrayAsync()); Assert.AreEqual(expected000, actual4); }
public async Task GetTileTmsAsync() { var expected000 = new TileDataStub(0, 0, 0); var r1 = await client.GetAsync("/tms/1.0.0/source1/0/0/0.png"); Assert.AreEqual(HttpStatusCode.OK, r1.StatusCode); var actual1 = new TileDataStub(await r1.Content.ReadAsByteArrayAsync()); Assert.AreEqual(expected000, actual1); var r2 = await client.GetAsync("/tms/1.0.0/source2/0/0/0.jpg"); Assert.AreEqual(HttpStatusCode.OK, r2.StatusCode); var actual2 = new TileDataStub(await r2.Content.ReadAsByteArrayAsync()); Assert.AreEqual(expected000, actual2); var expected312 = new TileDataStub(3, 1, 2); var r3 = await client.GetAsync("/tms/1.0.0/source3/2/3/2.png"); // TMS inverts Y axis Assert.AreEqual(HttpStatusCode.OK, r3.StatusCode); var actual3 = new TileDataStub(await r3.Content.ReadAsByteArrayAsync()); Assert.AreEqual(expected312, actual3); var r4 = await client.GetAsync("/tms/1.0.0/source4/0/0/0.png"); Assert.AreEqual(HttpStatusCode.OK, r4.StatusCode); var actual4 = new TileDataStub(await r4.Content.ReadAsByteArrayAsync()); Assert.AreEqual(expected000, actual4); }
public async Task GetTileXyzAsync() { var expected000 = new TileDataStub(0, 0, 0); var r1 = await client.GetAsync("/xyz/source1?x=0&y=0&z=0"); Assert.AreEqual(HttpStatusCode.OK, r1.StatusCode); var actual1 = new TileDataStub(await r1.Content.ReadAsByteArrayAsync()); Assert.AreEqual(expected000, actual1); var r2 = await client.GetAsync("/xyz/source2/0/0/0.jpg"); Assert.AreEqual(HttpStatusCode.OK, r2.StatusCode); var actual2 = new TileDataStub(await r2.Content.ReadAsByteArrayAsync()); Assert.AreEqual(expected000, actual2); var expected312 = new TileDataStub(3, 1, 2); var r3 = await client.GetAsync("/xyz/source3/2/3/1.png"); Assert.AreEqual(HttpStatusCode.OK, r3.StatusCode); var actual3 = new TileDataStub(await r3.Content.ReadAsByteArrayAsync()); Assert.AreEqual(expected312, actual3); var r4 = await client.GetAsync("/xyz/source4/?x=0&y=0&z=0"); Assert.AreEqual(HttpStatusCode.OK, r4.StatusCode); var actual4 = new TileDataStub(await r4.Content.ReadAsByteArrayAsync()); Assert.AreEqual(expected000, actual4); }
private static void CreateLocalTiles(SourceConfiguration tileSource) { // Create files Z\X\Y structure for (var z = tileSource.MinZoom.Value; z <= tileSource.MaxZoom.Value; z++) { Directory.CreateDirectory(Path.Join(LocalFilesPath, z.ToString(CultureInfo.InvariantCulture))); for (var x = 0; x < 1 << z; x++) { var zxPath = Path.Join(LocalFilesPath, z.ToString(CultureInfo.InvariantCulture), x.ToString(CultureInfo.InvariantCulture)); Directory.CreateDirectory(zxPath); for (var y = 0; y < 1 << z; y++) { var tilePath = Path.Join(zxPath, y.ToString(CultureInfo.InvariantCulture)) + "." + tileSource.Format; var tile = new TileDataStub(x, y, z); File.WriteAllBytes(tilePath, tile.ToByteArray()); } } } }
private static void PrepareTestData() { if (!Directory.Exists(TestDataPath)) { Directory.CreateDirectory(TestDataPath); } // Create config file var tileSources = new[] { new TileSourceConfiguration { Type = TileSourceConfiguration.TypeMBTiles, Id = "source1", Location = Mbtiles1FilePath, MinZoom = 0, MaxZoom = 18, }, new TileSourceConfiguration { Type = TileSourceConfiguration.TypeMBTiles, Id = "source2", Title = "Tile Source 2", Location = Mbtiles2FilePath, }, new TileSourceConfiguration { Type = TileSourceConfiguration.TypeLocalFiles, Id = "source3", Title = "Tile Source 3", Location = LocalFilesPath + "\\{z}\\{x}\\{y}.png", MinZoom = 0, MaxZoom = 2, Format = "png", Tms = false, }, new TileSourceConfiguration // HTTP proxy to source1 { Type = TileSourceConfiguration.TypeXyz, Id = "source4", Title = "Tile Source 4", Location = BaseUrl + "/xyz/source1/{z}/{x}/{y}.png", Format = "png", MinZoom = 0, MaxZoom = 2, }, }; File.WriteAllText(SettingsFilePath, JsonSerializer.Serialize(new { TileSources = tileSources })); // TODO: more tiles into database // Create and fill MBTiles databases var db1 = MBT.Repository.CreateEmptyDatabase(Mbtiles1FilePath); db1.AddMetadataItem(new MBT.MetadataItem(MBT.MetadataItem.KeyName, "World Countries")); db1.AddMetadataItem(new MBT.MetadataItem(MBT.MetadataItem.KeyFormat, "png")); db1.AddTile(0, 0, 0, new TileDataStub(0, 0, 0).ToByteArray()); var db2 = MBT.Repository.CreateEmptyDatabase(Mbtiles2FilePath); db2.AddMetadataItem(new MBT.MetadataItem(MBT.MetadataItem.KeyName, "Satellite Imagery")); db2.AddMetadataItem(new MBT.MetadataItem(MBT.MetadataItem.KeyFormat, "jpg")); db2.AddMetadataItem(new MBT.MetadataItem(MBT.MetadataItem.KeyMinZoom, "0")); db2.AddMetadataItem(new MBT.MetadataItem(MBT.MetadataItem.KeyMaxZoom, "5")); db2.AddTile(0, 0, 0, new TileDataStub(0, 0, 0).ToByteArray()); // Create files Z\X\Y structure for (var z = tileSources[2].MinZoom.Value; z <= tileSources[2].MaxZoom.Value; z++) { Directory.CreateDirectory(Path.Join(LocalFilesPath, z.ToString(CultureInfo.InvariantCulture))); for (var x = 0; x < 1 << z; x++) { var zxPath = Path.Join(LocalFilesPath, z.ToString(CultureInfo.InvariantCulture), x.ToString(CultureInfo.InvariantCulture)); Directory.CreateDirectory(zxPath); for (var y = 0; y < 1 << z; y++) { var tilePath = Path.Join(zxPath, y.ToString(CultureInfo.InvariantCulture)) + "." + tileSources[2].Format; var tile = new TileDataStub(x, y, z); File.WriteAllBytes(tilePath, tile.ToByteArray()); } } } }