コード例 #1
0
        /// <summary>
        /// Generate BruTile TileSchema based on ArcGIS Capabilities
        /// </summary>
        /// <returns>TileSchema, returns null if service is not tiled</returns>
        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);
        }
コード例 #2
0
ファイル: CapabilitiesHelper.cs プロジェクト: smitcham/Mapsui
        /// <summary>
        /// Generate BruTile TileSchema based on ArcGIS Capabilities
        /// </summary>
        /// <returns>TileSchema, returns null if service is not tiled</returns>
        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 {
                    Id = levelId, UnitsPerPixel = lod.resolution
                };
                count++;
            }

            schema.Height  = arcGisDynamicCapabilities.tileInfo.cols;
            schema.Width   = arcGisDynamicCapabilities.tileInfo.rows;
            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.Axis   = AxisDirection.InvertedY;
            schema.Srs    = string.Format("EPSG:{0}", arcGisDynamicCapabilities.tileInfo.spatialReference.wkid);

            return(schema);
        }