agrobot_base/Exemplos/Aspose.GIS-for-.NET-master/Examples/CSharp/Rendering/ReadTilesFromXyzFormat.cs

107 lines
4.1 KiB
C#

using System;
using System.IO;
using System.Linq;
using Aspose.Gis;
using Aspose.GIS.Examples.CSharp;
using Aspose.Gis.Formats.XyzTile;
using Aspose.Gis.Rendering;
using Aspose.Gis.SpatialReferencing;
namespace Aspose.GIS_for.NET.Rendering
{
public static class ReadTilesFromXyzFormat
{
public static void Run()
{
// Note: a license is required to run this example.
// You can request a 30-day temporary license here: https://purchase.aspose.com/temporary-license
var pathToLicenseFile = @""; // <- change this to the path to your license file
if (!string.IsNullOrEmpty(pathToLicenseFile))
{
var license = new License();
license.SetLicense(pathToLicenseFile);
}
Console.WriteLine($"Example: {nameof(OpenStreetXyzTile)}");
OpenStreetXyzTile();
Console.WriteLine("");
Console.WriteLine($"Example: {nameof(OpenStreetXyzTiles)}");
OpenStreetXyzTiles();
Console.WriteLine("");
Console.WriteLine($"Example: {nameof(OpenTileFromFolder)}");
OpenTileFromFolder();
}
private static void OpenStreetXyzTile()
{
// ExStart: OpenStreetXyzTile
var mapPath = Path.Combine(RunExamples.GetDataDir(), "out_osm_tile.png");
// we use the osm tile server
string url = "http://tile.openstreetmap.org/{z}/{x}/{y}.png";
using (var layer = Drivers.XyzTiles.OpenLayer(new XyzConnection(url)))
{
// print tile info
var tile = layer.GetTile(2, 3, 1);
Console.WriteLine($"CellX: {tile.CellX}, CellY: {tile.CellY}" );
Console.WriteLine($"Path: {tile.AsPath()}");
// render tile
var resampling = new RasterMapResampling() { Height = 256, Width = 256 };
using (var map = new Map(800, 800))
{
var raster = tile.AsRaster();
map.Add(new RasterMapLayer(raster){Resampling = resampling});
map.Render(mapPath, Renderers.Png);
}
Console.WriteLine($"Rendered Map: {mapPath}");
}
// ExEnd: OpenStreetXyzTile
}
private static void OpenStreetXyzTiles()
{
// ExStart: OpenStreetXyzTiles
var mapPath = Path.Combine(RunExamples.GetDataDir(), "out_osm_tiles.png");
// we use the osm tile server
string url = "http://tile.openstreetmap.org/{z}/{x}/{y}.png";
using (var layer = Drivers.XyzTiles.OpenLayer(new XyzConnection(url)))
{
// print tiles info
var extent = new Extent(-90, -40, 90, 40) {SpatialReferenceSystem = SpatialReferenceSystem.Wgs84};
var tiles = layer.GetTiles(2, extent).ToList();
// render tiles
var resampling = new RasterMapResampling() { Height = 800, Width = 800 };
using (var map = new Map(800, 800))
{
foreach (var tile in tiles)
{
var raster = tile.AsRaster();
map.Add(new RasterMapLayer(raster) { Resampling = resampling });
}
map.Render(mapPath, Renderers.Png);
}
Console.WriteLine($"Rendered Map: {mapPath}");
}
// ExEnd: OpenStreetXyzTiles
}
private static void OpenTileFromFolder()
{
// ExStart: OpenTileFromFolder
string url = "C://tiles/{z}/{x}/{y}.png";
using (var layer = Drivers.XyzTiles.OpenLayer(new XyzConnection(url)))
{
// print tile info
var tile = layer.GetTile(0, 0, 0);
Console.WriteLine($"CellX: {tile.CellX}, CellY: {tile.CellY}");
Console.WriteLine($"Path: {tile.AsPath()}");
}
// ExEnd: OpenTileFromFolder
}
}
}