Google MapsAPIv3.9で追加された新しいSymbol機能のテストを開始しました。マップ上に複数の三角形のようなシンボルを配置し、それらをプログラムで回転できるようにしたい。私が以前持っていたのは、それぞれが最後の画像のコピーであり、ちょうど10度回転したpng画像のセットでした(MyIcon_0、MyIcon_10、...、MyIcon350)。次に、希望する回転角に最も近い画像を描画します。
代わりに新しいシンボル機能を使用すると、プログラムで回転と色の両方を完全に制御できる、はるかに簡単な方法のように見えました。
SVGパス表記を使用して、単純な三角形を定義し、次のようにマーカーに貼り付けました。
var markerOptions = {
icon: {
path: "M 0 5 L 20 5 L 10 40 z",
rotation: rotationAngle,
anchor: [something]
},
position: position
};
var marker = new Marker(markerOptions);
これは、「rotationAngle」が0に設定されている限り正常に機能します。これは、シンボルをマップの正しい位置に配置するためにアンカーが何である必要があるかがわかっているためです。アンカーを常に三角形の「鋭角の角」に配置したいと思います。
別の回転角がある場合に問題が発生します。シンボルは長方形の帆布に描かれており、帆布の寸法は内部の形状に最も合うように自動的に計算されているようです。この三角形のようにシンボルを回転させると、回転に基づいて異なる寸法のキャンバスが作成されます。これにより、アンカーがキャンバスの寸法に対して相対的に設定されているように見えるため、シンボルをマップ上に正しく配置することが困難になります。
実際のキャンバスのサイズを制御することしかできなければ、アンカーが常にキャンバスの中央にくるようにシンボルを描くことができ、一定のアンカーを設定することができます。これはどういうわけか可能ですか?キャンバスのサイズを一定に保つために、図形の周りに不可視の円を描く可能性を考えていましたが、SVGパス表記にあまり詳しくなく、これが可能かどうかはわかりません。
この問題に関する建設的なフィードバックに感謝します。