B
分析:根据“地图上,上海在北京的南偏东约30°的方向上”可知,是以北京的位置为观测点,建立方向标,上海处在北京的南偏东约30°的方向上;要求北京一定在上海的什么方向上,是以上海的位置为观测点,建立方向标,根据位置的相对性,南与北、东与西是相对的,据此解答.
解答:在地图上,上海在北京的南偏东约30°的方向上,
因为南与北、东与西是相对的,所以南偏东的相对位置就是北偏西,
那么北京一定在上海的北偏西约30°的方向上.
故选:B.
点评:解答此题要明确:两地的位置关系是相对的,方向正好相反,度数不变.