0

右側の div にカーソルを合わせると、Google マップを使用してホバー効果を作成しようとすると、対応するマップ マーカーのサイズが大きくなるという問題があります。ここで説明した手法を使用しようとしています: Google マップ V3でマーカーのサイズを変更します。

しかし、それは新しいマーカーを構築しているので、それほど役に立ちません。既存のマーカーを拡大したいだけです。私はこのようなことをしようとしています:

var aMap = $container.googleMapClient("map");
var layer = aMap.layers[iconLayer];
layer.points[iconLayer].marker.getIcon().size = new google.maps.Size(45,33);

残念ながら、これは表示サイズを変更していません。実行時にレイヤーを検査すると、サイズが実際に変更されます。この種の行為はこのように許されませんか? レイヤーを破棄してより大きなレイヤーをレンダリングし、マウスアウトで反対のことを本当に行う必要がありますか? どんな助けでも大歓迎です。

4

2 に答える 2

1

MarkerImagescaledSizeの属性を使用する必要があります。

LeJared が言ったように、2 つの異なるMarkerImageオブジェクトを作成し、それらを交換する必要があります。

MarkerImageオブジェクトは不変であるため、その場でサイズを変更することはできません。より一般的には、Maps API では、set() 関数を使用してプロパティを設定する必要があります。そうしないと、更新が API で認識されません。

于 2012-09-05T03:55:21.327 に答える
1
  1. 2 つの異なる markerImages を作成します。1 つはデフォルトで、もう 1 つはホバー用です。(ドキュメント: https://developers.google.com/maps/documentation/javascript/reference?hl=en#MarkerImage )

  2. google.maps.Marker.setIcon() (ドキュメント: https://developers.google.com/maps/documentation/javascript/reference?hl=en#Marker )を使用して、ホバー時に markerImage を入れ替えます。

以下は、markerImages の使用方法の例です: https://google-developers.appspot.com/maps/documentation/javascript/examples/icon-complex

marker.getIcon().size は読み取り専用なので、ここで新しいサイズを設定することはできません。また、 google.maps.Size(45,33) は画像を新しいサイズに引き伸ばすのではなく、画像のクリッピングのみを変更します。

于 2012-09-04T22:30:44.963 に答える