2016-09-21 63 views
0

當我點擊地圖頁面上的鏈接(不是自己標記它)時,我需要打開地圖上的信息窗口。這是到目前爲止我的代碼,在google maps中通過marker id獲取marker customInfo

var marker = new MarkerWithLabel({ 
       map: resultsMap, 
       id: label, 
       position: latlng, 
       title: "Address", 
       // radius: int_radius , 
       draggable: false, 
       labelAnchor: new google.maps.Point(10, 35), 
       labelContent: label, 
       labelClass: "labels", 
       labelInBackground: false, 
       mapTypeId: google.maps.MapTypeId.ROADMAP, 
       icon: image, 
       customInfo: "dynamic data for each marker" 
     }); 

,並調用函數

function bindInfoWindow(resultsMap, marker, infoWindow) { 
    google.maps.event.addListener(marker, 'click', 
     function(){ 
      infoWindow.setContent(marker.customInfo); 
      infoWindow.open(resultsMap,marker); 
     }); 

     $(document).on('click','.store-title', function(){ 
      var linkId = $(this).attr('id'); 
      infoWindow.setContent(marker.customInfo); 
      infoWindow.open(resultsMap,marker); 

     }); 
} 

在我的情況,我不能用一個數組來存儲標記。有沒有辦法通過使用下面的條件獲得marker.customInfo?請注意當我點擊標記它的作品。我需要它用於後者的onclick功能。

infoWindow.setContent(marker.customInfo where marker.id==linkId); 
+0

請有人可以幫我 – cmit

回答

0

這可能會實現,保持你的bindInfoWindow裏面,你現在有它:

$(document).on('click','.store-title', function() { 
    var linkId = $(this).attr('id'); 
    if (linkId == marker.id) { 
     google.maps.event.trigger(marker, 'click'); 
    } 
}); 

通知我傳遞的作爲數據參數點擊事件句柄,但你也許不需要那樣做。 - 看起來不需要。

然後我只是觸發點擊該標記,而不是重複你已經在標記的點擊處理程序中獲得的代碼。

我假設您要添加到每個標記的id屬性與您在鏈接上閱讀的「id」屬性相同。如果沒有,你可以在標記和鏈接上有一些相同的屬性,你可以檢查。

+0

謝謝老兄!你很棒。我無法相信這一點。愛你的男人 – cmit