Пример #1
0
        /// <summary>
        /// Aggregates lower level DEM tiles to construct upper level tiles.
        /// </summary>
        /// <param name="level">
        /// Zoom level.
        /// </param>
        /// <param name="tileX">
        /// X coordinate.
        /// </param>
        /// <param name="tileY">
        /// Y coordinate.
        /// </param>
        public void CreateParent(int level, int tileX, int tileY)
        {
            int level1 = checked (level + 1);
            int x1     = checked (2 * tileX);
            int y1     = checked (2 * tileY);

            short[][] h = new short[4][];
            h[2] = this.tileSerializer.Deserialize(level1, x1, y1);
            h[3] = this.tileSerializer.Deserialize(level1, x1 + 1, y1);
            h[0] = this.tileSerializer.Deserialize(level1, x1, y1 + 1);
            h[1] = this.tileSerializer.Deserialize(level1, x1 + 1, y1 + 1);

            int[][] mapping = MercatorDemTileCreator.GetMapping();
            short[] hp      = new short[mapping.Length];
            for (int k = 0; k < mapping.Length; k++)
            {
                int[] m = mapping[k];
                if (m != null)
                {
                    int region   = m[0];
                    int position = m[1];
                    if (h[region] != null)
                    {
                        hp[k] = h[region][position];
                    }
                    else
                    {
                        hp[k] = 0;
                    }
                }
                else
                {
                    hp[k] = 0;
                }
            }

            this.tileSerializer.Serialize(hp, level, tileX, tileY);
        }
 public void InvalidateDEMSMercatorSerializerTestForNull()
 {
     // Get Values from XML File
     string expectedError = utilityObj.XmlUtil.GetTextValue(Constants.MercDemSerializerTestNode, Constants.ExpectedErrorNode);
     string destinationPath = Path.Combine(Environment.CurrentDirectory, fileTemplate);
     DemTileSerializer demTileSerializer = new DemTileSerializer(destinationPath);
     MercatorDemTileCreator merc = null;
     try
     {
         merc = new MercatorDemTileCreator(null, demTileSerializer);
         Assert.Fail();
     }
     catch (ArgumentNullException ex)
     {
         string message = ex.Message;
         Assert.IsNull(merc);
         Assert.AreEqual(expectedError, message.Replace("\r", string.Empty).Replace("\n", string.Empty));
     }
 }