As a heads-up, they changed the projection format between 2011 and 2016 in case you are upgrading your local data from 2011 to 2016. The 2011 shape file is NAD83 (4269), but the 2016 seems to be using Lambert projection (3348). I say seems because when I load the shape file it doesn't specifically seem to say the exact EPSG/SRID. I ended up converting the shape file to be 4326 so that it's the same as Google Maps.
2016 FSA Census Boundary files are now available (as of Sept 13, 2017 according to their site).
Stats Canada has since released the Forward Sortation Areas Boundary files (as of February 5, 2013 according to their site).
Download Page for all 2011 Census Boundary Files
Download Page for all 2016 Census Boundary Files
Statistics Canada has a page dedicated to making available different Shape files regarding Canadian Boundaries, both Geographical and Digital. (link is the same as the one mentioned above)
http://www12.statcan.gc.ca/census-recensement/2011/geo/bound-limit/bound-limit-2011-eng.cfm
If you only need the geographic center of the postalcodes however (instead of the boundary), check out the free database at http://geocoder.ca/.
You can obtain the approx center of the FSA from this as well by grouping them by the first three digits of the PostalCode and then averaging the Latitude/Longitude. SQL would help do this much easier if you import the data into a database first.
Here's a query do do what I mean.
IF NOT EXISTS(SELECT * FROM zipcodeset WHERE LEN(PostalCode) = 3)
BEGIN
INSERT INTO zipcodeset(PostalCode, Latitude, Longitude)
SELECT LEFT(PostalCode,3), Avg(Latitude), Avg(Longitude)
FROM zipcodeset
GROUP BY LEFT(PostalCode,3)
END
FSA Boundary shapefiles are now published.
Try using Bing Geocoder, I believe they do UK, so you should be able to look up the coordinates of the zip code and in the results you will see the cities that correspond globally to that zip code...
P.S., Don't use google geocoder for UK, it doesn't work properly from personal experience.
Best Answer
The TravelTime Search API is a cheaper alternative to Google distance matrix however it is not self hosted / offline. But they do offer a service where you can send a CSV of all origins & destinations and get a matrix of journey times back https://www.traveltimeplatform.com/analytics/
However you can use an API if it doesn't need to be self hosted / offline you can use the free geocoder to translate points in Germany into lat longs http://docs.traveltimeplatform.com/reference/geocoding-search/ and then select an origin and query against 1000s of destinations in a single API request. Use time filter for this http://docs.traveltimeplatform.com/reference/time-filter/
Disclaimer: I work for the creators of the API.