Exemple #1
0
 private void AddScaleToMap(double scale)
 {
     if (_parent != null && _parent.BaseMap == null)
     {
         _parent.AttachBaseMap((IBaseMapDefinition)_tileSet);
     }
     _tileSet.AddFiniteDisplayScale(scale);
     _edSvc.MarkDirty();
 }
        public void TestUnsupportedScaleOperations()
        {
            var tsd = ObjectFactory.CreateTileSetDefinition(new Version(3, 0, 0));

            tsd.SetXYZProviderParameters();

            ITileSetAbstract tsTileSet = tsd;

            Assert.False(tsTileSet.SupportsCustomFiniteDisplayScalesUnconditionally);
            Assert.False(tsTileSet.SupportsCustomFiniteDisplayScales);

            Assert.Throws <InvalidOperationException>(() => tsTileSet.SetFiniteDisplayScales(new double[] { 1.0, 2.0, 4.0 }));
            Assert.Throws <InvalidOperationException>(() => { var x = tsTileSet.ScaleCount; });
            Assert.Throws <InvalidOperationException>(() => tsTileSet.SetFiniteDisplayScales(new double[] { 1.0, 2.0, 4.0, 8.0, 16.0 }));
            Assert.Throws <InvalidOperationException>(() => tsTileSet.GetScaleAt(0));
            Assert.Throws <InvalidOperationException>(() => tsTileSet.RemoveScaleAt(3));
            Assert.Throws <InvalidOperationException>(() => tsTileSet.RemoveFiniteDisplayScale(1.2));
            Assert.Throws <InvalidOperationException>(() => tsTileSet.RemoveAllScales());
            Assert.Throws <InvalidOperationException>(() => tsTileSet.AddFiniteDisplayScale(1234.0));
        }
        public void FiniteScalesTest()
        {
            var mdf = ObjectFactory.CreateMapDefinition(new Version(3, 0, 0), "Test");
            var tsd = ObjectFactory.CreateTileSetDefinition(new Version(3, 0, 0));

            mdf.InitBaseMap();
            tsd.SetDefaultProviderParameters(300, 300, "", new double[] { });

            ITileSetAbstract tsMapDef  = mdf.BaseMap;
            ITileSetAbstract tsTileSet = tsd;

            Assert.False(tsTileSet.SupportsCustomFiniteDisplayScalesUnconditionally);
            Assert.True(tsTileSet.SupportsCustomFiniteDisplayScales);

            tsMapDef.SetFiniteDisplayScales(new double[] { 1.0, 2.0, 4.0 });
            tsTileSet.SetFiniteDisplayScales(new double[] { 1.0, 2.0, 4.0 });

            Assert.Equal(3, tsMapDef.ScaleCount);
            Assert.Equal(3, tsTileSet.ScaleCount);

            tsMapDef.SetFiniteDisplayScales(new double[] { 1.0, 2.0, 4.0, 8.0, 16.0 });
            tsTileSet.SetFiniteDisplayScales(new double[] { 1.0, 2.0, 4.0, 8.0, 16.0 });

            Assert.Equal(5, tsMapDef.ScaleCount);
            Assert.Equal(5, tsTileSet.ScaleCount);

            Assert.Equal(1.0, tsMapDef.GetScaleAt(0));
            Assert.Equal(1.0, tsTileSet.GetScaleAt(0));

            Assert.Equal(2.0, tsMapDef.GetScaleAt(1));
            Assert.Equal(2.0, tsTileSet.GetScaleAt(1));

            Assert.Equal(4.0, tsMapDef.GetScaleAt(2));
            Assert.Equal(4.0, tsTileSet.GetScaleAt(2));

            Assert.Equal(8.0, tsMapDef.GetScaleAt(3));
            Assert.Equal(8.0, tsTileSet.GetScaleAt(3));

            Assert.Equal(16.0, tsMapDef.GetScaleAt(4));
            Assert.Equal(16.0, tsTileSet.GetScaleAt(4));

            tsMapDef.RemoveScaleAt(3);
            tsTileSet.RemoveScaleAt(3);

            Assert.Equal(1.0, tsMapDef.GetScaleAt(0));
            Assert.Equal(1.0, tsTileSet.GetScaleAt(0));

            Assert.Equal(2.0, tsMapDef.GetScaleAt(1));
            Assert.Equal(2.0, tsTileSet.GetScaleAt(1));

            Assert.Equal(4.0, tsMapDef.GetScaleAt(2));
            Assert.Equal(4.0, tsTileSet.GetScaleAt(2));

            Assert.Equal(16.0, tsMapDef.GetScaleAt(3));
            Assert.Equal(16.0, tsTileSet.GetScaleAt(3));

            tsMapDef.RemoveScaleAt(0);
            tsTileSet.RemoveScaleAt(0);

            Assert.Equal(2.0, tsMapDef.GetScaleAt(0));
            Assert.Equal(2.0, tsTileSet.GetScaleAt(0));

            Assert.Equal(4.0, tsMapDef.GetScaleAt(1));
            Assert.Equal(4.0, tsTileSet.GetScaleAt(1));

            Assert.Equal(16.0, tsMapDef.GetScaleAt(2));
            Assert.Equal(16.0, tsTileSet.GetScaleAt(2));

            tsMapDef.RemoveScaleAt(2);
            tsTileSet.RemoveScaleAt(2);

            Assert.Equal(2.0, tsMapDef.GetScaleAt(0));
            Assert.Equal(2.0, tsTileSet.GetScaleAt(0));

            Assert.Equal(4.0, tsMapDef.GetScaleAt(1));
            Assert.Equal(4.0, tsTileSet.GetScaleAt(1));

            Assert.Equal(2.0, tsMapDef.GetMinScale());
            Assert.Equal(2.0, tsTileSet.GetMinScale());

            tsMapDef.RemoveFiniteDisplayScale(1.2);
            tsTileSet.RemoveFiniteDisplayScale(1.2);

            Assert.Equal(2.0, tsMapDef.GetScaleAt(0));
            Assert.Equal(2.0, tsTileSet.GetScaleAt(0));

            Assert.Equal(4.0, tsMapDef.GetScaleAt(1));
            Assert.Equal(4.0, tsTileSet.GetScaleAt(1));

            Assert.Throws <ArgumentOutOfRangeException>(() => tsMapDef.RemoveScaleAt(6));
            Assert.Throws <ArgumentOutOfRangeException>(() => tsTileSet.RemoveScaleAt(6));

            Assert.Equal(2.0, tsMapDef.GetScaleAt(0));
            Assert.Equal(2.0, tsTileSet.GetScaleAt(0));

            Assert.Equal(4.0, tsMapDef.GetScaleAt(1));
            Assert.Equal(4.0, tsTileSet.GetScaleAt(1));

            tsMapDef.AddFiniteDisplayScale(3.0);
            tsTileSet.AddFiniteDisplayScale(3.0);

            Assert.Equal(3, tsMapDef.ScaleCount);
            Assert.Equal(3, tsTileSet.ScaleCount);

            Assert.Equal(3.0, tsMapDef.GetScaleAt(1));
            Assert.Equal(3.0, tsTileSet.GetScaleAt(1));

            tsMapDef.RemoveAllScales();
            tsTileSet.RemoveAllScales();

            Assert.Equal(0, tsMapDef.ScaleCount);
            Assert.Equal(0, tsTileSet.ScaleCount);
        }