1

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

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

到目前为止,我能想到的唯一方法是更改​​加载磁贴的文件夹名称。就像是:

tiles-20121125  <--- todays date

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

有没有更好的办法?可能是 Google Maps v3 API 内置的东西?

4

1 回答 1

2

浏览器根据请求的 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 从 URL 加载图像数据。加载图像的机制可能是:

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

类似的东西。(实际上 Google Maps API 最近使用的是 canvas 标签而不是 Image)

于 2012-11-26T05:51:30.820 回答