2

主に WPF Bing Maps コントロールを使用して、WPF アプリケーションを開発しています。

実行時にオンまたはオフにできる複数のタイル レイヤーがあります。タイル レイヤーはカスタム tilesource を使用してデータを取得するため、返される uri をより詳細に制御できます。

アプリケーションが起動すると、複数の tilelayers が表示され、restservices が呼び出されてタイルが取得されます。サービスは、DB で画像をチェックし、存在する場合は画像を返し、存在しない場合は画像を生成して保存し、返します。これまでのところ、それは魅力のように機能します。

次の 2 つのケース: DB が何らかの理由でクリアされる -> サービスは、呼び出しが行われたときにイメージを再作成し、それらを返すだけです。ここでは問題ありません。

アプリケーションがまだ実行されている間に誰かが IE キャッシュ (クライアント側) をクリアすると、マップがズーム/移動します。以前にロードされたタイルが消え、戻ってきません。さらにズームインすると、以前にロードされていないタイルが取得されますが、タイル レイヤーに大きなギャップが残ります。

これを解決する唯一の方法は、アプリケーションを閉じ、IE キャッシュをクリアし、DB をクリアして、もう一度開始することです。この動作の原因は何ですか? そして、一見空のように見える画像がロードされるのはなぜですか?

オプションを掘り下げた後、uriにティックパラメーターを与えることになるため、常に新しいタイルが取得されます。しかし、これには大きなパフォーマンス上のペナルティがあります。

この問題を解決する方法について何かアドバイスはありますか?

前もって感謝します。

4

1 に答える 1