Example #1
0
        public static LayerType AddToCapabilities(this DataSource dataSource, string name, Capabilities capabilities)
        {
            string projectionStr;
            double xMin, yMin, xMax, yMax;
            string tileMatrixSet = null;

            using (var layer = dataSource.GetLayerByIndex(0))
            {
                string layerName = layer.GetName();//todo 调试是否乱码
                using (var spatialReference = layer.GetSpatialRef())
                {
                    tileMatrixSet = spatialReference.GetAttrValue("GEOGCS", 0);
                    var ret = spatialReference.ExportToWkt(out projectionStr);
                }
                layer.GetExtent(out xMin, out yMin, out xMax, out yMax);
            }
            int minZoom = 0;
            int maxZoom = 19;

            dataSource.GetSuitableZoom(ref minZoom, ref maxZoom);
            LayerType       layerType           = CapabilitiesHelper.AddToCapabilities(capabilities, name, projectionStr, xMin, yMin, xMax, yMax, minZoom, maxZoom);
            string          href                = capabilities.GetHref(WmtsOperationType.GetTile, WmtsRequestType.REST);
            URLTemplateType tileTemplate        = CapabilitiesHelper.CreateTileResourceURL(href, name, tileMatrixSet);
            URLTemplateType featureInfoTemplate = CapabilitiesHelper.CreateFeatureInfoResourceURL(href, name, tileMatrixSet);

            layerType.ResourceURL = new URLTemplateType[] { tileTemplate, featureInfoTemplate };
            return(layerType);
        }
        public static LayerType AddToCapabilities(this Dataset dataset, string name, Capabilities capabilities)
        {
            string projectionStr = dataset.GetProjection();

            dataset.GetExtent(out double xMin, out double yMin, out double xMax, out double yMax);
            int minLevel = 0;
            int maxLevel = 19;

            dataset.GetSuitableZoom(ref minLevel, ref maxLevel);
            LayerType layerType     = CapabilitiesHelper.AddToCapabilities(capabilities, name, projectionStr, xMin, yMin, xMax, yMax, minLevel, maxLevel);
            string    href          = capabilities.GetHref(WmtsOperationType.GetTile, WmtsRequestType.REST);
            string    tileMatrixSet = null;

            using (var spatialReference = dataset.GetSpatialReference())
            {
                tileMatrixSet = spatialReference.GetAttrValue("GEOGCS", 0);
            }
            URLTemplateType tileTemplate = CapabilitiesHelper.CreateTileResourceURL(href, name, tileMatrixSet);

            layerType.ResourceURL = new URLTemplateType[] { tileTemplate };
            return(layerType);
        }