Generally when there are geographically distributed clusters, having a disk witness does not make sense. This is due to the need to have block level synchronous disk replication between all sites while preserving things like write ordering and scsi reservations.
In almost all instances of having a geo-cluster it's best to go with a fileshare witness. The two different types of witnesses do the same thing (there are subtle differences like how the arbitration happens, etc.)
Where should you place the witness? The best place would be a neutral 3rd site, however most won't have this available. My recommendation is to place this at the site you want to keep primary in the event of a communications loss between the nodes at each site. In your case I'd likely put it on the primary site. It should be somewhere that is as highly available as possible.