Maps 3 API の初期のバージョンでは、カスタム マップ タイプを使用して次のことを行うための「オーバーレイ」機能を構築しました。これは、常に Google のタイルの上にタイルを提供するのではなく、Google のタイルのみを表示するという考え方でした。必要に応じて - タイルがズームと境界の外側にある場合、またはタイルに透明度がある場合 (ほとんどの場合、オーバーレイの外側の境界が川などに続く可能性があるため)。それは次のように機能しました:
タイプで が呼び出されたとき
getTile
に、特定のレベルで特定のタイルを提供する必要があるかどうかを判断します。タイルを提供する必要がある場合は、タイルに透明度があるかどうかを判断します。透明度がある場合は、次を使用してデフォルト マップからタイルを取得します。
map.mapTypes.get(google.maps.MapTypeId.ROADMAP).getTile(coord, zoom, ownerDocument)`
次に、返された div の上部に画像を追加して表示します。それ以外の場合は、タイルを提供してください。
私がタイルを提供すべきでない場合は、ただ戻ってください
map.mapTypes.get(google.maps.MapTypeId.ROADMAP).getTile(coord, zoom, ownerDocument)
そのため、何らかの窃盗が原因で、getTile が Google のネイティブ マップ タイプで何も返さなくなったようです。これにより、次の 2 つの疑問が生じます。
マップ全体をオーバーレイにすることなく、完全なタイルではなくオーバーレイとしてタイルを表示する必要があることをマップに伝える方法はありますか?
私のタイルとは対照的に、独自のタイルを表示する必要があることをマップに伝える方法はありますか?
オーバーレイ マップはソリューションとして機能しますが、パフォーマンスは良くありません。Google が最初に独自のタイルを描画し、次にそれらを私のタイルでオーバーレイするため、かなりの数の再描画があります。私のタイルの 99% は完全なオーバーレイ (透明度なし) であるため、これはかなりの帯域幅の浪費のように思えます。デフォルトの Google タイルを描画する必要があるかどうかを示すメタデータを getTile から返すことができると便利です (または、他のコールバックでその事実を示します)。以前は洗練されたソリューションのように見え、うまく機能していましたが、オーバーレイの方法論は間違いなく一歩後退しています。マルセロ、私のタイトルが私の質問を反映していない理由がわかりません...問題の全文を読みましたか?