diff --git a/src/main/java/org/genesys2/server/api/v1/TileController.java b/src/main/java/org/genesys2/server/api/v1/TileController.java index 9b0e65ea53c1e836432999abc0d4e8ef5d3625b8..536c08e78a0b798f69a32c9c6cf877e8e51f9811 100644 --- a/src/main/java/org/genesys2/server/api/v1/TileController.java +++ b/src/main/java/org/genesys2/server/api/v1/TileController.java @@ -56,7 +56,20 @@ public class TileController { response.setContentType(MediaType.IMAGE_PNG_VALUE); response.setContentLength(image.length); - response.setHeader(HttpHeaders.CACHE_CONTROL, "max-age=3600, s-maxage=3600, public, no-transform"); - response.getOutputStream().write(image, 0, image.length); + + // HTTP maxAge + int maxAge; + if (zoom < 4) { + maxAge = 60 * 60 * 24; // 24 hrs + } else if (zoom < 6) { + maxAge = 60 * 60 * 2; // 2 hrs + } else if (zoom < 8) { + maxAge = 60 * 60; // 1 hr + } else { + maxAge = 60 * 5; // 5 min + } + response.setHeader(HttpHeaders.CACHE_CONTROL, "max-age=" + maxAge + ", s-maxage=" + maxAge + ", public, no-transform"); + response.getOutputStream().write(image, 0, image.length); + response.getOutputStream().flush(); } }