/// <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)); } }