MarkerImageを使用して地図に描画する前に、特定の角度で回転する必要がある Google マップのアイコンがあります。PIL を使用して Python でその場で回転を行うと、結果の画像は元の画像と同じサイズ (32x32) になります。たとえば、次のデフォルトの Google マップ マーカー
を使用すると、次の Python コードを使用して 30 度の反時計回りの回転が実現されます。
# full_src is a variable holding the full path to image
# rotated is a variable holding the full path to where the rotated image is saved
image = Image.open(full_src)
png_info = image.info
image = image.copy()
image = image.rotate(30, resample=Image.BICUBIC)
image.save(rotated, **png_info)
結果の画像は
注意が必要なのは、新しい回転した画像を使用して MarkerImage を作成するときに使用する新しいアンカー ポイントを取得することです。これは、アイコンの尖った端である必要があります。デフォルトでは、アンカー ポイントは下の中央です [x,y 座標で (16,32) として定義され、(0,0) は左上隅です]。JavaScriptでこれを簡単に行う方法を誰かに説明してもらえますか?
ありがとう。
2011 年 6 月 22 日更新: 間違った回転画像を投稿していました (元の画像は反時計回りに 330 度回転していました)。私はそれを修正しました。また、回転したアイコンをより明確にするリサンプリング (Image.BICUBIC) を追加しました。