0

自動的に更新されるDOM要素の内部コンテンツに基づいて、Googleマップのアイコンを自動的に変更する必要があります。Googleマップのマーカーアイコン自動変更

私はaddListeneraddDomListenerのドキュメントを見ましたが、それはすべてマウスオーバーやクリックやものです。問題の要素の純粋なHTMLコンテンツの変更を検出する必要があります。その値が特定の条件を満たす場合は、それに基づいてマーカーのアイコンを変更します。

infowindow=new google.maps.InfoWindow(); 
for (i=0;i<buildings.length;i++){ 
    marker=new google.maps.Marker({ 
     position:new google.maps.LatLng(buildings[i][4],buildings[i][5]), 
     map:map, 
     shadow:shadow, 
     icon:greenIcon, 
     title:buildings[i][0]+" \n"+buildings[i][1], 
     zIndex:buildings[i][6] 
    }); 
} 

を私は疑問にdiv要素の内容に等しくなるように(上記に含まれていない)buildings[i][7]配列値を強制するためにjQueryを使って一緒にsetIntervalを追加する方法について考えています。ここでは

は、私が使用していたコードですいくつかの条件文を実行して、マーカーのアイコンを変更するための適切な基準を満たしているかどうかを判断します。

しかし、その後、動的に更新する値に基づいてマーカーを実際に変更する方法については迷っています。 GoogleのAPIドキュメントから

答えて

2

Marker.setIcon機能を試して、Markerに関連付けられたアイコンを設定します。これは、のいずれかであり得る一つのパラメータを受け入れ:

  1. (あなたのコードのように)アイコン画像ファイルの相対的な位置を含む、OR stringから
  2. あなたがより詳細に制御できますMarkerImage、(アンカー、原点、サイズなど)アイコン画像がどのように表示されているかを調べる
+0

ありがとうございます。これは私が探していたものの一部です(私はhttp://stackoverflow.com/questions/1941260/google-maps-api-v3-how-do-i-dynamically-change-the-marker-iconでも見つけました)。 )...しかし、DOM要素の変更を検出する方法はありますか(変更を引き起こすでしょう)、あるいは単に 'setInterval'に入れなければなりませんか?もし私がする必要がなければ、私はむしろそれをしないだろう。 – InterfaceGuy

+0

まあ、要素の変更を通知する方法がないので、あなたが好きな場合は 'setInterval'を使って要素をポーリングするか、他の質問で議論したデータバインディングのメカニズムを使用する必要があります: http://stackoverflow.com/q/10355852/1314132。 –

+0

ありがとうSean。あなたの助けは不可欠でした。 :) – InterfaceGuy

0

var beachMarker = new google.maps.Marker({ 
     position: myLatLng, 
     map: map, 
     icon: image 
    }); 
    map.addOverlay (beachMarker); 
+0

これは古いものの上にまったく新しいマーカーを置くでしょうか?私はそれを望んでいない。私はすでに持っているものに切り替えたい。 – InterfaceGuy

関連する問題