如何部署新的地图图块,强制用户缓存清除?

时间:2012-11-26 05:11:57

标签: google-maps google-maps-api-3

我有一个自定义地图,其中包含我为网站创建的自定义地图图块。每当我更新这些地图图块并将它们部署到网站时,我都需要我的用户清除旧图块的缓存,以便他们下载新的图块。

由于地图图块是由JavaScript加载的,因此您不能简单地强制用户使用SHIFT-Refresh获取新文件。

到目前为止,我能想到的唯一方法是更改​​从中加载切片的文件夹名称。类似的东西:

tiles-20121125  <--- todays date

因此,每次更新磁贴时,我只需将文件夹名称更改为新名称,强制访问者下载新磁贴。

有更好的方法吗?可能会在Google Maps v3 API中内置一些东西吗?

1 个答案:

答案 0 :(得分:2)

浏览器根据请求的URL缓存图像数据,该URL与ajax缓存一样。 Google Maps API不提供任何方法来执行此操作。

这是最简单的方法,您可以将该版本作为查询参数附加。

function getTileUrl(point, number) {
  return "http://your.server.com/tiles/" + point.x + "_" + point.y + ".png?v=20121125"
}

然后Google Maps API从网址加载图片数据。 加载图像的机制可能是:

var img = new Image();
img.src = tile_url;

这样的事情。 (实际上Google Maps API最近使用canvas标签而不是Image)