2011-07-03 37 views
1

我有一個包含搜索結果和結果標記數組的表格。每個元素都有一個ID,如果用戶點擊一個標記,頁面會滾動到搜索結果(我只是改變了window.location.hash)。如何在Google Map上找到某個標記?

是否有可能做到反之亦然?用戶點擊搜索結果,出現標記的infoWindow。

+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對象,並平移到該位置。

其餘的只是爲了檢索infowindow的內容,並設置它的位置,你可以以任何你認爲合適的方式進行設置。

最後,只需打開標記的infowindow即可。

祝你好運!

+0

這真的很有幫助。謝謝。 –

+0

「如果用戶點擊標記,頁面滾動到搜索結果」你能幫我嗎? – UnderDog

+1

@Javafreak google.maps.event.addListener(marker,'click',function(){$('。search-results')。animate({scrollTop:$(「#result_1」)。offset.top}) }' – MKatleast3

相關問題