Пример #1
0
        public static ITileSource CreateTileSource(string urlString, string layerName, string CRS)
        {
            var schema = new GlobalSphericalMercator("png", YAxis.OSM, 0, 21, null);
            var layers = new List <string>();

            layers.Add(layerName);
            var styles = new List <string>();

            if (!urlString.ToLower().Contains("&version="))
            {
                urlString = urlString + "&version=1.3.0";
            }
            if (!urlString.ToLower().Contains("&crs="))
            {
                urlString = urlString + "&CRS=" + CRS;
            }
            if (!urlString.ToLower().Contains("&format="))
            {
                urlString = urlString + "&format=png";
            }
            if (!urlString.ToLower().Contains("&transparent="))
            {
                urlString = urlString + "&transparent=true";
            }
            var request  = new WmscRequest(new Uri(urlString), schema, layers, new string[0].ToList());
            var provider = new HttpTileProvider(request);

            return(new TileSource(provider, schema));
        }
Пример #2
0
 private static ITileSource ParseTileSetNode(XElement xTileSet, OnlineResource onlineResource)
 {
     var styles = xTileSet.Elements("Styles").Select(xStyle => xStyle.Value).ToList();
     var layers = xTileSet.Elements("Layers").Select(xLayer => xLayer.Value).ToList();
     var schema = ToTileSchema(xTileSet, CreateDefaultName(layers));
     var wmscRequest = new WmscRequest(new Uri(onlineResource.Href), schema, layers, styles);
     return new WmscTileSource(schema, new HttpTileProvider(wmscRequest));
 }
 private void SafeRequest(WmscRequest request)
 {
     _url              = ReflectionHelper.ReflectBaseUri(request).ToString();
     _layers           = new List <string>(ReflectionHelper.ReflectListItems(request, "_layers"));
     _styles           = new List <string>(ReflectionHelper.ReflectListItems(request, "_styles"));
     _customParameters = new Dictionary <string, string>(ReflectionHelper.ReflectDictionary(request, "_customParameters"));
     _version          = ReflectionHelper.Reflect <string>(request, "_version");
 }
Пример #4
0
 private static IRequest GetRequestBuilder(ITileSchema schema)
 {
     const string url = "http://geoserver.nl/tiles/tilecache.aspx?";
     var parameters = new Dictionary<string, string>();
     var request = new WmscRequest(new Uri(url), schema,
         new List<string>(new[] {"world_GM"}), new List<string>(), parameters);
     return request;
 }
Пример #5
0
        public void WmscRequest_Version130()
        {
            var request = new WmscRequest(new Uri("http://testserver.com"), new SphericalMercatorWorldSchema(), new List <string>(new string[] { "Layer One" }), null, null, "1.3.0");
            var ti      = new TileInfo();
            var uri     = request.GetUri(ti);

            StringAssert.Contains("VERSION=1.3.0", uri.ToString());
            StringAssert.Contains("CRS=", uri.ToString());
        }
Пример #6
0
        private static IRequest GetRequestBuilder(ITileSchema schema)
        {
            const string url        = "http://geoserver.nl/tiles/tilecache.aspx?";
            var          parameters = new Dictionary <string, string>();
            var          request    = new WmscRequest(new Uri(url), schema,
                                                      new List <string>(new[] { "world_GM" }), new List <string>(), parameters);

            return(request);
        }
Пример #7
0
        public ITileSource GetTileSource()
        {
            var styles      = layerConfig.Style.Split(',');
            var layers      = layerConfig.WMSLayer.Split(',').ToList();
            var schema      = generateSchema();
            var wmscRequest = new WmscRequest(new Uri(capabilities.Capability.Request.GetMap.DCPType.First().HTTP.Get.OnlineResource.href), schema, layers, styles, layerConfig.DimensionsDict, capabilities.version);

            return(new TileSource(new WebTileProvider(wmscRequest, null, new TileFetcher(layerConfig.Username, layerConfig.Password).fetchTile), schema));
        }
