107 lines
4.1 KiB
C#
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
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|