First, you would need to store your player and map data as a temp variable, or save player position and map id. I suggest saving them in Game_System or something, and recover from there.
Then, switch the map and the player location and whatnot, and there you go.
class Game_System
attr_accessor :saved_mapid
attr_accessor :player_location
end
Add that somewhere. Then, before you go to your whatever, use something like:
# Saves Map and Location
$game_system.saved_mapid = $game_map.map_id
$game_system.player_location = [$game_player.x, $game_player.y]
# Move Player
$game_map.setup(map_id)
$game_player.move_to(x, y)
# Restore Map and Player
$game_map.setup($game_system.saved_mapid)
$game_player.move_to($game_system.player_location[0], $game_system.player_location[1])
Whenever you switch, just replace
$game_map.setup(map_id)
$game_player.move_to(x, y)
map_id = map you are going to
x, y = location on map