タイル オーバーレイを使用する場合、これまでに見た唯一の方法は、タイルを取得するときに Google をリッスンし、呼び出しから X、Y、Z 座標を取得し、それを一連のタイルと比較することです。
var tileOptions = {
getTileUrl: function(coord, zoom) {
return "/tiles/" + zoom + "_" + coord.x + "_" + coord.y + ".png";
}
}
その X、Y、Z のタイルが存在する場合は、それが検出され、通常どおり呼び出されます。そうでない場合は、404 エラーが発生します。私の場合、6 セットのタイルがあり、すべて同時にアクティブになる可能性があります。タイルを作成するスクリプトは、空白のタイルを無視して作成しません。つまり、マップのズームまたは位置が変わるたびに、すべてのタイルを読み込もうとすると、100 以上の 404 エラーが発生する可能性があります。
一部でこれに対抗するために、タイル検索をタイルがカバーする領域に限定しました。
var tileOptions = {
if (zoom>=16 && zoom<=20) {
if (zoom=16) { if (coord.x>=16000 && coord.x<=16004) { if (coord.y>=24200 && coord.y<=24203) {
getTileUrl: function(coord, zoom) {
//return the tiles
}}}
}
if (zoom=17) //...
}
if (zoom=18) //...
}
//...
}
}
ただし、この領域は 8x10 ブロックの領域にまたがっており、オーバーレイによって完全にはカバーされていません。この方法は、ユーザーがマップから離れようとしたときのエラーを防ぐだけでなく、非常に複雑で、タイルの呼び出しプロセスが遅くなる可能性があります。
したがって、タイルを「呼び出す」のではなく、タイルを「配置」する方法を探しています。マップが「このタイルはありますか」と尋ねて 404 エラーの危険を冒す代わりに、スクリプトまたは関数は「私はこれらを持っています」と言うでしょう。 tiles, place them" を実行して、欠落している (空白の) タイルを無視し、理想的には、ページに表示されているタイルのみを読み込みます。
または、どのタイルが存在するかを関数に認識させて、それらのタイトルのみを呼び出そうとし、404 エラーを回避する方法も探しています。
要するに、タイルの呼び出しで 404 エラーを回避するにはどうすればよいですか?
質問を書いた後の考え: 最初の理想的な解決策は、if ステートメントのスタックを取得し、それらをタイルのより動的なチェックに変換し、タイルが存在する場合は「return」を使用して実際に呼び出すことだと思います。ただし、これでも同じ 404 エラーが発生するようですが、機能が異なります。
インデックスの使用: 以下に meetamit によって提案されているように (私が正しく理解している場合)、タイルを呼び出して 404 をチェックとして使用するのではなく、最初にタイルの存在/非存在をチェックするインデックスを作成します。しかし、「Z_X_Y.png」形式の一連のタイルを使用して、これらのインデックスを簡単に作成するにはどうすればよいでしょうか?