I created a shipping extension that allows to define zones delimited by distances from a geographic center. The intended usage is for stores that deliver goods themselves, but only up to a certain point or with different charges per distance.

The extension can be found here: http://contao.org/extension-list/view/i ... zones.html

Usage:
The extension can't be used "as is" yet, some manual work has to be done first. The table tl_iso_zone_delivery_postal_codes will be empty after installation and needs to be filled with relevant data for your area. To do that you need a list with geographic locations, postal codes for now and the latitude and longitude for each code. For the Netherlands such lists can be found here: http://www.d-centralize.nl/projects/6pp/downloads/ but there might be lists for any area

Fields in that table are:
city: not used
postal: the postal code
street: not used
lat: latitude
lng: longitude

Once this table contains data you can setup the module and it will calculate the postal codes which belong to each zone you specify based on the lat and lng.

Todo:
What I'd like to figure out is a standardized way to define an import scheme. The Dutch postal code lists are updated monthly, so a cron that can import would be nice, but it should also be able to read other sources if required.

Also, postal codes may not be as precise in each country as they are over here. Perhaps I'd need to add streetname or whatever field as an option. Can anybody tell me how this would work out in their country?

Any help appreciated, especially testing!