Try Mountain Equipment Co-Op (Broadway), 3 Vets (Yukon near 4th), orany of the other outdoor stores near MEC.
That's assuming you want a hiking compass. For a marine compass,try Steveston Marine near 4th and Granville.
Dave