public virtual void LatitudeToPixelYTest() { foreach (int tileSize in TILE_SIZES) { for (sbyte zoomLevel = ZOOM_LEVEL_MIN; zoomLevel <= ZOOM_LEVEL_MAX; ++zoomLevel) { long mapSize = MercatorProjection.GetMapSize(zoomLevel, tileSize); double pixelY = MercatorProjection.LatitudeToPixelY(MercatorProjection.LATITUDE_MAX, mapSize); Assert.AreEqual(0, pixelY, 0); pixelY = MercatorProjection.LatitudeToPixelYWithScaleFactor(MercatorProjection.LATITUDE_MAX, MercatorProjection.ZoomLevelToScaleFactor(zoomLevel), tileSize); Assert.AreEqual(0, pixelY, 0); pixelY = MercatorProjection.LatitudeToPixelY(0, mapSize); Assert.AreEqual((float)mapSize / 2, pixelY, 0); pixelY = MercatorProjection.LatitudeToPixelYWithScaleFactor(0, MercatorProjection.ZoomLevelToScaleFactor(zoomLevel), tileSize); Assert.AreEqual((float)mapSize / 2, pixelY, 0); pixelY = MercatorProjection.LatitudeToPixelY(MercatorProjection.LATITUDE_MIN, mapSize); Assert.AreEqual(mapSize, pixelY, 0); pixelY = MercatorProjection.LatitudeToPixelYWithScaleFactor(MercatorProjection.LATITUDE_MIN, MercatorProjection.ZoomLevelToScaleFactor(zoomLevel), tileSize); Assert.AreEqual(mapSize, pixelY, 0); } } }
public virtual void PixelYToLatitudeTest() { foreach (int tileSize in TILE_SIZES) { for (sbyte zoomLevel = ZOOM_LEVEL_MIN; zoomLevel <= ZOOM_LEVEL_MAX; ++zoomLevel) { long mapSize = MercatorProjection.GetMapSize(zoomLevel, tileSize); double latitude = MercatorProjection.PixelYToLatitude(0, mapSize); Assert.AreEqual(MercatorProjection.LATITUDE_MAX, latitude, 0); latitude = MercatorProjection.PixelYToLatitudeWithScaleFactor(0, MercatorProjection.ZoomLevelToScaleFactor(zoomLevel), tileSize); Assert.AreEqual(MercatorProjection.LATITUDE_MAX, latitude, 0); latitude = MercatorProjection.PixelYToLatitude((float)mapSize / 2, mapSize); Assert.AreEqual(0, latitude, 0); mapSize = MercatorProjection.GetMapSizeWithScaleFactor(MercatorProjection.ZoomLevelToScaleFactor(zoomLevel), tileSize); latitude = MercatorProjection.PixelYToLatitudeWithScaleFactor((float)mapSize / 2, MercatorProjection.ZoomLevelToScaleFactor(zoomLevel), tileSize); Assert.AreEqual(0, latitude, 0); latitude = MercatorProjection.PixelYToLatitude(mapSize, mapSize); Assert.AreEqual(MercatorProjection.LATITUDE_MIN, latitude, 0); latitude = MercatorProjection.PixelYToLatitudeWithScaleFactor(mapSize, MercatorProjection.ZoomLevelToScaleFactor(zoomLevel), tileSize); Assert.AreEqual(MercatorProjection.LATITUDE_MIN, latitude, 0); } VerifyInvalidPixelYToLatitude(-1, (sbyte)0, tileSize); VerifyInvalidPixelYToLatitude(tileSize + 1, (sbyte)0, tileSize); } }
public virtual void ZoomLevelToScaleFactorTest() { for (sbyte zoomLevel = ZOOM_LEVEL_MIN; zoomLevel <= ZOOM_LEVEL_MAX; ++zoomLevel) { double scaleFactor = MercatorProjection.ZoomLevelToScaleFactor(zoomLevel); Assert.AreEqual(zoomLevel, MercatorProjection.ScaleFactorToZoomLevel(scaleFactor), 0.0001f); } }
public virtual void PixelYToTileYTest() { foreach (int tileSize in TILE_SIZES) { for (sbyte zoomLevel = ZOOM_LEVEL_MIN; zoomLevel <= ZOOM_LEVEL_MAX; ++zoomLevel) { Assert.AreEqual(0, MercatorProjection.PixelYToTileY(0, zoomLevel, tileSize)); Assert.AreEqual(0, MercatorProjection.PixelYToTileY(0, MercatorProjection.ZoomLevelToScaleFactor(zoomLevel), tileSize)); } } }
public virtual void GetMapSizeTest() { foreach (int tileSize in TILE_SIZES) { for (sbyte zoomLevel = ZOOM_LEVEL_MIN; zoomLevel <= ZOOM_LEVEL_MAX; ++zoomLevel) { long factor = (long)Math.Round(MercatorProjection.ZoomLevelToScaleFactor(zoomLevel)); Assert.AreEqual(tileSize * factor, MercatorProjection.GetMapSize(zoomLevel, tileSize)); Assert.AreEqual(MercatorProjection.GetMapSizeWithScaleFactor(MercatorProjection.ZoomLevelToScaleFactor(zoomLevel), tileSize), MercatorProjection.GetMapSize(zoomLevel, tileSize)); } VerifyInvalidGetMapSize((sbyte)-1, tileSize); } }
public virtual void TileYToLatitudeTest() { foreach (int tileSize in TILE_SIZES) { for (sbyte zoomLevel = ZOOM_LEVEL_MIN; zoomLevel <= ZOOM_LEVEL_MAX; ++zoomLevel) { double latitude = MercatorProjection.TileYToLatitude(0, zoomLevel); Assert.AreEqual(MercatorProjection.LATITUDE_MAX, latitude, 0); latitude = MercatorProjection.TileYToLatitude(0, MercatorProjection.ZoomLevelToScaleFactor(zoomLevel)); Assert.AreEqual(MercatorProjection.LATITUDE_MAX, latitude, 0); long tileY = MercatorProjection.GetMapSize(zoomLevel, tileSize) / tileSize; latitude = MercatorProjection.TileYToLatitude(tileY, zoomLevel); Assert.AreEqual(MercatorProjection.LATITUDE_MIN, latitude, 0); tileY = MercatorProjection.GetMapSizeWithScaleFactor(MercatorProjection.ZoomLevelToScaleFactor(zoomLevel), tileSize) / tileSize; latitude = MercatorProjection.TileYToLatitude(tileY, MercatorProjection.ZoomLevelToScaleFactor(zoomLevel)); Assert.AreEqual(MercatorProjection.LATITUDE_MIN, latitude, 0); } } }
public virtual void LongitudeToTileXTest() { for (sbyte zoomLevel = ZOOM_LEVEL_MIN; zoomLevel <= ZOOM_LEVEL_MAX; ++zoomLevel) { long tileX = MercatorProjection.LongitudeToTileX(LatLongUtils.LONGITUDE_MIN, zoomLevel); Assert.AreEqual(0, tileX); tileX = MercatorProjection.LongitudeToTileX(LatLongUtils.LONGITUDE_MIN, MercatorProjection.ZoomLevelToScaleFactor(zoomLevel)); Assert.AreEqual(0, tileX); tileX = MercatorProjection.LongitudeToTileX(LatLongUtils.LONGITUDE_MAX, zoomLevel); Assert.AreEqual(Tile.GetMaxTileNumber(zoomLevel), tileX); tileX = MercatorProjection.LongitudeToTileX(LatLongUtils.LONGITUDE_MAX, MercatorProjection.ZoomLevelToScaleFactor(zoomLevel)); Assert.AreEqual(Tile.GetMaxTileNumber(zoomLevel), tileX); } }
public virtual void LatitudeToTileYTest() { for (sbyte zoomLevel = ZOOM_LEVEL_MIN; zoomLevel <= ZOOM_LEVEL_MAX; ++zoomLevel) { long tileY = MercatorProjection.LatitudeToTileY(MercatorProjection.LATITUDE_MAX, zoomLevel); Assert.AreEqual(0, tileY); tileY = MercatorProjection.LatitudeToTileY(MercatorProjection.LATITUDE_MAX, MercatorProjection.ZoomLevelToScaleFactor(zoomLevel)); Assert.AreEqual(0, tileY); tileY = MercatorProjection.LatitudeToTileY(MercatorProjection.LATITUDE_MIN, zoomLevel); Assert.AreEqual(Tile.GetMaxTileNumber(zoomLevel), tileY); tileY = MercatorProjection.LatitudeToTileY(MercatorProjection.LATITUDE_MIN, MercatorProjection.ZoomLevelToScaleFactor(zoomLevel)); Assert.AreEqual(Tile.GetMaxTileNumber(zoomLevel), tileY); } }