Пример #8
0
        public void WmscRequest_Version130()
        {
            var request = new WmscRequest(new Uri("http://testserver.com"), new GlobalSphericalMercator(YAxis.TMS), new[] { "Layer One" }, null, null, "1.3.0");
            var ti      = new TileInfo {
                Index = new TileIndex(0, 0, 0)
            };
            var uri = request.GetUri(ti);

            StringAssert.Contains("VERSION=1.3.0", uri.ToString());
            StringAssert.Contains("CRS=", uri.ToString());
        }
Пример #9
0
        internal static Uri ReflectBaseUri(WmscRequest request)
        {
            var fi = typeof(WmscRequest).GetField("_baseUrl", BindingFlags.Instance | BindingFlags.NonPublic);

            if (fi == null)
            {
                throw new ArgumentException("Request does not have a private field '_baseUri'", "request");
            }

            return((Uri)fi.GetValue(request));
        }
Пример #10
0
        internal static T Reflect <T>(WmscRequest request, string field)
        {
            var fi = typeof(WmscRequest).GetField(field, BindingFlags.Instance | BindingFlags.NonPublic);

            if (fi == null)
            {
                throw new ArgumentException("Request does not have a private field '" + field + "'", "request");
            }

            return((T)fi.GetValue(request));
        }
Пример #11
0
        public void WmscRequest_NoVersion()
        {
            var request = new WmscRequest(new Uri("http://testserver.com"), new GlobalSphericalMercator(YAxis.TMS), new [] { "Layer One" });
            var ti      = new TileInfo {
                Index = new TileIndex(0, 0, "0")
            };
            var uri = request.GetUri(ti);

            StringAssert.DoesNotContain("VERSION=", uri.ToString());
            StringAssert.Contains("SRS=", uri.ToString());
        }
Пример #12
0
        public static ITileSource Create()
        {
            const string url = "http://geodata.nationaalgeoregister.nl/omgevingswarmte/wms?SERVICE=WMS&VERSION=1.1.1";
            // You need to know the schema. This can be a problem. Usally it is GlobalSphericalMercator
            var schema = new WkstNederlandSchema {
                Format = "image/png"
            };
            var request  = new WmscRequest(new Uri(url), schema, new[] { "koudegeslotenwkobuurt" }.ToList(), new string[0].ToList());
            var provider = new HttpTileProvider(request);

            return(new TileSource(provider, schema));
        }
Пример #13
0
        public static ITileSource Create()
        {
            const string url = "http://geodata.nationaalgeoregister.nl/ahn25m/wms?service=wms";
            // You need to know the schema. This can be a problem. Usally it is GlobalSphericalMercator
            var schema = new WkstNederlandSchema {
                Format = "image/png"
            };
            var request  = new WmscRequest(new Uri(url), schema, new[] { "ahn25m" }.ToList(), new string[0].ToList());
            var provider = new HttpTileProvider(request);

            return(new TileSource(provider, schema));
        }
Пример #14
0
        public GeodanWorldWmsTileSource()
        {
            var schema = new SphericalMercatorInvertedWorldSchema();

            schema.Srs = "EPSG:900913";
            const string url     = "http://geoserver.nl/world/mapserv.cgi?map=world/world.map&VERSION=1.1.1";
            var          request = new WmscRequest(new Uri(url), schema,
                                                   new List <string>(new [] { "world" }), new List <string>(), new Dictionary <string, string>());

            Provider = new WebTileProvider(request);
            Schema   = new SphericalMercatorInvertedWorldSchema();
        }
