public void HasSameConfiguration_ForInitializedLayer_ReturnTrue()
        {
            // Setup
            var mocks       = new MockRepository();
            var tileFetcher = mocks.Stub <ITileFetcher>();

            using (var layerStatus = new WellKnownBackgroundLayerStatus())
            {
                IConfiguration configuration = CreateStubConfiguration(mocks, tileFetcher);
                mocks.ReplayAll();

                using (var layer = new BruTileLayer(configuration))
                {
                    var source   = new Random(789).NextEnum <WellKnownTileSource>();
                    var mapData1 = new WellKnownTileSourceMapData(source);
                    var mapData2 = new WellKnownTileSourceMapData(source);

                    layerStatus.LayerInitializationSuccessful(layer, mapData1);

                    // Call
                    bool isSame = layerStatus.HasSameConfiguration(mapData2);

                    // Assert
                    Assert.IsTrue(isSame, "Should recognize same configuration even if instance is not the same.");
                }
            }

            mocks.VerifyAll();
        }
Exemple #2
0
        public override void OnClick()
        {
            try
            {
                var mxdoc = (IMxDocument)_application.Document;

                _map = mxdoc.FocusMap;

                var addWmsCForm = new AddWmsCForm();
                var result      = addWmsCForm.ShowDialog(new ArcMapWindow(_application));

                if (result == DialogResult.OK)
                {
                    var tileSource = addWmsCForm.SelectedTileSource;

                    IConfig configWmsC   = new ConfigWmsC(tileSource);
                    var     brutileLayer = new BruTileLayer(_application, configWmsC)
                    {
                        Name    = configWmsC.CreateTileSource().Schema.Name,
                        Visible = true
                    };
                    _map.AddLayer(brutileLayer);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
Exemple #3
0
        public frmMain()
        {
            InitializeComponent();

            uxMap.Projection = KnownCoordinateSystems.Projected.World.WebMercator;
            uxMap.BackColor  = Color.FromArgb(181, 208, 208);

            backgroundLayer = BruTileLayer.CreateOsmLayer();
            uxMap.Layers.Add(backgroundLayer);

            pseudoAisPort.LogFilePath   = Application.StartupPath + "\\AIS.log";
            pseudoAisPort.DataReceived += new EventHandler <SerialDataReceivedEventArgs>(pseudoAisPortDataReceived);

            refreshTimer.Enabled  = false;
            refreshTimer.Interval = 1500;
            refreshTimer.Tick    += new EventHandler(refreshTimerTick);

            helper       = new AISHelper(uxMap.Projection);
            vesselsLayer = helper.VesselsLayer;
            uxMap.MapFrame.Add(vesselsLayer);

            uxMap.ViewExtents = new Extent(1642982.27031471, 4063251.12000095, 3802748.48786722, 5126261.05520257);

            if (DotSpatial.Plugins.AISViewer.Properties.Settings.Default.UsePseudoPort)
            {
                pseudoAisPort.Open();
            }
            else
            {
                aisPort.Open();
            }

            refreshTimer.Enabled = true;
        }
        private void AddGisCloudLayers(IEnumerable <GISCloudLayer> gisCloudLayers)
        {
            var layerType = EnumBruTileLayer.Giscloud;
            var mxdoc     = (IMxDocument)_application.Document;
            var map       = mxdoc.FocusMap;

            foreach (var gisCloudLayer in gisCloudLayers)
            {
                var config       = new ConfigGisCloud(gisCloudLayer.TileUrl, gisCloudLayer.LayerId, gisCloudLayer.Format);
                var brutileLayer = new BruTileLayer(_application, config, layerType)
                {
                    Name    = gisCloudLayer.Name,
                    Visible = gisCloudLayer.LayerIsVisible
                };
                brutileLayer.Visible = gisCloudLayer.LayerIsVisible;
                var envelope = new EnvelopeClass
                {
                    XMin             = gisCloudLayer.Xmin,
                    XMax             = gisCloudLayer.Xmax,
                    YMin             = gisCloudLayer.Ymin,
                    YMax             = gisCloudLayer.Ymax,
                    SpatialReference = brutileLayer.SpatialReference
                };
                brutileLayer.Extent = envelope;
                ((IMapLayers)map).InsertLayer(brutileLayer, true, 0);
            }
        }
        public void LayerInitializationSuccessful_InitializationPreviouslyFailed_PreviousBackgroundLayerCreationFailedFalse()
        {
            // Setup
            var            mocks         = new MockRepository();
            var            tileFetcher   = mocks.Stub <ITileFetcher>();
            IConfiguration configuration = CreateStubConfiguration(mocks, tileFetcher);

            mocks.ReplayAll();

            using (var layer = new BruTileLayer(configuration))
                using (var layerStatus = new WmtsBackgroundLayerStatus())
                {
                    layerStatus.LayerInitializationFailed();

                    // Precondition
                    Assert.IsTrue(layerStatus.PreviousBackgroundLayerCreationFailed);

                    WmtsMapData mapData = WmtsMapDataTestHelper.CreateDefaultPdokMapData();

                    // Call
                    layerStatus.LayerInitializationSuccessful(layer, mapData);

                    // Assert
                    Assert.IsFalse(layerStatus.PreviousBackgroundLayerCreationFailed);
                }
        }
Exemple #6
0
        public void HasSameConfiguration_LayerInitializedSameMapDataType_ReturnFalse(ImageBasedMapData mapData1, ImageBasedMapData mapData2)
        {
            // Setup
            var            mocks         = new MockRepository();
            var            tileFetcher   = mocks.Stub <ITileFetcher>();
            IConfiguration configuration = CreateStubConfiguration(mocks, tileFetcher);

            mocks.ReplayAll();

            using (var layerStatus = new MapControlBackgroundLayerStatus())
            {
                using (var layer = new BruTileLayer(configuration))
                {
                    layerStatus.LayerInitializationSuccessful(layer, mapData1);

                    // Call
                    bool isSame = layerStatus.HasSameConfiguration(mapData2);

                    // Assert
                    Assert.IsTrue(isSame, "Should recognize same configuration even if instance is not the same.");
                }
            }

            mocks.VerifyAll();
        }
        public void HasSameConfiguration_ForDifferentInitializedLayer_ReturnFalse(WmtsMapData otherData)
        {
            // Setup
            var mocks       = new MockRepository();
            var tileFetcher = mocks.Stub <ITileFetcher>();

            using (var layerStatus = new WmtsBackgroundLayerStatus())
            {
                IConfiguration configuration = CreateStubConfiguration(mocks, tileFetcher);
                mocks.ReplayAll();

                using (var layer = new BruTileLayer(configuration))
                {
                    WmtsMapData mapData = WmtsMapDataTestHelper.CreateDefaultPdokMapData();

                    layerStatus.LayerInitializationSuccessful(layer, mapData);

                    // Call
                    bool isSame = layerStatus.HasSameConfiguration(otherData);

                    // Assert
                    Assert.IsFalse(isSame);
                }
            }

            mocks.VerifyAll();
        }
        public void HasSameConfiguration_ForInitializedLayer_ReturnTrue()
        {
            // Setup
            var mocks       = new MockRepository();
            var tileFetcher = mocks.Stub <ITileFetcher>();

            using (var layerStatus = new WmtsBackgroundLayerStatus())
            {
                IConfiguration configuration = CreateStubConfiguration(mocks, tileFetcher);
                mocks.ReplayAll();

                using (var layer = new BruTileLayer(configuration))
                {
                    WmtsMapData mapData1 = WmtsMapDataTestHelper.CreateDefaultPdokMapData();
                    WmtsMapData mapData2 = WmtsMapDataTestHelper.CreateDefaultPdokMapData();

                    layerStatus.LayerInitializationSuccessful(layer, mapData1);

                    // Call
                    bool isSame = layerStatus.HasSameConfiguration(mapData2);

                    // Assert
                    Assert.IsTrue(isSame,
                                  "Should recognize same configuration even if instance is not the same.");
                }
            }

            mocks.VerifyAll();
        }
Exemple #9
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            var l = BruTileLayer.CreateOsmMapnicLayer();

            l.Reproject(map.Projection);
            map.Layers.Add(l);
        }
 private void removeBINGSatelliteImageryToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (frmMain.lyrBingSatellite != null && theMap.Layers.Contains(frmMain.lyrBingSatellite))
     {
         theMap.Layers.Remove(frmMain.lyrBingSatellite);
     }
     frmMain.lyrBingSatellite.Dispose();
     frmMain.lyrBingSatellite = null;
 }
Exemple #11
0
        protected override void OnLayerInitializationSuccessful(BruTileLayer backgroundLayer, ImageBasedMapData dataSource)
        {
            if (backgroundLayerStatus == null || !backgroundLayerStatus.HasSameConfiguration(dataSource))
            {
                backgroundLayerStatus = BackgroundLayerStatusFactory.CreateBackgroundLayerStatus(dataSource);
            }

            backgroundLayerStatus.LayerInitializationSuccessful(backgroundLayer, dataSource);
        }
Exemple #12
0
        public static BruTileLayer GetWmtsLayer(IApplication _application, ITileSource tileSource, string LayerName)
        {
            var brutileLayer = new BruTileLayer(_application, tileSource)
            {
                Name    = LayerName,
                Visible = true
            };

            return(brutileLayer);
        }
        private void HandleAddBrutileLayer(object sender, AddBruTileLayerEventArgs e)
        {
            if (Map == null)
                return;

            //DotSpatial.Projections.KnownCoordinateSystems.Projected.w
            var l = new BruTileLayer(e.BruTileLayerConfiguration);
            l.Reproject(Map.Projection);
            Map.Layers.Insert(0, l);
        }
        private void HandleAddBrutileLayer(object sender, AddBruTileLayerEventArgs e)
        {
            if (Map == null)
            {
                return;
            }

            //DotSpatial.Projections.KnownCoordinateSystems.Projected.w
            var l = new BruTileLayer(e.BruTileLayerConfiguration);

            l.Reproject(Map.Projection);
            Map.Layers.Insert(0, l);
        }
        /// <summary>
        /// Marks that a (new) background layer has successfully been initialized.
        /// </summary>
        /// <param name="backgroundLayer">The constructed layer.</param>
        /// <param name="dataSource">The data used to construct <paramref name="backgroundLayer"/>.</param>
        /// <exception cref="ArgumentNullException">Thrown when any of the input parameters is <c>null</c>.</exception>
        public void LayerInitializationSuccessful(BruTileLayer backgroundLayer, ImageBasedMapData dataSource)
        {
            if (backgroundLayer == null)
            {
                throw new ArgumentNullException(nameof(backgroundLayer));
            }

            if (dataSource == null)
            {
                throw new ArgumentNullException(nameof(dataSource));
            }

            OnLayerInitializationSuccessful(backgroundLayer, dataSource);
        }
Exemple #16
0
        protected override void OnLayerInitializationSuccessful(BruTileLayer backgroundLayer, ImageBasedMapData dataSource)
        {
            var wellKnownTileSourceMapData = dataSource as WellKnownTileSourceMapData;

            if (wellKnownTileSourceMapData == null)
            {
                PreviousBackgroundLayerCreationFailed = true;
                return;
            }

            wellKnownTileSource = wellKnownTileSourceMapData.TileSource;

            BackgroundLayer = backgroundLayer;
            PreviousBackgroundLayerCreationFailed = false;
        }
Exemple #17
0
        public static BruTileLayer GetWmtsLayer(IApplication _application, string format, string capabilitiesUrl, string LayerName, string LayerId)
        {
            var httpClient  = new HttpClient();
            var stream      = httpClient.GetStreamAsync(capabilitiesUrl).Result;
            var tileSources = WmtsParser.Parse(stream);
            var tileSource  = (from a in tileSources where ((WmtsTileSchema)a.Schema).Layer == LayerId select a).FirstOrDefault();

            tileSource.Schema.Format = format;

            var brutileLayer = new BruTileLayer(_application, tileSource)
            {
                Name    = LayerName,
                Visible = true
            };

            return(brutileLayer);
        }
Exemple #18
0
        protected override void OnLayerInitializationSuccessful(BruTileLayer backgroundLayer, ImageBasedMapData dataSource)
        {
            var wmtsDataSource = dataSource as WmtsMapData;

            if (wmtsDataSource == null)
            {
                PreviousBackgroundLayerCreationFailed = true;
                return;
            }

            sourceCapabilitiesUrl = wmtsDataSource.SourceCapabilitiesUrl;
            selectedCapabilityId  = wmtsDataSource.SelectedCapabilityIdentifier;
            preferredFormat       = wmtsDataSource.PreferredFormat;

            BackgroundLayer = backgroundLayer;
            PreviousBackgroundLayerCreationFailed = false;
        }
Exemple #19
0
        public override void OnClick()
        {
            var url         = "http://{s}.map.naver.net/get/29/0/0/{z}/{x}/{y}/bl_st_bg/ol_st_rd/ol_st_an";
            var naverconfig = new NaverConfig("Naver Hybrid", url);

            var layerType = EnumBruTileLayer.InvertedTMS;
            var mxdoc     = (IMxDocument)_application.Document;
            var map       = mxdoc.FocusMap;

            var brutileLayer = new BruTileLayer(_application, naverconfig, layerType)
            {
                Name    = "Naver Hybrid",
                Visible = true
            };

            ((IMapLayers)map).InsertLayer(brutileLayer, true, 0);
        }
Exemple #20
0
        public override void OnClick()
        {
            var url = "https://sat{s}.maps.yandex.net/tiles?l=sat&v=4.84.0&x={x}&y={y}&z={z}";

            var yandexConfig = new YandexConfig("map", url);

            var layerType = EnumBruTileLayer.InvertedTMS;
            var mxdoc     = (IMxDocument)_application.Document;
            var map       = mxdoc.FocusMap;

            var brutileLayer = new BruTileLayer(_application, yandexConfig, layerType)
            {
                Name    = "Yandex - Satellite",
                Visible = true
            };

            ((IMapLayers)map).InsertLayer(brutileLayer, true, 0);
        }
        public override void OnClick()
        {
            var url = "http://webst03.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&style=6";

            var nokiaConfig = new NokiaConfig("AutoNavi Satellite", url);

            var layerType = EnumBruTileLayer.InvertedTMS;
            var mxdoc     = (IMxDocument)_application.Document;
            var map       = mxdoc.FocusMap;

            var brutileLayer = new BruTileLayer(_application, nokiaConfig, layerType)
            {
                Name    = "AutoNavi Satellite",
                Visible = true
            };

            ((IMapLayers)map).InsertLayer(brutileLayer, true, 0);
        }
Exemple #22
0
        public override void OnClick()
        {
            var url = "https://{s}.base.maps.cit.api.here.com/maptile/2.1/maptile/newest/normal.day/{z}/{x}/{y}/256/png8?app_id=xWVIueSv6JL0aJ5xqTxb&app_code=djPZyynKsbTjIUDOBcHZ2g";

            var nokiaConfig = new NokiaConfig("Streets", url);

            var layerType = EnumBruTileLayer.InvertedTMS;
            var mxdoc     = (IMxDocument)_application.Document;
            var map       = mxdoc.FocusMap;

            var brutileLayer = new BruTileLayer(_application, nokiaConfig, layerType)
            {
                Name    = "Nokia HERE - Streets",
                Visible = true
            };

            ((IMapLayers)map).InsertLayer(brutileLayer, true, 0);
        }
Exemple #23
0
        public void Create_ValidData_ReturnBruTileLayer(ImageBasedMapData mapData)
        {
            // Setup
            using (new UseCustomSettingsHelper(new TestSettingsHelper
            {
                ApplicationLocalUserSettingsDirectory = Path.Combine(TestHelper.GetScratchPadPath(), nameof(ImageBasedMapDataLayerFactoryTest))
            }))
                using (new DirectoryDisposeHelper(TestHelper.GetScratchPadPath(), nameof(ImageBasedMapDataLayerFactoryTest)))
                    using (new UseCustomTileSourceFactoryConfig(mapData))
                    {
                        // Call
                        BruTileLayer layer = ImageBasedMapDataLayerFactory.Create(mapData);

                        // Assert
                        Assert.AreEqual(mapData.Transparency.Value, layer.Transparency);
                        Assert.AreEqual(mapData.IsVisible, layer.IsVisible);
                    }
        }
Exemple #24
0
        public override void OnClick()
        {
            var url = "http://s{s}.maps.daum-img.net/L{z}/{y}/{x}.jpg";

            var daumConfig = new DaumConfig("Satellite", url);

            var layerType = EnumBruTileLayer.InvertedTMS;
            var mxdoc     = (IMxDocument)_application.Document;
            var map       = mxdoc.FocusMap;

            var brutileLayer = new BruTileLayer(_application, daumConfig, layerType)
            {
                Name    = "Satellite",
                Visible = true
            };

            ((IMapLayers)map).InsertLayer(brutileLayer, true, 0);
        }
Exemple #25
0
        public override void OnClick()
        {
            try
            {
                var mxdoc        = (IMxDocument)_application.Document;
                var map          = mxdoc.FocusMap;
                var brutileLayer = new BruTileLayer(_application, _enumBruTileLayer)
                {
                    Name    = m_name,
                    Visible = true
                };

                map.AddLayer(brutileLayer);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
Exemple #26
0
        public override void OnClick()
        {
            var addTileServiceForm = new AddTileServiceForm();
            var dr = addTileServiceForm.ShowDialog(new ArcMapWindow(_application));

            if (dr == DialogResult.OK)
            {
                // todo add subdomains, auth
                // sample url: "https://tiles.shipmap.org/tiles/5/28/17.png";
                //var url = "http://tiles.shipmap.org/tiles/{z}/{x}/{y}.png";
                // var url = "https://2.aerial.maps.api.here.com/maptile/2.1/maptile/newest/hybrid.day.transit/{z}/{x}/{y}/512/png8?app_id=xWVIueSv6JL0aJ5xqTxb&app_code=djPZyynKsbTjIUDOBcHZ2g";
                // var url = "https://[abc].tile.thunderforest.com/cycle/{z}/{x}/{y}.png";
                // var url = "http://globalheat.strava.com/tiles/cycling/color3/{z}/{x}/{y}.png"
                // var url = "http://[abc].tile.openstreetmap.org/{z}/{x}/{y}.png"
                // var name = "shipmap";

                var url  = addTileServiceForm.Url;
                var name = addTileServiceForm.Name;

                var layerType = EnumBruTileLayer.InvertedTMS;
                var mxdoc     = (IMxDocument)_application.Document;
                var map       = mxdoc.FocusMap;

                var tileLayerConfig = new TileLayerConfig(name, url);
                if (url.Contains("[") && url.Contains("]"))
                {
                    var start      = url.IndexOf('[') + 1;
                    var end        = url.IndexOf(']') - start;
                    var substring  = url.Substring(start, end);
                    var serverList = substring.Select(c => c.ToString()).ToList();
                    url                     = url.Replace("[" + substring + "]", "{s}");
                    tileLayerConfig         = new TileLayerConfig(name, url);
                    tileLayerConfig.Domains = serverList;
                }

                var brutileLayer = new BruTileLayer(_application, tileLayerConfig, layerType)
                {
                    Name    = name,
                    Visible = true
                };
                ((IMapLayers)map).InsertLayer(brutileLayer, true, 0);
            }
        }
Exemple #27
0
        public override void OnClick()
        {
            try
            {
                var mxdoc = (IMxDocument)_application.Document;
                var map   = mxdoc.FocusMap;

                var addServicesForm = new AddServicesForm();

                var result = addServicesForm.ShowDialog(new ArcMapWindow(_application));
                if (result == DialogResult.OK)
                {
                    var selectedService = addServicesForm.SelectedService;

                    // Fix the service labs.metacarta.com bug: it doubles the version :-(
                    selectedService.Href = selectedService.Href.Replace(@"1.0.0/1.0.0", @"1.0.0").Trim();


                    var layerType = EnumBruTileLayer.TMS;

                    // If the type is inverted TMS we have to do something special
                    if (selectedService.Type != null)
                    {
                        if (selectedService.Type == "InvertedTMS")
                        {
                            layerType = EnumBruTileLayer.InvertedTMS;
                        }
                    }

                    var brutileLayer = new BruTileLayer(_application, layerType, selectedService.Href, selectedService.OverwriteUrls)
                    {
                        Name    = selectedService.Title,
                        Visible = true
                    };
                    map.AddLayer(brutileLayer);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
        public override void OnClick()
        {
            var key = _auth != null?AuthKeyRetriever.GetAuthKey(_auth) : null;

            try
            {
                var mxdoc        = (IMxDocument)_application.Document;
                var map          = mxdoc.FocusMap;
                var brutileLayer = new BruTileLayer(_application, _enumBruTileLayer, _url, true, key)
                {
                    Name    = m_name,
                    Visible = true
                };
                ((IMapLayers)map).InsertLayer(brutileLayer, true, 0);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
Exemple #29
0
        public void LayerInitializationSuccessful_MapDataNull_ThrowArgumentNullException()
        {
            // Setup
            var            mocks         = new MockRepository();
            var            tileFetcher   = mocks.Stub <ITileFetcher>();
            IConfiguration configuration = CreateStubConfiguration(mocks, tileFetcher);

            mocks.ReplayAll();

            using (var layer = new BruTileLayer(configuration))
                using (var layerStatus = new SimpleBackgroundLayerStatus())
                {
                    // Call
                    TestDelegate call = () => layerStatus.LayerInitializationSuccessful(layer, null);

                    // Assert
                    string paramName = Assert.Throws <ArgumentNullException>(call).ParamName;
                    Assert.AreEqual("dataSource", paramName);
                }
        }
        public override void OnClick()
        {
            //var bruTileAboutBox = new BruTileAboutBox();
            //bruTileAboutBox.ShowDialog(new ArcMapWindow(_application));
            var mxdoc = (IMxDocument)_application.Document;
            var map   = mxdoc.FocusMap;

            var httpClient         = new HttpClient();
            var stream             = httpClient.GetStreamAsync("https://bertt.github.io/wmts/capabilities/michelin.xml").Result;
            var michelinTileSource = WmtsParser.Parse(stream).First();

            // todo: make dynamic
            michelinTileSource.Schema.Format = "png";
            var brutileLayer = new BruTileLayer(_application, michelinTileSource)
            {
                Name    = "Michelin",
                Visible = true
            };

            ((IMapLayers)map).InsertLayer(brutileLayer, true, 0);
        }
        public void LayerInitializationSuccessful_MapDataNotWellKnownMapData_SetCreationFailedTrue()
        {
            // Setup
            var            mocks         = new MockRepository();
            var            tileFetcher   = mocks.Stub <ITileFetcher>();
            IConfiguration configuration = CreateStubConfiguration(mocks, tileFetcher);

            mocks.ReplayAll();

            using (var layer = new BruTileLayer(configuration))
                using (var layerStatus = new WellKnownBackgroundLayerStatus())
                {
                    var mapData = new TestImageBasedMapData("test", true);

                    // Call
                    layerStatus.LayerInitializationSuccessful(layer, mapData);

                    // Assert
                    Assert.IsTrue(layerStatus.PreviousBackgroundLayerCreationFailed);
                }
        }