public static ElevationTileCollection GetUniqueTilesForRemoval(long dedId, IEnumerable <DownloadedElevationData> allData, ElevationTileCollection tilesToBeRemoved) { //Get only tiles, that are not used by another areas var tilesForRemoval = new List <ElevationTile>(); foreach (var tile in tilesToBeRemoved.AsEnumerable()) { var doNotRemove = false; foreach (var anotherDedItem in allData) { if (anotherDedItem.Id == dedId) {//skip deleted item (but it is actually already removed) continue; } var anotherDedTiles = new ElevationTileCollection(new GpsLocation(anotherDedItem.Longitude, anotherDedItem.Latitude, 0), anotherDedItem.Distance); if (anotherDedTiles.HasElevation(tile.StartLocation, false)) { doNotRemove = true; break; } } if (!doNotRemove) { tilesForRemoval.Add(tile); } } return(new ElevationTileCollection(tilesForRemoval)); }
public static ElevationTileCollection GetTilesForRemoval(GpsLocation location, int oldDistance, int newDistance) { var dedTiles = new ElevationTileCollection(location, newDistance); var dedTilesOld = new ElevationTileCollection(location, oldDistance); var tilesForRemoval = new List <ElevationTile>(); foreach (var tile in dedTilesOld.AsEnumerable()) { if (!dedTiles.HasElevation(tile.StartLocation, false)) { tilesForRemoval.Add(tile); } } return(new ElevationTileCollection(tilesForRemoval)); }