多くの MarkerIcons を含むマップを表示しています。すべて同じ png に基づいていますが、さまざまなサイズにスケーリングされています。
基本サイズは 64 x 64 で、縮小すると期待どおりに動作します。
拡大すると、アイコンがトリミングされます。問題を説明する簡単な JSFiddle を作成しました。これはアイコンをスケーリングするコードです。私の理解では、最初のサイズはピクセル単位のソース画像の実際のサイズであり、次の 2 つの位置は原点とアンカーであり、現時点では気にしません。最終的なサイズはピクセル単位のスケーリングされたサイズです。
var icon_scaled = new google.maps.MarkerImage(
img-filename,
new google.maps.Size(64, 64),
null,
null,
new google.maps.Size(scaled_size, scaled_size)
);
私が見つけた例では、最初のサイズを省略してブラウザに計算させることができます。これは Chrome では機能しますが、Firefox では失敗し、次のようなエラー メッセージが表示されます。
Error: IndexSizeError: Index or size is negative or
greater than the allowed amount
ここでフィドル: http://jsfiddle.net/y8E54/
エラーなしで両方のブラウザーでこれを行うにはどうすればよいですか?
ところで:私は MarkerIcon が非推奨であることを知っています.ドキュメントに従って「アイコン」を使用してそれを置き換え、「サイズ」と「スケールサイズ」を指定すると、同じ種類の問題が発生します。