2011-06-17 10 views
4

Google Maps API v3のMarkerImageコンストラクタによって生成されたスプライトの「原点」を動的に更新したい場合は、新しいMarkerImage。Google MapsマーカーのMarkerImageスプライト原点を更新する(v3)

ここにいくつかのコードです:

// Marker options 
var markerOptions = { 
    icon: new google.maps.MarkerImage('../images/content/marker.png', 
     new google.maps.Size(88,88), 
     new google.maps.Point(0,0), 
     new google.maps.Point(44,88) 
    ), 
    position: position, 
    map: map 
} 

var marker = new google.maps.Marker(markerOptions); 

私はmarker.setPointの線に沿って何かを行うことができます(0,10)または私は再びスプライトの原点を設定するための新しいMarkerImageを作成する必要がありますか?

答えて

0

MarkerImageの作成後にプロパティを変更する方法はありません(少なくともAPIリファレンスを参照)。新しいMarkerImageを作成してmarker.setIcon()に電話をかけることができます。

2

マーカーのアイコンのoriginプロパティを設定できます。あなたの例では:

marker.getIcon().origin = new google.maps.Point(0, 10); 

以下でも動作します:

marker.icon.origin = new google.maps.Point(0, 10); 
+0

Upvotedあなたがしているので、技術的には、両方のメソッドでoriginプロパティを設定できますが、以前に設定したMarkerImageには影響しないようです。オブジェクトを検査すると、originプロパティが更新されていることがわかりますが、画面上のMarkerImageには変更は反映されていません。 – Jon

4

MarkerImageはそれを行うための最も簡単な方法があるマップ上に描画する場合:

marker.getIcon().origin = new google.maps.Point(0, 10); 
marker.setIcon(marker.getIcon()); //re-draw the MarkerIcon 
関連する問題