Ejemplo n.º 1
0
        public async Task <Tuple <TileInfo, GeoReferencedImage> > GetTile(TileInfo tile, double mapScale)
        {
            try
            {
                WiseWebClient client = new WiseWebClient(50);
                client.Headers.Add("user-agent", "App!");

                //var zoom = GetZoomLevel(mapScale);
                var zoom = IRI.Ham.SpatialBase.Mapping.WebMercatorUtility.GetZoomLevel(mapScale);

                //google map
                var url = $@"https://mt0.google.com/vt?x={tile.ColumnNumber}&y={tile.RowNumber}&z={tile.ZoomLevel}";

                ////google terrain
                //var url = $@"http://mt1.google.com/vt/lyrs=t@131,r@176163100&hl=en&x={tile.ColumnNumber}&y={tile.RowNumber}&z={tile.ZoomLevel}";

                var byteImage = await client.DownloadDataTaskAsync(url);

                System.IO.File.WriteAllBytes($@"C:\Users\Hossein\Desktop\New folder (3)\map{tile.RowNumber}.{tile.ColumnNumber}.{tile.ZoomLevel}.png", byteImage);

                return(new Tuple <TileInfo, GeoReferencedImage>(tile, new GeoReferencedImage(byteImage, tile.WebMercatorExtent.Transform(MapProjects.WebMercatorToGeodeticWgs84))));
            }
            catch (Exception)
            {
                return(null);
            }
        }
Ejemplo n.º 2
0
        public async Task <GeoReferencedImage> DownloadTileAsync(TileInfo tile, WebProxy proxy)
        {
            try
            {
                if (IsOffline && _mapProvider.RequireInternetConnection)
                {
                    return(GetNotFoundImage(tile));
                }

                WiseWebClient client = new WiseWebClient(30);

                if (proxy != null)
                {
                    client.Proxy = proxy;
                }

                client.Headers.Add("user-agent", "App!");

                //var zoom = IRI.Msh.Common.Mapping.GoogleMapsUtility.GetGoogleZoomLevel(mapScale);

                //google map
                //var url = $@"https://mt0.google.com/vt?x={tile.ColumnNumber}&y={tile.RowNumber}&z={tile.ZoomLevel}";

                ////google terrain
                //var url = $@"http://mt1.google.com/vt/lyrs=t@131,r@176163100&hl=en&x={tile.ColumnNumber}&y={tile.RowNumber}&z={tile.ZoomLevel}";

                //var url = TileServices.MapProviderFactory.GetUrl(_cache.Provider, _cache.Type, tile);
                var url = this._mapProvider.GetUrl(tile);

                if (url == null)
                {
                    return(GetNotFoundImage(tile));
                }

                System.Diagnostics.Debug.WriteLine("Getting Tile at " + url);

                var byteImage = await client.DownloadDataTaskAsync(url);

                if (IRI.Jab.Common.Helpers.ImageUtility.ToImage(byteImage) == null)
                {
                    return(GetNotFoundImage(tile));
                }

                //return new GeoReferencedImage(byteImage, tile.MercatorExtent.Transform(i => MapProjects.MercatorToGeodetic(i)));
                return(new GeoReferencedImage(byteImage, tile.GeodeticExtent));
            }
            catch (Exception ex)
            {
                //var byteImage = IRI.Jab.Common.Helpers.ImageUtility.AsByteArray(Properties.Resources.imageNotFound);

                //return new GeoReferencedImage(byteImage, tile.MercatorExtent.Transform(i => Projection.MercatorToGeodetic(i)), false);
                return(GetNotFoundImage(tile));
            }
        }
Ejemplo n.º 3
0
        public async Task <GeoReferencedImage> GetTile(BoundingBox mbb, double mapScale)
        {
            WiseWebClient client = new WiseWebClient(50);

            var center = MapProjects.WebMercatorToGeodeticWgs84(mbb.Center);

            var zoom = IRI.Ham.SpatialBase.Mapping.WebMercatorUtility.GetZoomLevel(mapScale);

            var url = $@"https://maps.googleapis.com/maps/api/staticmap?center={center.Y},{center.X}&zoom={zoom}&size=256x256&maptype=roadmap&key=AIzaSyASDX3dnoItXvimcgmsfNgw3J2piODjx9E";

            var byteImage = await client.DownloadDataTaskAsync(url);

            return(new GeoReferencedImage(byteImage, mbb.Transform(MapProjects.WebMercatorToGeodeticWgs84)));
        }
Ejemplo n.º 4
0
        public GeoReferencedImage DownloadTile(TileInfo tile, WebProxy proxy)
        {
            try
            {
                if (IsOffline && _mapProvider.RequireInternetConnection)
                {
                    return(GetNotFoundImage(tile));
                }

                WiseWebClient client = new WiseWebClient(3000);

                if (proxy != null)
                {
                    client.Proxy = proxy;
                }

                client.Headers.Add("user-agent", "App!");

                //var zoom = IRI.Msh.Common.Mapping.GoogleMapsUtility.GetGoogleZoomLevel(mapScale);

                //google map
                //var url = $@"https://mt0.google.com/vt?x={tile.ColumnNumber}&y={tile.RowNumber}&z={tile.ZoomLevel}";

                ////google terrain
                //var url = $@"http://mt1.google.com/vt/lyrs=t@131,r@176163100&hl=en&x={tile.ColumnNumber}&y={tile.RowNumber}&z={tile.ZoomLevel}";

                //var url = TileServices.MapProviderFactory.GetUrl(_cache.Provider, _cache.Type, tile);
                var url = _mapProvider.GetUrl(tile);

                if (url == null)
                {
                    return(GetNotFoundImage(tile));
                }

                var byteImage = client.DownloadData(url);

                return(new GeoReferencedImage(byteImage, tile.GeodeticExtent));
            }
            catch (Exception ex)
            {
                //var byteImage = IRI.Jab.Common.Helpers.ImageUtility.AsByteArray(IRI.Jab.Common.Properties.Resources.imageNotFound);

                return(GetNotFoundImage(tile));
            }
        }