I have a project that requires timezone lookup for given coordinates. http://efele.net/maps/tz/world/ is an awesome resource however the polygons only cover land. Sydney Harbour is considered seas in the shapefile, even though parts of it are 5km from the coast.

I'm currently solving it in PostGIS with;
SELECT *
FROM timezones
WHERE ST_DWithin(geom,ST_SetSRID(ST_Point(151.268421, -33.840613), 4326)::geography, 22224)
ORDER BY ST_Distance(geom, ST_SetSRID(ST_Point(151.268421, -33.840613)::geography, 4326))
LIMIT 1;
This approach is costly and overly complex. Does anyone have a shapefile which includes territorial waters (12 nautical miles from the coast) or know how I could bloat/swell the shapefile from http://efele.net/maps/tz/world/ to include territorial waters but not overlap?
It doesn't have to be perfect, picking the closest land mass in area's like this would be suitable.
