1

Web サイト用に作成したカスタム マップ タイルを含むカスタム マップがあります。これらのマップ タイルを更新してサイトに展開するたびに、ユーザーが古いタイルのキャッシュをクリアして、代わりに新しいタイルをダウンロードするようにする必要があります。

マップ タイルは 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は最近Imageではなくcanvasタグを使っています)

于 2012-11-26T05:51:30.820 に答える