it is above route 10 which is above opelucid city. check your town map. at route 10, go right until you see a gate/building.
the Pokemon league is is in ever grande city after you get through victory road
defeat the Elite Four at the indigo league
Surf North on the beach of Sunnyshore.
you fill your pokedex
skill
beat the Pokemon league.
The Pokemon League is in Ever Grande City, but before you can reach it you have to pass Victory Road.
I beat the league on Pokemon Diamond version, and there was no cave involved, if that's what you were asking.
just get a swimmer and go to the top of sunnyshore
Go to sunyshore city, then go up in the water (make sure you got surf and waterfall) to swim and to go up the waterfall to The Pokemon League then you will reach a Pokemon league cave past it and then go to the Pokemon league heal your Pokemon and fight
how go look for the legendaries!
kick sand at the umpire