2011-07-03 10 views
1

検索結果と結果のマーカーの配列を持つ表があります。すべての要素にIDがあり、ユーザーがマーカーをクリックすると、ページは検索結果にスクロールします(私はwindow.location.hashを変更しています)。Google Mapで特定のマーカーを見つけるには?

その逆も可能ですか?ユーザーが検索結果をクリックすると、インフォウィンドウにマーカーが表示されます。

+0

"ユーザーがマーカーをクリックすると、ページは検索結果にスクロールします。 – UnderDog

答えて

2

地図上で検索結果に関連付けられたマーカーがスクロールして表示されると思いますか?

検索結果に、表示するマーカーの一意の識別子が含まれているクリックイベントがある場合は、そのマーカーが機能することを確認してください。私が現在管理しているサイトには検索結果のサイドバーがあり、結果をクリックすると地図上のマーカーがスクロールして情報ウィンドウが表示されます。クリックハンドラによって呼び出されるコードはそうのようになります(サンセリフいくつかのエラー処理や、あなたの質問のための他の重要でない部分):

function MarkerZoomTo(markerIdentifier) { 
    pt = gMarkers[markerIdentifier].getPosition(); 
    newpt = new google.maps.LatLng(pt.lat() + .02, pt.lng()); 
    map.panTo(newpt); 

    if (infoWindow) { 
    infoWindow.close(); 
    } 

    infoWindow.setContent(gMarkers[markerIdentifier].get('iwcontent')); 
    infoWindow.setPosition(gMarkers[markerIdentifier].getPosition()); 

    infoWindow.open(map, gMarkers[markerIdentifier]); 
} 

私は私のマーカーのうちの特定のマーカーを取得し、機能にユニークなマーカー識別子を渡します配列、lat/lng位置を取得し、LatLngオブジェクトを作成し、その位置にパンします。

その他の情報は、情報ウィンドウのコンテンツを取得し、自分が適切と考える方法で行うことができる位置を設定するだけです。

最後に、マーカーの情報ウィンドウを開きます。

幸運を祈る!

+0

本当に助かりました。ありがとう。 –

+0

"ユーザーがマーカーをクリックすると、ページは検索結果にスクロールします。 google.maps.event.addListener(marker、 'click'、function(){$( '。検索結果')} animate({scrollTop:$( "#result_1")。offset.top}) – UnderDog

+1

@ } ' – MKatleast3