For a very long time I tried to integrate a mapping solution into Tine 2.0. Just try to remember that 2.0 in our projects name stands for Web 2.0. So it must be able to use a webservice to display a map.
First we integrated Google Maps. Shortly after we had finished the implementation, we had to remove it again, because Google prohibits the usage of their maps in non public systems. And buying a Google Maps license is very expensive. I should have read the usage policy before I started implementing it.
So we had a closer look at really free mapping solutions. There are at least two solutions available:
Mapstraction and
OpenLayers. As OpenLayers is also the foundation for the map provided by
OpenStreetMap we decided to bet on this library. I started implementing ExtJS classes for easy integration of maps into Tine 2.0 until I discovered
GeoExt. GeoExt is developed from people who seem to know more about mapping solutions than me. So I dropped my code again and implemented the map widget for Tine 2.0 based on GeoExt which is based on OpenLayers.
But displaying a map is only one part of the story. The other part is to know which part of the map to display. Even if you can get my postal address, you still need to know the coordinates. And again OpenStreetMap comes to our rescue.
They just launched
Nominatim. Nominatim is a webservice which allows you to resolve an address into its coordinates. Just try this
link to find out where we work.
To make the long story short, you can display maps from OpenStreetMap for your contacts now.
And this is how it looks like:

As you can see I live near a Autobahn.
Another cool feature to implement in the future, is that we are able to validate or complete addresses this way. As Pickhuben(the street where our office is located) is already unique, Nomination can return us the whole address including village, county, postalcode and of course the coordinates. Or can filter your contacts and display them on a map. Really cool features just waiting to get implemented.