Petrov nad Desnou est arrosée par la Desná et la Merta, et se trouve à 7 km au nord-est de Šumperk, à 49 km au nord-nord-ouest d'Olomouc, à 90 km à l'ouest-nord-ouest d'Ostrava et à 187 km à l'est de Prague[4].
La première mention écrite de la localité date de 1391. De 1980 à 2009, Petrov nad Desnou faisait partie de la commune de Sobotín. Depuis le , Petrov nad Desnou constitue une commune séparée, qui comprend le village de Petrov nad Desnou et le hameau de Terezin[6].
Transports
Par la route, Petrov nad Desnou se trouve à 7 km de Šumperk, à 65 km d'Olomouc et à 223 km de Prague[7].