Пример #15
0
        public static WmsTileSource Create(WmsServerInfo serverInfo)
        {
            var href   = serverInfo.OnlineResource;
            var layers = new List <string>
            {
                serverInfo.Layer
            };

            var schema =
                //new GlobalMercator("image/png");
                new UnProjected();
            var request = new WmscRequest(new Uri(href), schema, layers,
                                          new List <string>(),               // styles
                                          new Dictionary <string, string>(), // custom parameters
                                          serverInfo.Version);
            var provider = new WebTileProvider(request);

            return(new WmsTileSource(provider, schema));
        }
        /// <summary>
        /// Method called prior to any tile access
        /// </summary>
        public void Initialize()
        {
            if (_initialized)
            {
                return;
            }
            _initialized = true;

            var schema  = RestoreSchema();
            var request = new WmscRequest(new Uri(_url), schema, _layers, _styles, _customParameters, _version);

            ITileProvider provider = new HttpTileProvider(request);

            TileSource   = (WmscTileSource)Activator.CreateInstance(typeof(WmscTileSource), BindingFlags.NonPublic, schema, provider);
            TileCache    = CreateTileCache();
            _tileFetcher = new TileFetcher(provider,
                                           BruTileLayerPlugin.Settings.MemoryCacheMinimum,
                                           BruTileLayerPlugin.Settings.MemoryCacheMaximum,
                                           TileCache);
        }
Пример #17
0
    private bool GetMap(string url, string version, string layer, int minLevel, int maxLevel, string imageType, out ITileSource tileSource)
    {
        if (string.IsNullOrEmpty(imageType))
        {
            tileSource = null;
            return(false);
        }

        var schema = new GlobalSphericalMercator(imageType, YAxis.OSM, minLevel, maxLevel);

        schema.Validate();
        var request = new WmscRequest(new Uri(url), schema,
                                      layers: new[] { layer }.ToList(),
                                      styles: new[] { "" }.ToList(),
                                      version: version);
        var provider = new HttpTileProvider(request);

        tileSource = new TileSource(provider, schema);
        return(tileSource != null);
    }
Пример #18
0
        private bool GetMap(string url, string version, string layer, GeographicBounds bounds, string imageType, out ITileSource tileSource)
        {
            if (string.IsNullOrEmpty(imageType))
            {
                tileSource = null;
                return(false);
            }

            Extent extent = new Extent(bounds.MinimumCoordinates.Longitude, bounds.MinimumCoordinates.Latitude, bounds.MaximumCoordinates.Longitude, bounds.MaximumCoordinates.Latitude);
            var    schema = new GlobalSphericalMercator(imageType, YAxis.OSM, null, null, extent);

            schema.Validate();
            var request = new WmscRequest(new Uri(url), schema,
                                          layers: new[] { layer }.ToList(),
                                          styles: new[] { "" }.ToList(),
                                          version: version);
            var provider = new HttpTileProvider(request);

            tileSource = new TileSource(provider, schema);
            return(tileSource != null);
        }
 private void SafeRequest(WmscRequest request)
 {
     _url = ReflectionHelper.ReflectBaseUri(request).ToString();
     _layers = new List<string>(ReflectionHelper.ReflectListItems(request, "_layers"));
     _styles = new List<string>(ReflectionHelper.ReflectListItems(request, "_styles"));
     _customParameters = new Dictionary<string, string>(ReflectionHelper.ReflectDictionary(request, "_customParameters"));
     _version = ReflectionHelper.Reflect<string>(request, "_version");
 }
        /// <summary>
        /// Method called prior to any tile access
        /// </summary>
        public void Initialize()
        {
            if (_initialized) return;
            _initialized = true;

            var schema = RestoreSchema();
            var request = new WmscRequest(new Uri(_url), schema, _layers, _styles, _customParameters, _version);
            
            ITileProvider provider = new HttpTileProvider(request);
            TileSource = (WmscTileSource)Activator.CreateInstance(typeof(WmscTileSource), BindingFlags.NonPublic, schema, provider);
            TileCache = CreateTileCache();
            _tileFetcher = new TileFetcher(provider,
                                           BruTileLayerPlugin.Settings.MemoryCacheMinimum,
                                           BruTileLayerPlugin.Settings.MemoryCacheMaximum,
                                           TileCache);

        }