public static ITileSchema GetTileSchema(ArcGISDynamicCapabilities arcGisDynamicCapabilities)
{
//TODO: Does this belong in Mapsui.Providers?
if (arcGisDynamicCapabilities.tileInfo == null)
return null;
var schema = new TileSchema();
var count = 0;
foreach (var lod in arcGisDynamicCapabilities.tileInfo.lods)
{
var levelId = count.ToString();
schema.Resolutions[levelId] = new Resolution (levelId, lod.resolution,
arcGisDynamicCapabilities.tileInfo.cols,
arcGisDynamicCapabilities.tileInfo.rows);
count++;
}
schema.Extent = new BruTile.Extent(arcGisDynamicCapabilities.fullExtent.xmin, arcGisDynamicCapabilities.fullExtent.ymin, arcGisDynamicCapabilities.fullExtent.xmax, arcGisDynamicCapabilities.fullExtent.ymax);
schema.OriginX = arcGisDynamicCapabilities.tileInfo.origin.x;
schema.OriginY = arcGisDynamicCapabilities.tileInfo.origin.y;
schema.Name = "ESRI";
schema.Format = arcGisDynamicCapabilities.tileInfo.format;
schema.YAxis = YAxis.OSM;
schema.Srs = $"EPSG:{arcGisDynamicCapabilities.tileInfo.spatialReference.wkid}";
return schema;
}