Moved most map support code from controllers to Photo to address feature envy