Apple had a means of marking a person's office location in their LDAP schema by specifying a map image and then their coordinates. A utility called Directory in Leopard would show the map with the point marked with a pin, but it has since disappeared in Snow Leopard, probably because it was a little bit buggy. The whole setup seemed oriented towards smaller organizations running Open Directory, because it had a built in limitation of 500 entries and was quite slow when looking at our LDAP server. Still, it is a cool idea, so I decided to bring it to Address Book as a plug-in for our company employees.
All names and personal info in the above images have been changed to protect the innocent
The plugin works by first telling Address Book what kind of information it responds to and whether it is valid for that card. In this case, we let Office Location run if the user is looking at a Chapman employee's work address. For everything else, it is grayed out. When the user chooses the Show office location... from the popup menu, a new window is created and we fetch information from our LDAP server. This included some contact information, picture, which map to show, and their coordinates. Since we are running as a part of Address Book, it was important to not bog down the main thread, so this all happens in a background thread as a part of the new NSOperationQueue protocol.
When the fetch is done, it creates a PDF view with the office map and then an overlay with the image of the pin at the right location. This allows for easy zooming and centering without having to continually redraw the map. The window is a part of Address Book, so when the user quits out, the map window goes away as well.