Пример #1
0
 private Image GetTileImage(string mbtilefile, string level, int col, int row)
 {
     if (File.Exists(mbtilefile))
     {
         var connectionString = string.Format("Data Source={0}", mbtilefile);
         var mbTileProvider   = new MbTileProvider(connectionString);
         var image            = mbTileProvider.GetTile(level, col, row);
         return(image);
     }
     return(null);
 }
        public void FirstTest()
        {
            // arrange
            var connectionString = string.Format("Data Source={0}", "cities.mbtile");
            var mbTileProvider   = new MbTileProvider(connectionString);

            // act
            var image = mbTileProvider.GetTile("0", 0, 0);

            // assert
            Assert.IsTrue(image != null);
        }
Пример #3
0
        public HttpResponseMessage Get(int level, int col, int row)
        {
            HttpResponseMessage response  = new HttpResponseMessage();
            var          fullPath         = System.Web.Hosting.HostingEnvironment.MapPath(@"~/App_Data/countries-raster.mbtiles");
            var          connectionString = string.Format("Data Source={0}", fullPath);
            var          mbTileProvider   = new MbTileProvider(connectionString);
            MemoryStream image            = mbTileProvider.GetTile(level, col, row);

            response.Content = new StreamContent(image); // this file stream will be closed by lower layers of web api for you once the response is completed.
            response.Content.Headers.ContentType = new MediaTypeHeaderValue("image/png");
            return(response);
        }
Пример #4
0
        private static byte[] FindInMbTilesTileSources(string layer, string level, int col, int row)
        {
            var mbtiledir = ConfigurationManager.AppSettings["MbTileDir"];

            var mbtiledb = mbtiledir + GetDataSource(layer);

            if (!File.Exists(mbtiledb))
            {
                return(null);
            }

            // todo: hoe werkt dit?
            var ymax = 1 << Int32.Parse(level);
            var y    = ymax - row - 1;

            var connectionString = string.Format("Data Source={0}", mbtiledb);
            var mbTileProvider   = new MbTileProvider(connectionString);

            return(mbTileProvider.GetTile(level, col, y));
        }