private List <Tile> MakeTileMatrix(int levelOfDetail, List <List <AltitudeResponse> > altitudes)
        {
            List <Tile> tileMatrix = new List <Tile>();

            foreach (var line in altitudes)
            {
                foreach (var point in line)
                {
                    TileSystem.LatLongToPixelXY(point.Location.Lat, point.Location.Lng, levelOfDetail, out var pixelX, out var pixelY);
                    TileSystem.PixelXYToTileXY(pixelX, pixelY, out var tileX, out var tileY);
                    TileSystem.MapPixelXYToTileInnerPixelXY(pixelX, pixelY, out var tileInnerX, out var tileInnerY);

                    MapPoint mapPoint = new MapPoint(tileInnerX, tileInnerY, point.Elevation);

                    if (mapPoint.Z > 0)
                    {
                        Tile tile = tileMatrix.FirstOrDefault(t => t.TileX == tileX && t.TileY == tileY);
                        if (tile == null)
                        {
                            tile = new Tile(levelOfDetail, tileX, tileY);
                            tileMatrix.Add(tile);
                        }
                        tile.Points.Add(mapPoint);
                    }
                }
            }
            return(tileMatrix);
        }